schema change and base operations
This commit is contained in:
parent
799a719012
commit
4d37571cb6
27 changed files with 660 additions and 52 deletions
64
src/factory/admin/unit/repair.ts
Normal file
64
src/factory/admin/unit/repair.ts
Normal file
|
@ -0,0 +1,64 @@
|
|||
import { repair } from "../../../entity/unit/repair";
|
||||
import { RepairAssigned, RepairViewModel } from "../../../viewmodel/admin/unit/repair.models";
|
||||
import DamageReportFactory from "./damageReport";
|
||||
import EquipmentFactory from "./equipment/equipment";
|
||||
import VehicleFactory from "./vehicle/vehicle";
|
||||
import WearableFactory from "./wearable/wearable";
|
||||
|
||||
export default abstract class RepairFactory {
|
||||
/**
|
||||
* @description map record to repair
|
||||
* @param {repair} record
|
||||
* @returns {RepairViewModel}
|
||||
*/
|
||||
public static mapToSingle(record: repair): RepairViewModel {
|
||||
let assigned: RepairAssigned;
|
||||
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 if (record?.wearableId) {
|
||||
assigned = {
|
||||
relatedId: record.wearableId,
|
||||
assigned: "wearable",
|
||||
related: WearableFactory.mapToSingle(record.wearable),
|
||||
};
|
||||
} else {
|
||||
assigned = {
|
||||
relatedId: undefined,
|
||||
assigned: undefined,
|
||||
related: undefined,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
id: record.id,
|
||||
createdAt: record.createdAt,
|
||||
finishedAt: record.finishedAt,
|
||||
status: record.status,
|
||||
responsible: record.responsible,
|
||||
description: record.description,
|
||||
images: record.images,
|
||||
reportDocument: record.reportDocument,
|
||||
reports: record.reports ? DamageReportFactory.mapToBase(record.reports) : [],
|
||||
...assigned,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* @description map records to repair
|
||||
* @param {Array<repair>} records
|
||||
* @returns {Array<RepairViewModel>}
|
||||
*/
|
||||
public static mapToBase(records: Array<repair>): Array<RepairViewModel> {
|
||||
return records.map((r) => this.mapToSingle(r));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue