ff-admin-server/src/factory/admin/unit/equipment/equipment.ts

59 lines
1.8 KiB
TypeScript

import { equipment } from "../../../../entity/unit/equipment/equipment";
import {
EquipmentViewModel,
MinifiedEquipmentViewModel,
} from "../../../../viewmodel/admin/unit/equipment/equipment.models";
import EquipmentTypeFactory from "./equipmentType";
export default abstract class EquipmentFactory {
/**
* @description map record to equipment
* @param {equipment} record
* @returns {EquipmentViewModel}
*/
public static mapToSingle(record: equipment): EquipmentViewModel {
return {
id: record.id,
code: record?.code,
name: record.name,
location: record.location,
commissioned: record.commissioned,
decommissioned: record?.decommissioned,
equipmentTypeId: record?.equipmentTypeId,
equipmentType: record?.equipmentType ? EquipmentTypeFactory.mapToSingle(record.equipmentType) : null,
};
}
/**
* @description map records to equipment
* @param {Array<equipment>} records
* @returns {Array<EquipmentViewModel>}
*/
public static mapToBase(records: Array<equipment>): Array<EquipmentViewModel> {
return records.map((r) => this.mapToSingle(r));
}
/**
* @description map record to minifed equipment
* @param {equipment} record
* @returns {MinifiedEquipmentViewModel}
*/
public static mapToSingleMinified(record: equipment): MinifiedEquipmentViewModel {
return {
id: record.id,
code: record?.code,
name: record.name,
type: record?.equipmentType.type,
assigned: "equipment",
};
}
/**
* @description map records to minified equipment
* @param {Array<equipment>} records
* @returns {Array<MinifiedEquipmentViewModel>}
*/
public static mapToBaseMinifed(records: Array<equipment>): Array<MinifiedEquipmentViewModel> {
return records.map((r) => this.mapToSingleMinified(r));
}
}