"use server"; import { BasicContractView } from "@/db/schema"; import { getTriggeredRedFlagQuestions } from "@/lib/compliance/red-flag-notifier"; /** * 여러 계약서에 대한 Red Flag 발생 여부를 한 번에 확인 */ export async function checkRedFlagsForContracts( contracts: BasicContractView[] ): Promise> { const result: Record = {}; // 준법서약 템플릿인 계약서만 필터링 const complianceContracts = contracts.filter(contract => contract.templateName?.includes('준법') ); if (complianceContracts.length === 0) { return result; } // 각 계약서에 대해 Red Flag 발생 여부 확인 const redFlagChecks = await Promise.all( complianceContracts.map(async (contract) => { try { const triggeredFlags = await getTriggeredRedFlagQuestions(contract.id); return { contractId: contract.id, hasRedFlag: triggeredFlags.length > 0 }; } catch (error) { console.error(`Error checking red flags for contract ${contract.id}:`, error); return { contractId: contract.id, hasRedFlag: false }; } }) ); // 결과를 Record 형태로 변환 redFlagChecks.forEach(check => { result[check.contractId] = check.hasRedFlag; }); return result; }