/** * Create Tenant Subscription DTO */ import { BillingCycle, SubscriptionStatus } from '../entities'; export class CreateTenantSubscriptionDto { tenantId: string; planId: string; billingCycle?: BillingCycle; currentPeriodStart?: Date; currentPeriodEnd?: Date; billingEmail?: string; billingName?: string; billingAddress?: Record; taxId?: string; currentPrice: number; discountPercent?: number; discountReason?: string; contractedUsers?: number; contractedBranches?: number; autoRenew?: boolean; // Trial startWithTrial?: boolean; trialDays?: number; } export class UpdateTenantSubscriptionDto { planId?: string; billingCycle?: BillingCycle; billingEmail?: string; billingName?: string; billingAddress?: Record; taxId?: string; currentPrice?: number; discountPercent?: number; discountReason?: string; contractedUsers?: number; contractedBranches?: number; autoRenew?: boolean; } export class CancelSubscriptionDto { reason?: string; cancelImmediately?: boolean; } export class ChangePlanDto { newPlanId: string; effectiveDate?: Date; prorateBilling?: boolean; } export class SetPaymentMethodDto { paymentMethodId: string; paymentProvider: string; }