// Synology Chat plugin module implements security audit behavior.
import type { ResolvedSynologyChatAccount } from "./types.js";

export function collectSynologyChatSecurityAuditFindings(params: {
  accountId?: string | null;
  account: ResolvedSynologyChatAccount;
  orderedAccountIds: string[];
  hasExplicitAccountPath: boolean;
}) {
  if (!params.account.dangerouslyAllowNameMatching) {
    return [];
  }
  const accountId = params.accountId?.trim() || params.account.accountId || "default";
  const accountNote =
    params.orderedAccountIds.length > 1 || params.hasExplicitAccountPath
      ? ` (account: ${accountId})`
      : "";
  return [
    {
      checkId: "channels.synology-chat.reply.dangerous_name_matching_enabled",
      severity: "info" as const,
      title: `Synology Chat dangerous name matching is enabled${accountNote}`,
      detail:
        "dangerouslyAllowNameMatching=true re-enables mutable username/nickname matching for reply delivery. This is a break-glass compatibility mode, not a hardened default.",
      remediation:
        "Prefer stable numeric Synology Chat user IDs for reply delivery, then disable dangerouslyAllowNameMatching.",
    },
  ];
}
