import { Column, Entity, JoinColumn, ManyToOne } from 'typeorm'; import { AbstractEntity } from '../../common/abstract.entity'; import { UseDto } from '../../decorators'; import { NumberTransformer } from '../../transformer/number-transformer'; import { ActivityRecordSettingEntity } from '../activity-record/activity-record-setting.entity'; import { BlockEntity } from '../block/block.entity'; import { VehicleRecordDto } from './dtos/vehicle-record.dto'; import { VehicleNameEntity } from './vehicle-name.entity'; @Entity({ name: 'vehicle_records' }) @UseDto(VehicleRecordDto) export class VehicleRecordEntity extends AbstractEntity<VehicleRecordDto> { @Column({ type: 'timestamp' }) date!: Date; @Column({ type: 'decimal', precision: 6, scale: 2, transformer: new NumberTransformer(), }) hour!: number; @ManyToOne(() => BlockEntity, (blockEntity) => blockEntity.vehicleRecord, { onUpdate: 'CASCADE', }) @JoinColumn({ name: 'block_id', foreignKeyConstraintName: 'vehicle_record_block', }) block!: BlockEntity; @ManyToOne( () => VehicleNameEntity, (vehicleNameEntity) => vehicleNameEntity.vehicleRecord, { onUpdate: 'CASCADE', }, ) @JoinColumn({ name: 'vehicle_name_id', foreignKeyConstraintName: 'vehicle_record_vehicle_name', }) vehicleName!: VehicleNameEntity; @ManyToOne( () => ActivityRecordSettingEntity, (activityRecordSettingEntity) => activityRecordSettingEntity.otRecord, { onUpdate: 'CASCADE', }, ) @JoinColumn({ name: 'activity_setting_id', foreignKeyConstraintName: 'vehicle_record_activity_setting', }) activitySetting!: ActivityRecordSettingEntity; }