59 lines
1.8 KiB
TypeScript
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));
|
|
}
|
|
}
|