/* eslint-disable @typescript-eslint/no-unnecessary-condition */ import { AbstractDto } from '../../../common/dto/abstract.dto'; import { IncentiveName } from '../../../constants'; import { DateField, EnumField, NumberField, StringField, StringFieldOptional, } from '../../../decorators'; import { type IncentiveRecordEntity } from '../incentive-record.entity'; export class IncentiveRecordDto extends AbstractDto { @DateField() date!: Date; @StringFieldOptional() unit?: string; @NumberField() threshold!: number; @NumberField() quantity!: number; @NumberField() amount!: number; @StringField() employeeName!: string; @EnumField(() => IncentiveName) incentiveName!: IncentiveName; constructor(incentiveRecord: IncentiveRecordEntity) { super(incentiveRecord); this.date = incentiveRecord.date; this.unit = incentiveRecord.incentiveSetting && incentiveRecord.incentiveSetting.unit; this.threshold = incentiveRecord.threshold; this.quantity = incentiveRecord.quantity; this.amount = incentiveRecord.amount; this.employeeName = incentiveRecord.employee && incentiveRecord.employee.name; this.incentiveName = incentiveRecord.incentiveSetting && incentiveRecord.incentiveSetting.name; } }