/* eslint-disable @typescript-eslint/no-unnecessary-condition */ import { AbstractDto } from '../../../common/dto/abstract.dto'; import { IncentiveName } from '../../../constants'; import { BooleanField, DateFieldOptional, EnumFieldOptional, NumberField, StringField, StringFieldOptional, } from '../../../decorators'; import { type ActivityRecordSettingEntity } from '../activity-record-setting.entity'; export class ActivityRecordSettingDto extends AbstractDto { @StringField() name!: string; @StringField() sector!: string; @StringField() activityGroup!: string; @StringFieldOptional() unit?: string; @NumberField() rate!: number; @BooleanField() isActive!: boolean; @BooleanField() shouldShowInOtfilter!: boolean; @DateFieldOptional() activateUntil?: Date; @EnumFieldOptional(() => IncentiveName) incentiveName?: IncentiveName; constructor(activityRecordSetting: ActivityRecordSettingEntity) { super(activityRecordSetting); this.name = activityRecordSetting.name; this.rate = activityRecordSetting.rate; this.unit = activityRecordSetting.unit; this.isActive = activityRecordSetting.isActive; this.activateUntil = activityRecordSetting.activateUntil; this.incentiveName = activityRecordSetting.incentiveName; this.shouldShowInOtfilter = activityRecordSetting.shouldShowInOtfilter; this.sector = activityRecordSetting.sector && activityRecordSetting.sector.name; this.activityGroup = activityRecordSetting.activityGroup && activityRecordSetting.activityGroup.name; } }