using Microsoft.EntityFrameworkCore;
using Tiku.Domain.Commerce;
using Tiku.Domain.Growth;

namespace Tiku.Infrastructure.Persistence;

public sealed partial class TikuDbContext
{
    public DbSet<Product> Products => Set<Product>();
    public DbSet<SvipPlan> SvipPlans => Set<SvipPlan>();
    public DbSet<Order> Orders => Set<Order>();
    public DbSet<OrderItem> OrderItems => Set<OrderItem>();
    public DbSet<Payment> Payments => Set<Payment>();
    public DbSet<PaymentEvent> PaymentEvents => Set<PaymentEvent>();
    public DbSet<Entitlement> Entitlements => Set<Entitlement>();
    public DbSet<CodeBatch> CodeBatches => Set<CodeBatch>();
    public DbSet<ActivationCode> ActivationCodes => Set<ActivationCode>();
    public DbSet<Coupon> Coupons => Set<Coupon>();
    public DbSet<CouponRedemption> CouponRedemptions => Set<CouponRedemption>();
    public DbSet<CommerceRefundRequest> CommerceRefundRequests => Set<CommerceRefundRequest>();
    public DbSet<CommerceRefundEvent> CommerceRefundEvents => Set<CommerceRefundEvent>();
    public DbSet<CommerceReconciliationBatch> CommerceReconciliationBatches => Set<CommerceReconciliationBatch>();
    public DbSet<CommerceReconciliationItem> CommerceReconciliationItems => Set<CommerceReconciliationItem>();
    public DbSet<CommerceReconciliationIssue> CommerceReconciliationIssues => Set<CommerceReconciliationIssue>();

    public DbSet<CommerceReconciliationIssueEvent> CommerceReconciliationIssueEvents =>
        Set<CommerceReconciliationIssueEvent>();

    public DbSet<CommerceAdjustmentVoucher> CommerceAdjustmentVouchers => Set<CommerceAdjustmentVoucher>();

    public DbSet<CommerceAdjustmentVoucherEvent> CommerceAdjustmentVoucherEvents =>
        Set<CommerceAdjustmentVoucherEvent>();

    public DbSet<PointActivityTask> PointActivityTasks => Set<PointActivityTask>();
    public DbSet<PointActivityClaim> PointActivityClaims => Set<PointActivityClaim>();
    public DbSet<PointExchangeItem> PointExchangeItems => Set<PointExchangeItem>();
    public DbSet<PointExchangeOrder> PointExchangeOrders => Set<PointExchangeOrder>();
    public DbSet<ReferralTrack> ReferralTracks => Set<ReferralTrack>();
    public DbSet<ReferralCode> ReferralCodes => Set<ReferralCode>();
    public DbSet<ReferralLead> ReferralLeads => Set<ReferralLead>();
    public DbSet<ReferralTeamEdge> ReferralTeamEdges => Set<ReferralTeamEdge>();
    public DbSet<ReferralQrcode> ReferralQrcodes => Set<ReferralQrcode>();
    public DbSet<CrmConfig> CrmConfigs => Set<CrmConfig>();
    public DbSet<CrmWebhookQueueItem> CrmWebhookQueue => Set<CrmWebhookQueueItem>();
    public DbSet<CrmWebhookLog> CrmWebhookLogs => Set<CrmWebhookLog>();
    public DbSet<TenantCommissionSetting> TenantCommissionSettings => Set<TenantCommissionSetting>();
    public DbSet<CommissionSettlement> CommissionSettlements => Set<CommissionSettlement>();
    public DbSet<CommissionSettlementItem> CommissionSettlementItems => Set<CommissionSettlementItem>();
    public DbSet<CommissionSettlementProof> CommissionSettlementProofs => Set<CommissionSettlementProof>();

    public DbSet<CommissionSettlementExportEvent> CommissionSettlementExportEvents =>
        Set<CommissionSettlementExportEvent>();
}