Files
SerpentRace/SerpentRace_Backend/src/Database/entities/company.entity.ts
T
2025-07-18 09:20:40 +02:00

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;
}
}