forked from wangziqi/gongxue-base
- Move backend/ to apps/server/ via git mv - Move frontend/ to apps/admin/ via git mv - Create packages/typescript-config/ with base, nestjs, and react-vite presets
59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn, CreateDateColumn, UpdateDateColumn, Index } from 'typeorm';
|
||
import { Classroom } from './classroom.entity';
|
||
import { Tenant } from './tenant.entity';
|
||
|
||
@Entity('classroom_rentals')
|
||
@Index(['classroomId', 'startDate', 'endDate'])
|
||
export class ClassroomRental {
|
||
@PrimaryGeneratedColumn()
|
||
id: number;
|
||
|
||
@Column({ name: 'classroom_id' })
|
||
classroomId: number;
|
||
|
||
@ManyToOne(() => Classroom)
|
||
@JoinColumn({ name: 'classroom_id' })
|
||
classroom: Classroom;
|
||
|
||
@Column({ name: 'tenant_id' })
|
||
tenantId: number;
|
||
|
||
@ManyToOne(() => Tenant)
|
||
@JoinColumn({ name: 'tenant_id' })
|
||
tenant: Tenant;
|
||
|
||
@Column({ name: 'start_date', type: 'date' })
|
||
startDate: string;
|
||
|
||
@Column({ name: 'end_date', type: 'date' })
|
||
endDate: string;
|
||
|
||
// 合同 PDF 相对路径(相对 UPLOAD_DIR),仅存文件名
|
||
@Column({ name: 'contract_path', length: 255, nullable: true })
|
||
contractPath: string;
|
||
|
||
@Column({ name: 'contract_original_name', length: 255, nullable: true })
|
||
contractOriginalName: string;
|
||
|
||
@Column({ name: 'daily_rate', type: 'decimal', precision: 10, scale: 2, nullable: true })
|
||
dailyRate: number;
|
||
|
||
@Column({ name: 'total_amount', type: 'decimal', precision: 10, scale: 2, nullable: true })
|
||
totalAmount: number;
|
||
|
||
@Column({ type: 'varchar', length: 20, default: 'active' })
|
||
status: string; // active / ended / cancelled
|
||
|
||
@Column({ type: 'text', nullable: true })
|
||
notes: string;
|
||
|
||
@Column({ name: 'created_by', nullable: true })
|
||
createdBy: number;
|
||
|
||
@CreateDateColumn({ name: 'created_at' })
|
||
createdAt: Date;
|
||
|
||
@UpdateDateColumn({ name: 'updated_at' })
|
||
updatedAt: Date;
|
||
}
|