add maintenance model, factory and service
This commit is contained in:
parent
cb60d61773
commit
0f6401953f
11 changed files with 276 additions and 4 deletions
55
src/factory/admin/unit/maintenance.ts
Normal file
55
src/factory/admin/unit/maintenance.ts
Normal file
|
@ -0,0 +1,55 @@
|
|||
import { maintenance } from "../../../entity/unit/maintenance";
|
||||
import { MaintenanceAssigned, MaintenanceViewModel } from "../../../viewmodel/admin/unit/maintenance.models";
|
||||
import DamageReportFactory from "./damageReport";
|
||||
import EquipmentFactory from "./equipment/equipment";
|
||||
import VehicleFactory from "./vehicle/vehicle";
|
||||
import WearableFactory from "./wearable/wearable";
|
||||
|
||||
export default abstract class MaintenanceFactory {
|
||||
/**
|
||||
* @description map record to maintenance
|
||||
* @param {maintenance} record
|
||||
* @returns {MaintenanceViewModel}
|
||||
*/
|
||||
public static mapToSingle(record: maintenance): MaintenanceViewModel {
|
||||
let assigned: MaintenanceAssigned;
|
||||
if (record?.equipmentId) {
|
||||
assigned = {
|
||||
relatedId: record.equipmentId,
|
||||
assigned: "equipment",
|
||||
related: EquipmentFactory.mapToSingle(record.equipment),
|
||||
};
|
||||
} else if (record?.vehicleId) {
|
||||
assigned = {
|
||||
relatedId: record.vehicleId,
|
||||
assigned: "vehicle",
|
||||
related: VehicleFactory.mapToSingle(record.vehicle),
|
||||
};
|
||||
} else {
|
||||
assigned = {
|
||||
relatedId: record.wearableId,
|
||||
assigned: "wearable",
|
||||
related: WearableFactory.mapToSingle(record.wearable),
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
id: record.id,
|
||||
createdAt: record.createdAt,
|
||||
status: record.status,
|
||||
done: record.done,
|
||||
description: record.description,
|
||||
...assigned,
|
||||
reports: record.reports ? DamageReportFactory.mapToBase(record.reports) : [],
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @description map records to maintenance
|
||||
* @param {Array<maintenance>} records
|
||||
* @returns {Array<MaintenanceViewModel>}
|
||||
*/
|
||||
public static mapToBase(records: Array<maintenance>): Array<MaintenanceViewModel> {
|
||||
return records.map((r) => this.mapToSingle(r));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue