Phase 0 - Base modules (100% copy): - shared/ (errors, middleware, services, utils, types) - auth, users, tenants (multi-tenancy) - ai, audit, notifications, mcp, payment-terminals - billing-usage, branches, companies, core Phase 1 - Modules to adapt (70-95%): - partners (for shippers/consignees) - inventory (for refacciones) - financial (for transport costing) Phase 2 - Pattern modules (50-70%): - ordenes-transporte (from sales) - gestion-flota (from products) - viajes (from projects) Phase 3 - New transport-specific modules: - tracking (GPS, events, alerts) - tarifas-transporte (pricing, surcharges) - combustible-gastos (fuel, tolls, expenses) - carta-porte (CFDI complement 3.1) Estimated token savings: ~65% (~10,675 lines) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
58 lines
1.2 KiB
TypeScript
58 lines
1.2 KiB
TypeScript
/**
|
|
* 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<string, any>;
|
|
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<string, any>;
|
|
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;
|
|
}
|