import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, OneToMany } from 'typeorm'; import { UserAggregate } from '../User/UserAggregate'; export const OrganizationState = { REGISTERED: 0, ACTIVE: 1, SOFT_DELETE: 2 } as const; export type OrganizationStateType = typeof OrganizationState[keyof typeof OrganizationState]; @Entity('Organizations') export class OrganizationAggregate { @PrimaryGeneratedColumn('uuid') id!: string; @Column({ type: 'varchar', length: 255 }) name!: string; @Column({ type: 'varchar', length: 100 }) contactfname!: string; @Column({ type: 'varchar', length: 100 }) contactlname!: string; @Column({ type: 'varchar', length: 20 }) contactphone!: string; @Column({ type: 'varchar', length: 255 }) contactemail!: string; @Column({ type: 'int', default: OrganizationState.REGISTERED }) state!: OrganizationStateType; @CreateDateColumn() regdate!: Date; @UpdateDateColumn({ name: 'updateDate' }) updateDate!: Date; @Column({ type: 'varchar', length: 500, nullable: true }) url!: string | null; @Column({ type: 'int', default: 0 }) userinorg!: number; @Column({ type: 'int', nullable: true }) maxOrganizationalDecks!: number | null; @OneToMany(() => UserAggregate, user => user.orgid) users!: UserAggregate[]; }