63 lines
1.4 KiB
TypeScript
63 lines
1.4 KiB
TypeScript
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;
|
|
}
|
|
} |