using Shared.Problems; namespace Kbx.Shared.Integrations; public static class KbxIntegrationProblemFactory { public static KbxIntegrationProblem ToProblem(KbxIntegrationAttemptResult result) => result.FailureKind switch { KbxIntegrationFailureKind.Transient => KbxIntegrationProblem.Create( result.Code ?? "INTEGRATION_DELAYED", "외부 연계가 지연되고 있습니다.", retryable: true, detail: "시스템이 자동 재처리합니다. 동일 업무를 다시 실행하지 마세요."), _ => KbxIntegrationProblem.Create( result.Code ?? "INTEGRATION_FAILED", "외부 연계를 완료하지 못했습니다.", retryable: false, detail: "업무 데이터는 유지됩니다. 확인 필요 항목에서 원인과 재처리 가능 여부를 확인하세요."), }; }