import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; export type TenantMode = 'shared' | 'sovereign'; export type TenantPlan = 'launch' | 'brand' | 'fleet' | 'sovereign'; /** * المستأجر = مكتب تكسي / أسطول / مشغّل. الجدول الفعلي: tripz_tenants * (البادئة من entityPrefix). راجع docs/06 و docs/08. */ @Entity('tenants') export class Tenant { @PrimaryGeneratedColumn('uuid') id: string; @Column() name: string; @Column({ unique: true }) slug: string; @Column({ name: 'country_pack', default: 'jo' }) countryPack: string; @Column({ type: 'varchar', default: 'launch' }) plan: TenantPlan; @Column({ type: 'varchar', default: 'shared' }) mode: TenantMode; @Column({ type: 'jsonb', default: {} }) branding: Record; @Column({ type: 'jsonb', default: {} }) features: Record; @Column({ default: 'active' }) status: string; @CreateDateColumn({ name: 'created_at' }) createdAt: Date; @UpdateDateColumn({ name: 'updated_at' }) updatedAt: Date; }