namespace SolutionErp.Application.ContractSigningPlans.Services;

// [W1 Mig 69 — S161 2026-07-29] Atomic codegen mã phiếu "Kế hoạch ký kết HĐ" (GĐ2)
// — mirror IPurchaseEvaluationCodeGenerator.
// Format anh chốt @S161: KHKK/{YYYY}/{Seq:D3} (VD: KHKK/2026/001, KHKK/2026/002).
//   - Sequence per-năm qua bảng WorkflowAppCodeSequences DÙNG CHUNG (per-prefix row,
//     IApplicationDbContext) — KHÔNG bảng sequence riêng (spec W1 §②-9, #8-CẮT spec cũ).
//   - Seq reset đầu năm tự nhiên (key Prefix "KHKK/{YYYY}" mới).
// Caller: W2 `CreateContractSigningPlanCommandHandler` — gen NGAY LÚC TẠO phiếu.
// 🔴 Đính chính bản W1 ("gen lúc Submit"): spec W2 §③-B đòi POST trả `maKeHoach` khớp
// `^KHKK/\d{4}/\d{3}$` ⇒ mã phải có từ lúc tạo, không defer tới trình duyệt.
public interface IContractSigningPlanCodeGenerator
{
    // Gen mã atomic — transaction SERIALIZABLE chống race (mirror PE/Contract codegen).
    Task<string> GenerateAsync(CancellationToken ct = default);
}
