feat: add commission settlement endpoints

This commit is contained in:
xiong
2026-07-26 20:36:01 +08:00
parent 0385a1accd
commit 4279795d46
14 changed files with 17772 additions and 1 deletions

View File

@@ -168,6 +168,39 @@ public sealed class CommissionSettlementItem : AuditableTenantEntity
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
}
public sealed class CommissionSettlementProof : AuditableTenantEntity
{
public Guid SettlementId { get; set; }
public Guid? AssetId { get; set; }
public Guid? SubmittedBy { get; set; }
public Guid? ReviewedBy { get; set; }
public CommissionProofType ProofType { get; set; } = CommissionProofType.Payment;
public CommissionProofStatus Status { get; set; } = CommissionProofStatus.Submitted;
public string? Title { get; set; }
public string? Description { get; set; }
public string? ExternalUrl { get; set; }
public int? AmountCents { get; set; }
public string? PaymentMethod { get; set; }
public string? PaymentAccount { get; set; }
public DateTimeOffset? PaidAt { get; set; }
public DateTimeOffset? ReviewedAt { get; set; }
public string? ReviewNote { get; set; }
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
}
public sealed class CommissionSettlementExportEvent : Entity
{
public Guid TenantId { get; set; }
public Guid SettlementId { get; set; }
public Guid? ExportedBy { get; set; }
public string ExportFormat { get; set; } = "csv";
public string Filename { get; set; } = string.Empty;
public int RowCount { get; set; }
public string? ContentSha256 { get; set; }
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
public DateTimeOffset CreatedAt { get; set; } = DateTimeOffset.UtcNow;
}
public enum ReferralCodeStatus { Active, Disabled }
public enum ReferralLeadBindType { FirstTouch, Manual, Imported }
public enum ReferralLeadStatus { Protected, Invalid, Released }
@@ -180,3 +213,5 @@ public enum CommissionSettlementCycle { Manual, Weekly, Monthly }
public enum CommissionSettlementStatus { Draft, PendingReview, Approved, Paid, Rejected, Cancelled }
public enum CommissionSourceType { Order, ActivationCode }
public enum CommissionRateSource { Batch, Member, Default }
public enum CommissionProofType { Payment, Invoice, Receipt, Adjustment, Other }
public enum CommissionProofStatus { Submitted, Approved, Rejected, Voided }