import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, OneToMany, UpdateDateColumn, DeleteDateColumn } from 'typeorm'; import { User } from './user.entity'; import { Cards } from './cards.entity'; @Entity('Company') export class Company { @PrimaryGeneratedColumn() CompanyId!: number; @Column({ type: 'varchar', length: 26, nullable: false }) GUID!: string; @Column({ type: 'varchar', length: 255, nullable: false }) Name!: string; @Column({ type: 'varchar', length: 255, nullable: false }) ContactFirstName!: string; @Column({ type: 'varchar', length: 255, nullable: false }) ContactLastName!: string; @Column({ type: 'varchar', length: 255, nullable: false }) ContactEmail!: string; @Column({ type: 'varchar', length: 255, nullable: false }) LoginURL!: string; @CreateDateColumn() RegDate!: Date; @UpdateDateColumn() UpdatedDate!: Date; @DeleteDateColumn() deletedAt?: Date; @OneToMany(() => User, user => user.company) users!: User[]; @OneToMany(() => Cards, cards => cards.company) cards!: Cards[]; // Soft delete helper methods isDeleted(): boolean { return this.deletedAt !== null && this.deletedAt !== undefined; } softDelete(): void { this.deletedAt = new Date(); } restore(): void { this.deletedAt = undefined; } }