Add AI batch reconciliation for accessibility bills

This commit is contained in:
2026-07-25 18:41:09 +08:00
parent eb8909a192
commit 7cca34b331
25 changed files with 2771 additions and 230 deletions
@@ -138,10 +138,78 @@ public record ImageParseResponse(
decimal Amount, string? PaymentMethod, string Note, string Type,
List<ImageParseItemResponse> Items, DateTime? OccurredAt);
public record RecognitionBatchCandidateRequest(
string CandidateId,
string ClientRequestId,
string? FlowSessionId,
string PackageName,
string Type,
decimal Amount,
string? Merchant,
string? OrderId,
DateTime OccurredAt,
string RecognitionKind,
string? CategoryHint,
string Confidence,
string? SourceText,
List<string>? EvidenceIds = null);
public record RecognitionBatchEvidenceRequest(
string EvidenceId,
string? CandidateId,
string? FlowSessionId,
string PackageName,
DateTime CapturedAt);
public record RecognitionBatchManifestRequest(
string BatchId,
DateTime OpenedAt,
List<RecognitionBatchCandidateRequest> Candidates,
List<RecognitionBatchEvidenceRequest> Evidence);
public record RecognitionBatchActionResponse(
string Action,
string ActionId,
string? CandidateId,
string? EvidenceId,
long? CategoryId,
string? CategoryName,
string? Type,
decimal? Amount,
string? PaymentMethod,
string? Note,
DateTime? OccurredAt,
double Confidence,
string Reason);
public record RecognitionBatchResponse(
string BatchId,
List<RecognitionBatchActionResponse> Actions);
public record RecognitionBatchTransactionItemRequest(
string CandidateId,
string ClientRequestId,
long CategoryId,
string Type,
decimal Amount,
string? Note,
string? PaymentMethod,
DateTime OccurredAt,
string? Source,
string? SourceText);
public record CreateRecognitionBatchRequest(
string BatchId,
long? LedgerId,
List<RecognitionBatchTransactionItemRequest> Items);
public record RecognitionBatchTransactionDto(
string CandidateId,
TransactionDto Transaction);
// ---- Chat ----
public record SendChatRequest(string Content, string Type = "text", long? LedgerId = null); // text | sticker
public record ChatMessageDto(
long Id, string Role, string Type, string Content,
TransactionDto? Transaction, DateTime CreatedAt);
public record SendChatResponse(List<ChatMessageDto> Messages);