import {
    Column,
    CreateDateColumn,
    Entity,
    Index,
    OneToMany,
    PrimaryGeneratedColumn,
    UpdateDateColumn,
  } from 'typeorm';
  import { Domain } from './domain.entity';

  export type TenantStatus = 'active' | 'suspended' | 'pending';

  @Entity({ name: 'tenants' })
  export class Tenant {
    @PrimaryGeneratedColumn('uuid')
    id!: string;

    @Index({ unique: true })
    @Column({ length: 100 })
    subdomain!: string;

    @Column({ length: 200 })
    name!: string;

    @Column({ length: 200, nullable: true })
    legalName?: string;

    @Column({ length: 50, default: 'active' })
    status!: TenantStatus;

    @Column({ length: 50, nullable: true })
    contactPhone?: string;

    @Column({ length: 200, nullable: true })
    contactEmail?: string;

    @Column({ type: 'text', nullable: true })
    address?: string;

    @Column({ type: 'text', nullable: true })
    notes?: string;

    @CreateDateColumn()
    createdAt!: Date;

    @UpdateDateColumn()
    updatedAt!: Date;

    @OneToMany(() => Domain, (d) => d.tenant)
    domains!: Domain[];
  }
  