/** * Tenant Types */ /** * Tenant status */ export type TenantStatus = 'active' | 'suspended' | 'pending' | 'deleted'; /** * Tenant plan identifier */ export type TenantPlan = string; /** * Tenant entity */ export interface Tenant { /** Unique tenant ID */ id: string; /** Tenant name */ name: string; /** Tenant slug (for subdomain/URL) */ slug: string; /** Tenant status */ status: TenantStatus; /** Subscription plan (project-specific) */ plan?: string; /** Owner user ID */ ownerId: string; /** Custom domain (optional) */ customDomain?: string; /** Tenant settings */ settings?: TenantSettings; /** Quota limits */ quotas?: TenantQuotas; /** Metadata */ metadata?: Record; /** Created timestamp */ createdAt: Date; /** Updated timestamp */ updatedAt: Date; } /** * Tenant settings */ export interface TenantSettings { /** Locale/language */ locale?: string; /** Timezone */ timezone?: string; /** Branding */ branding?: { logo?: string; primaryColor?: string; secondaryColor?: string; }; /** Feature flags */ features?: Record; } /** * Tenant quotas/limits */ export interface TenantQuotas { /** Max users */ maxUsers?: number; /** Max storage (bytes) */ maxStorage?: number; /** Max API requests per month */ maxApiRequests?: number; /** Max projects/resources */ maxProjects?: number; /** Custom quotas */ [key: string]: number | undefined; } /** * Tenant member */ export interface TenantMember { /** User ID */ userId: string; /** Tenant ID */ tenantId: string; /** Role within tenant (project-specific) */ role: string; /** Joined timestamp */ joinedAt: Date; } /** * Tenant invitation */ export interface TenantInvitation { /** Invitation ID */ id: string; /** Tenant ID */ tenantId: string; /** Invitee email */ email: string; /** Assigned role */ role: string; /** Invitation token */ token: string; /** Expiry timestamp */ expiresAt: Date; /** Created timestamp */ createdAt: Date; } /** * Input for creating a tenant */ export interface CreateTenantInput { name: string; slug: string; ownerId: string; plan?: string; settings?: TenantSettings; metadata?: Record; } /** * Input for updating a tenant */ export interface UpdateTenantInput { name?: string; slug?: string; status?: TenantStatus; plan?: string; customDomain?: string; settings?: Partial; quotas?: Partial; metadata?: Record; } //# sourceMappingURL=tenant.d.ts.map