import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, ManyToOne, JoinColumn, } from 'typeorm'; import { CommissionSchemeEntity } from './commission-scheme.entity'; @Entity({ schema: 'commissions', name: 'assignments' }) export class CommissionAssignmentEntity { @PrimaryGeneratedColumn('uuid') id: string; @Column({ name: 'tenant_id', type: 'uuid' }) tenantId: string; @Column({ name: 'user_id', type: 'uuid' }) userId: string; @Column({ name: 'scheme_id', type: 'uuid' }) schemeId: string; @Column({ name: 'starts_at', type: 'timestamptz', default: () => 'NOW()' }) startsAt: Date; @Column({ name: 'ends_at', type: 'timestamptz', nullable: true }) endsAt: Date; @Column({ name: 'custom_rate', type: 'decimal', precision: 5, scale: 2, nullable: true }) customRate: number; @Column({ name: 'is_active', default: true }) isActive: boolean; @CreateDateColumn({ name: 'created_at', type: 'timestamptz' }) createdAt: Date; @Column({ name: 'created_by', type: 'uuid', nullable: true }) createdBy: string; @ManyToOne(() => CommissionSchemeEntity, (scheme) => scheme.assignments) @JoinColumn({ name: 'scheme_id' }) scheme: CommissionSchemeEntity; }