import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm' import { Project } from './Project' export enum Status { Live = 'Live', Pending = 'Pending' } @Entity() export class Domain { @PrimaryGeneratedColumn('uuid') id!: string @Column('varchar') projectId!: string @ManyToOne(() => Project, { onDelete: 'CASCADE' }) @JoinColumn({ name: 'projectId' }) project!: Project @Column('varchar', { length: 255, default: 'main' }) branch!: string @Column('varchar', { length: 255 }) name!: string @Column('string', { nullable: true }) redirectToId!: string | null @ManyToOne(() => Domain) @JoinColumn({ name: 'redirectToId' }) // eslint-disable-next-line no-use-before-define redirectTo!: Domain | null @Column({ enum: Status, default: Status.Pending }) status!: Status @CreateDateColumn() createdAt!: Date @UpdateDateColumn() updatedAt!: Date @DeleteDateColumn() deletedAt!: Date | null }