feat: complete phase six backoffice operations

This commit is contained in:
2026-07-28 14:31:43 +08:00
parent 747ff59d76
commit 99e4e43122
31 changed files with 23504 additions and 26 deletions

View File

@@ -348,6 +348,40 @@ public sealed class CommerceReconciliationIssueEvent : Entity, ITenantOwned
public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow;
}
public sealed class CommerceAdjustmentVoucher : AuditableTenantEntity
{
public Guid? IssueId { get; set; }
public Guid? BatchId { get; set; }
public Guid? ItemId { get; set; }
public Guid? OrderId { get; set; }
public Guid? PaymentId { get; set; }
public Guid? RefundRequestId { get; set; }
public Guid? CreatedBy { get; set; }
public Guid? ReviewedBy { get; set; }
public string VoucherNo { get; set; } = string.Empty;
public CommerceAdjustmentVoucherStatus Status { get; set; } = CommerceAdjustmentVoucherStatus.Draft;
public CommerceAdjustmentDirection Direction { get; set; } = CommerceAdjustmentDirection.IncreaseRevenue;
public int AmountCents { get; set; }
public string Currency { get; set; } = "CNY";
public string Reason { get; set; } = string.Empty;
public string? ProofAssetKey { get; set; }
public DateTimeOffset? ReviewedAt { get; set; }
public DateTimeOffset? ClosedAt { get; set; }
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
}
public sealed class CommerceAdjustmentVoucherEvent : Entity, ITenantOwned
{
public Guid TenantId { get; set; }
public Guid VoucherId { get; set; }
public CommerceAdjustmentVoucherStatus? FromStatus { get; set; }
public CommerceAdjustmentVoucherStatus ToStatus { get; set; } = CommerceAdjustmentVoucherStatus.Draft;
public Guid? ActorUserId { get; set; }
public string? Note { get; set; }
public JsonElement Details { get; set; } = JsonDefaults.Object();
public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow;
}
public enum ProductType { Material, Course, Service, Link, Other }
public enum OrderStatus { Pending, Paid, Failed, Closed, PartiallyRefunded, Refunded }
public enum PaymentStatus { Pending, Paid, Failed, Cancelled, PartiallyRefunded, Refunded }
@@ -367,3 +401,5 @@ public enum ReconciliationIssueMatchStatus { AmountMismatch, StatusMismatch, Mis
public enum NotificationSeverity { Info, Warning, Error, Critical }
public enum ReconciliationIssueStatus { Open, Investigating, Resolved, Ignored, Escalated }
public enum ReconciliationResolutionType { None, ProviderConfirmed, LocalCorrected, ManualAdjustment, FalsePositive, Duplicate, WriteOff }
public enum CommerceAdjustmentVoucherStatus { Draft, PendingReview, Approved, Rejected, Closed, Void }
public enum CommerceAdjustmentDirection { IncreaseRevenue, DecreaseRevenue, IncreaseRefund, DecreaseRefund, WriteOff }