penisularhr / src / modules / employee / dtos / create-employee.dto.ts
create-employee.dto.ts
Raw
import {
  BooleanField,
  BooleanFieldOptional,
  DateField,
  DateFieldOptional,
  NumberField,
  NumberFieldOptional,
  StringField,
  StringFieldOptional,
} from '../../../decorators/field.decorators';

export class CreateEmployeeDto {
  @StringField()
  name!: string;

  @StringFieldOptional({ nullable: true })
  origin?: string;

  @DateField()
  dateJoin!: Date;

  @DateFieldOptional({ nullable: true })
  dateResign?: Date;

  @StringFieldOptional({ nullable: true })
  referralBy?: string;

  @DateFieldOptional({ nullable: true })
  referralFeePaidAt?: Date;

  @BooleanField()
  isActive!: boolean;

  @NumberField()
  basicSalary!: number;

  @NumberFieldOptional()
  monthlyAllowanceAmount?: number;

  @NumberFieldOptional()
  annualLeave?: number;

  @NumberFieldOptional()
  sickLeave?: number;

  @NumberFieldOptional()
  epfRatePer?: number;

  @BooleanFieldOptional()
  shouldDeductSocso?: boolean;
}