diff --git a/src/entity/unit/damageReport.ts b/src/entity/unit/damageReport.ts index a59c9e2..dd0955e 100644 --- a/src/entity/unit/damageReport.ts +++ b/src/entity/unit/damageReport.ts @@ -23,33 +23,36 @@ export class damageReport { @Column({ type: "varchar", length: 255 }) reportedBy: string; - @Column({ nullable: true, default: null }) - equipmentId: string; + @Column({ type: "int", default: 0 }) + imageCount: number; @Column({ nullable: true, default: null }) - vehicleId: string; + equipmentId?: string; @Column({ nullable: true, default: null }) - wearableId: string; + vehicleId?: string; + + @Column({ nullable: true, default: null }) + wearableId?: string; @ManyToOne(() => equipment, { nullable: true, onDelete: "CASCADE", onUpdate: "RESTRICT", }) - equipment: equipment; + equipment?: equipment; @ManyToOne(() => vehicle, { nullable: true, onDelete: "CASCADE", onUpdate: "RESTRICT", }) - vehicle: vehicle; + vehicle?: vehicle; @ManyToOne(() => wearable, { nullable: true, onDelete: "CASCADE", onUpdate: "RESTRICT", }) - wearable: wearable; + wearable?: wearable; } diff --git a/src/entity/unit/inspection/inspection.ts b/src/entity/unit/inspection/inspection.ts index 77e32d0..00faf98 100644 --- a/src/entity/unit/inspection/inspection.ts +++ b/src/entity/unit/inspection/inspection.ts @@ -30,10 +30,10 @@ export class inspection { inspectionVersionedPlanId: string; @Column() - equipmentId: string; + equipmentId?: string; @Column() - vehicleId: string; + vehicleId?: string; @ManyToOne(() => inspectionPlan, { nullable: false, diff --git a/src/entity/unit/inspection/inspectionPlan.ts b/src/entity/unit/inspection/inspectionPlan.ts index 9be6406..f94bf5a 100644 --- a/src/entity/unit/inspection/inspectionPlan.ts +++ b/src/entity/unit/inspection/inspectionPlan.ts @@ -1,7 +1,7 @@ import { Column, CreateDateColumn, Entity, ManyToOne, OneToMany, PrimaryGeneratedColumn } from "typeorm"; import { equipment } from "../equipment/equipment"; import { vehicle } from "../vehicle/vehicle"; -import { PlanTimeDefinition } from "../../../viewmodel/admin/unit/inspectionPlan/inspectionPlan.models"; +import { PlanTimeDefinition } from "../../../viewmodel/admin/unit/inspection/inspectionPlan.models"; import { inspectionVersionedPlan } from "./inspectionVersionedPlan"; @Entity() @@ -22,16 +22,24 @@ export class inspectionPlan { createdAt: Date; @Column() - equipmentId: string; + equipmentId?: string; @Column() - vehicleId: string; + vehicleId?: string; - @ManyToOne(() => equipment) - equipment: equipment; + @ManyToOne(() => equipment, { + nullable: true, + onDelete: "CASCADE", + onUpdate: "RESTRICT", + }) + equipment?: equipment; - @ManyToOne(() => vehicle) - vehicle: vehicle; + @ManyToOne(() => vehicle, { + nullable: true, + onDelete: "CASCADE", + onUpdate: "RESTRICT", + }) + vehicle?: vehicle; @OneToMany(() => inspectionVersionedPlan, (ivp) => ivp.inspectionPlan, { cascade: ["insert"], diff --git a/src/entity/unit/inspection/inspectionPoint.ts b/src/entity/unit/inspection/inspectionPoint.ts index 2ff25b1..4995bc8 100644 --- a/src/entity/unit/inspection/inspectionPoint.ts +++ b/src/entity/unit/inspection/inspectionPoint.ts @@ -28,10 +28,10 @@ export class inspectionPoint { type: InspectionPointEnum; @Column({ type: "int", nullable: true, default: null }) - min: number; + min?: number; @Column({ type: "int", nullable: true, default: null }) - max: number; + max?: number; @Column({ type: "int", default: 0 }) sort: number; diff --git a/src/entity/unit/wearable/wearable.ts b/src/entity/unit/wearable/wearable.ts index f532cb0..3b1ea39 100644 --- a/src/entity/unit/wearable/wearable.ts +++ b/src/entity/unit/wearable/wearable.ts @@ -29,7 +29,7 @@ export class wearable { wearableTypeId: string; @Column() - wearerId: string; + wearerId?: string; @ManyToOne(() => wearableType, { nullable: false, @@ -39,11 +39,11 @@ export class wearable { wearableType: wearableType; @ManyToOne(() => member, { - nullable: false, + nullable: true, onDelete: "SET NULL", onUpdate: "RESTRICT", }) - wearer: member; + wearer?: member; @OneToMany(() => damageReport, (d) => d.wearable, { cascade: ["insert"] }) reports: damageReport[]; diff --git a/src/factory/admin/unit/damageReport.ts b/src/factory/admin/unit/damageReport.ts new file mode 100644 index 0000000..908c0fe --- /dev/null +++ b/src/factory/admin/unit/damageReport.ts @@ -0,0 +1,55 @@ +import { damageReport } from "../../../entity/unit/damageReport"; +import { DamageReportAssigned, DamageReportViewModel } from "../../../viewmodel/admin/unit/damageReport.models"; +import EquipmentFactory from "./equipment/equipment"; +import VehicleFactory from "./vehicle/vehicle"; +import WearableFactory from "./wearable/wearable"; + +export default abstract class DamageReportFactory { + /** + * @description map record to damageReport + * @param {damageReport} record + * @returns {DamageReportViewModel} + */ + public static mapToSingle(record: damageReport): DamageReportViewModel { + let assigned: DamageReportAssigned; + 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, + reported: record.reportedAt, + status: record.status, + done: record.done, + description: record.description, + imageCount: record.imageCount, + reportedBy: record?.reportedBy, + ...assigned, + }; + } + + /** + * @description map records to damageReport + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/equipment/equipment.ts b/src/factory/admin/unit/equipment/equipment.ts new file mode 100644 index 0000000..8f0b520 --- /dev/null +++ b/src/factory/admin/unit/equipment/equipment.ts @@ -0,0 +1,32 @@ +import { equipment } from "../../../../entity/unit/equipment/equipment"; +import { EquipmentViewModel } 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} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/equipment/equipmentType.ts b/src/factory/admin/unit/equipment/equipmentType.ts new file mode 100644 index 0000000..6e84107 --- /dev/null +++ b/src/factory/admin/unit/equipment/equipmentType.ts @@ -0,0 +1,26 @@ +import { equipmentType } from "../../../../entity/unit/equipment/equipmentType"; +import { EquipmentTypeViewModel } from "../../../../viewmodel/admin/unit/equipment/equipmentType.models"; + +export default abstract class EquipmentTypeFactory { + /** + * @description map record to equipmentType + * @param {equipmentType} record + * @returns {EquipmentTypeViewModel} + */ + public static mapToSingle(record: equipmentType): EquipmentTypeViewModel { + return { + id: record.id, + type: record.type, + description: record.description, + }; + } + + /** + * @description map records to equipmentType + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/inspection/inspection.ts b/src/factory/admin/unit/inspection/inspection.ts new file mode 100644 index 0000000..3505e11 --- /dev/null +++ b/src/factory/admin/unit/inspection/inspection.ts @@ -0,0 +1,50 @@ +import { inspection } from "../../../../entity/unit/inspection/inspection"; +import { InspectionViewModel } from "../../../../viewmodel/admin/unit/inspection/inspection.models"; +import EquipmentFactory from "../equipment/equipment"; +import VehicleFactory from "../vehicle/vehicle"; +import InspectionPlanFactory from "./inspectionPlan"; +import InspectionPointResultFactory from "./inspectionPointResult"; +import InspectionVersionedPlanFactory from "./inspectionVersionedPlan"; + +export default abstract class InspectionFactory { + /** + * @description map record to inspection + * @param {inspection} record + * @returns {InspectionViewModel} + */ + public static mapToSingle(record: inspection): InspectionViewModel { + return { + id: record.id, + inspectionPlanId: record.inspectionPlanId, + inspectionPlan: InspectionPlanFactory.mapToSingle(record.inspectionPlan), + inspectionVersionedPlanId: record.inspectionVersionedPlanId, + inspectionVersionedPlan: InspectionVersionedPlanFactory.mapToSingle(record.inspectionVersionedPlan), + context: record.context, + created: record.createdAt, + finished: record?.finishedAt, + isOpen: record?.finishedAt == undefined, + nextInspection: record?.nextInspection, + checks: InspectionPointResultFactory.mapToBase(record.pointResults), + ...(record.equipmentId + ? { + relatedId: record.equipmentId, + assigned: "equipment", + related: EquipmentFactory.mapToSingle(record.equipment), + } + : { + relatedId: record.vehicleId, + assigned: "vehicle", + related: VehicleFactory.mapToSingle(record.vehicle), + }), + }; + } + + /** + * @description map records to inspection + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/inspection/inspectionPlan.ts b/src/factory/admin/unit/inspection/inspectionPlan.ts new file mode 100644 index 0000000..2e8fe5b --- /dev/null +++ b/src/factory/admin/unit/inspection/inspectionPlan.ts @@ -0,0 +1,44 @@ +import { inspectionPlan } from "../../../../entity/unit/inspection/inspectionPlan"; +import { InspectionPlanViewModel } from "../../../../viewmodel/admin/unit/inspection/inspectionPlan.models"; +import EquipmentFactory from "../equipment/equipment"; +import VehicleFactory from "../vehicle/vehicle"; +import InspectionPointFactory from "./inspectionPoint"; + +export default abstract class InspectionPlanFactory { + /** + * @description map record to inspectionPlan + * @param {inspectionPlan} record + * @returns {InspectionPlanViewModel} + */ + public static mapToSingle(record: inspectionPlan): InspectionPlanViewModel { + return { + id: record.id, + title: record.title, + inspectionInterval: record.inspectionInterval, + remindTime: record.remindTime, + version: record.latestVersionedPlan.version, + created: record.createdAt, + inspectionPoints: InspectionPointFactory.mapToBase(record.latestVersionedPlan.inspectionPoints), + ...(record.equipmentId + ? { + relatedId: record.equipmentId, + assigned: "equipment", + related: EquipmentFactory.mapToSingle(record.equipment), + } + : { + relatedId: record.vehicleId, + assigned: "vehicle", + related: VehicleFactory.mapToSingle(record.vehicle), + }), + }; + } + + /** + * @description map records to inspectionPlan + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/inspection/inspectionPoint.ts b/src/factory/admin/unit/inspection/inspectionPoint.ts new file mode 100644 index 0000000..1f6150c --- /dev/null +++ b/src/factory/admin/unit/inspection/inspectionPoint.ts @@ -0,0 +1,30 @@ +import { inspectionPoint } from "../../../../entity/unit/inspection/inspectionPoint"; +import { InspectionPointViewModel } from "../../../../viewmodel/admin/unit/inspection/inspectionPlan.models"; + +export default abstract class InspectionPointFactory { + /** + * @description map record to inspectionPoint + * @param {inspectionPoint} record + * @returns {InspectionPointViewModel} + */ + public static mapToSingle(record: inspectionPoint): InspectionPointViewModel { + return { + id: record.id, + title: record.title, + description: record.description, + type: record.type, + sort: record.sort, + min: record?.min, + max: record?.max, + }; + } + + /** + * @description map records to inspectionPoint + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/inspection/inspectionPointResult.ts b/src/factory/admin/unit/inspection/inspectionPointResult.ts new file mode 100644 index 0000000..b258a6a --- /dev/null +++ b/src/factory/admin/unit/inspection/inspectionPointResult.ts @@ -0,0 +1,29 @@ +import { inspectionPointResult } from "../../../../entity/unit/inspection/inspectionPointResult"; +import { InspectionPointResultViewModel } from "../../../../viewmodel/admin/unit/inspection/inspection.models"; +import InspectionPointFactory from "./inspectionPoint"; + +export default abstract class InspectionPointResultFactory { + /** + * @description map record to inspectionPointResult + * @param {inspectionPointResult} record + * @returns {InspectionPointResultViewModel} + */ + public static mapToSingle(record: inspectionPointResult): InspectionPointResultViewModel { + return { + inspectionId: record.inspectionId, + inspectionVersionedPlanId: record.inspection.inspectionVersionedPlanId, + inspectionPointId: record.inspectionPointId, + inspectionPoint: InspectionPointFactory.mapToSingle(record.inspectionPoint), + value: record.value, + }; + } + + /** + * @description map records to inspectionPointResult + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/inspection/inspectionVersionedPlan.ts b/src/factory/admin/unit/inspection/inspectionVersionedPlan.ts new file mode 100644 index 0000000..c655342 --- /dev/null +++ b/src/factory/admin/unit/inspection/inspectionVersionedPlan.ts @@ -0,0 +1,28 @@ +import { inspectionVersionedPlan } from "../../../../entity/unit/inspection/inspectionVersionedPlan"; +import { InspectionVersionedPlanViewModel } from "../../../../viewmodel/admin/unit/inspection/inspectionPlan.models"; +import InspectionPointFactory from "./inspectionPoint"; + +export default abstract class InspectionVersionedPlanFactory { + /** + * @description map record to inspectionVersionedPlan + * @param {inspectionVersionedPlan} record + * @returns {InspectionVersionedPlanViewModel} + */ + public static mapToSingle(record: inspectionVersionedPlan): InspectionVersionedPlanViewModel { + return { + id: record.id, + version: record.version, + created: record.createdAt, + inspectionPoints: InspectionPointFactory.mapToBase(record.inspectionPoints), + }; + } + + /** + * @description map records to inspectionVersionedPlan + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/vehicle/vehicle.ts b/src/factory/admin/unit/vehicle/vehicle.ts new file mode 100644 index 0000000..fd7a86d --- /dev/null +++ b/src/factory/admin/unit/vehicle/vehicle.ts @@ -0,0 +1,32 @@ +import { vehicle } from "../../../../entity/unit/vehicle/vehicle"; +import { VehicleViewModel } from "../../../../viewmodel/admin/unit/vehicle/vehicle.models"; +import VehicleTypeFactory from "./vehicleType"; + +export default abstract class VehicleFactory { + /** + * @description map record to vehicle + * @param {vehicle} record + * @returns {VehicleViewModel} + */ + public static mapToSingle(record: vehicle): VehicleViewModel { + return { + id: record.id, + code: record?.code, + name: record.name, + location: record.location, + commissioned: record.commissioned, + decommissioned: record?.decommissioned, + vehicleTypeId: record?.vehicleTypeId, + vehicleType: record?.vehicleType ? VehicleTypeFactory.mapToSingle(record.vehicleType) : null, + }; + } + + /** + * @description map records to vehicle + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/vehicle/vehicleType.ts b/src/factory/admin/unit/vehicle/vehicleType.ts new file mode 100644 index 0000000..6155ca1 --- /dev/null +++ b/src/factory/admin/unit/vehicle/vehicleType.ts @@ -0,0 +1,26 @@ +import { vehicleType } from "../../../../entity/unit/vehicle/vehicleType"; +import { VehicleTypeViewModel } from "../../../../viewmodel/admin/unit/vehicle/vehicleType.models"; + +export default abstract class VehicleTypeFactory { + /** + * @description map record to vehicleType + * @param {vehicleType} record + * @returns {VehicleTypeViewModel} + */ + public static mapToSingle(record: vehicleType): VehicleTypeViewModel { + return { + id: record.id, + type: record.type, + description: record.description, + }; + } + + /** + * @description map records to vehicleType + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/wearable/wearable.ts b/src/factory/admin/unit/wearable/wearable.ts new file mode 100644 index 0000000..d3b39af --- /dev/null +++ b/src/factory/admin/unit/wearable/wearable.ts @@ -0,0 +1,35 @@ +import { wearable } from "../../../../entity/unit/wearable/wearable"; +import { WearableViewModel } from "../../../../viewmodel/admin/unit/wearable/wearable.models"; +import MemberFactory from "../../club/member/member"; +import WearableTypeFactory from "./wearableType"; + +export default abstract class WearableFactory { + /** + * @description map record to wearable + * @param {wearable} record + * @returns {WearableViewModel} + */ + public static mapToSingle(record: wearable): WearableViewModel { + return { + id: record.id, + code: record?.code, + name: record.name, + location: record.location, + commissioned: record.commissioned, + decommissioned: record?.decommissioned, + wearableTypeId: record?.wearableTypeId, + wearableType: record?.wearableType ? WearableTypeFactory.mapToSingle(record.wearableType) : null, + wearerId: record?.wearerId, + wearer: record?.wearer ? MemberFactory.mapToSingle(record.wearer) : null, + }; + } + + /** + * @description map records to wearable + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/factory/admin/unit/wearable/wearableType.ts b/src/factory/admin/unit/wearable/wearableType.ts new file mode 100644 index 0000000..b574bae --- /dev/null +++ b/src/factory/admin/unit/wearable/wearableType.ts @@ -0,0 +1,26 @@ +import { wearableType } from "../../../../entity/unit/wearable/wearableType"; +import { WearableTypeViewModel } from "../../../../viewmodel/admin/unit/wearable/wearableType.models"; + +export default abstract class WearableTypeFactory { + /** + * @description map record to wearableType + * @param {wearableType} record + * @returns {WearableTypeViewModel} + */ + public static mapToSingle(record: wearableType): WearableTypeViewModel { + return { + id: record.id, + type: record.type, + description: record.description, + }; + } + + /** + * @description map records to wearableType + * @param {Array} records + * @returns {Array} + */ + public static mapToBase(records: Array): Array { + return records.map((r) => this.mapToSingle(r)); + } +} diff --git a/src/service/unit/damageReport.ts b/src/service/unit/damageReport.ts index b6134d6..ef8b999 100644 --- a/src/service/unit/damageReport.ts +++ b/src/service/unit/damageReport.ts @@ -11,6 +11,9 @@ export default abstract class DamageReportService { return await dataSource .getRepository(damageReport) .createQueryBuilder("damageReport") + .leftJoinAndSelect("damageReport.equipment", "equipment") + .leftJoinAndSelect("damageReport.vehicle", "vehicle") + .leftJoinAndSelect("damageReport.wearable", "wearable") .orderBy("type", "ASC") .getMany() .then((res) => { diff --git a/src/service/unit/inspection/inspectionPlanService.ts b/src/service/unit/inspection/inspectionPlanService.ts index 0e2cc47..e9495fe 100644 --- a/src/service/unit/inspection/inspectionPlanService.ts +++ b/src/service/unit/inspection/inspectionPlanService.ts @@ -23,6 +23,8 @@ export default abstract class InspectionPlanService { : "latestVersionedPlan.inspectionPlanId = inspectionPlan.id AND latestVersionedPlan.version = (SELECT MAX(ivp.start) FROM inspection_versioned_plan ivp WHERE ivp.inspectionPlanId = inspectionPlan.id)" ) .leftJoinAndSelect("latestVersionedPlan.inspectionPoints", "inspectionPoints") + .leftJoinAndSelect("inspectionPlan.equipment", "equipment") + .leftJoinAndSelect("inspectionPlan.vehicle", "vehicle") .where(where) .orderBy("title", "ASC") .getMany() @@ -51,6 +53,8 @@ export default abstract class InspectionPlanService { : "latestVersionedPlan.inspectionPlanId = inspectionPlan.id AND latestVersionedPlan.version = (SELECT MAX(ivp.start) FROM inspection_versioned_plan ivp WHERE ivp.inspectionPlanId = inspectionPlan.id)" ) .leftJoinAndSelect("latestVersionedPlan.inspectionPoints", "inspectionPoints") + .leftJoinAndSelect("inspectionPlan.equipment", "equipment") + .leftJoinAndSelect("inspectionPlan.vehicle", "vehicle") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/inspection/inspectionService.ts b/src/service/unit/inspection/inspectionService.ts index 8262dd9..0fdf490 100644 --- a/src/service/unit/inspection/inspectionService.ts +++ b/src/service/unit/inspection/inspectionService.ts @@ -16,6 +16,8 @@ export default abstract class InspectionService { .leftJoinAndSelect("inspectionVersionedPlan.inspectionPoints", "inspectionPoints") .leftJoinAndSelect("inspection.pointResults", "pointResults") .leftJoinAndSelect("pointResults.inspectionPoint", "inspectionPoint") + .leftJoinAndSelect("inspection.equipment", "equipment") + .leftJoinAndSelect("inspection.vehicle", "vehicle") .where(where) .orderBy("createdAt", "DESC") .getMany() @@ -40,6 +42,8 @@ export default abstract class InspectionService { .leftJoinAndSelect("inspectionVersionedPlan.inspectionPoints", "inspectionPoints") .leftJoinAndSelect("inspection.pointResults", "pointResults") .leftJoinAndSelect("pointResults.inspectionPoint", "inspectionPoint") + .leftJoinAndSelect("inspection.equipment", "equipment") + .leftJoinAndSelect("inspection.vehicle", "vehicle") .where({ id }) .getOneOrFail() .then((res) => { diff --git a/src/service/unit/wearable/wearableService.ts b/src/service/unit/wearable/wearableService.ts index 9fc7325..7733d4a 100644 --- a/src/service/unit/wearable/wearableService.ts +++ b/src/service/unit/wearable/wearableService.ts @@ -12,6 +12,7 @@ export default abstract class WearableService { .getRepository(wearable) .createQueryBuilder("wearable") .leftJoinAndSelect("wearable.wearableType", "wearabletype") + .leftJoinAndSelect("wearable.wearer", "wearer") .orderBy("name", "ASC") .getMany() .then((res) => { diff --git a/src/viewmodel/admin/unit/damageReport/damageReport.models.ts b/src/viewmodel/admin/unit/damageReport.models.ts similarity index 70% rename from src/viewmodel/admin/unit/damageReport/damageReport.models.ts rename to src/viewmodel/admin/unit/damageReport.models.ts index a144114..b0f5c20 100644 --- a/src/viewmodel/admin/unit/damageReport/damageReport.models.ts +++ b/src/viewmodel/admin/unit/damageReport.models.ts @@ -1,15 +1,8 @@ -import type { EquipmentViewModel } from "../equipment/equipment.models"; -import type { VehicleViewModel } from "../vehicle/vehicle.models"; -import type { WearableViewModel } from "../wearable/wearable.models"; +import { EquipmentViewModel } from "./equipment/equipment.models"; +import { VehicleViewModel } from "./vehicle/vehicle.models"; +import { WearableViewModel } from "./wearable/wearable.models"; -export type DamageReportViewModel = { - id: string; - reported: Date; - status: string; - done: boolean; - description: string; - providedImage: Array; - reportedBy: string; +export type DamageReportAssigned = { relatedId: string; } & ( | { @@ -26,6 +19,16 @@ export type DamageReportViewModel = { } ); +export type DamageReportViewModel = { + id: string; + reported: Date; + status: string; + done: boolean; + description: string; + imageCount: number; + reportedBy: string; +} & DamageReportAssigned; + export interface CreateDamageReportViewModel { description: string; reportedBy: string; diff --git a/src/viewmodel/admin/unit/equipment/equipment.models.ts b/src/viewmodel/admin/unit/equipment/equipment.models.ts index dcd4cea..abbdee7 100644 --- a/src/viewmodel/admin/unit/equipment/equipment.models.ts +++ b/src/viewmodel/admin/unit/equipment/equipment.models.ts @@ -1,5 +1,4 @@ -import type { EquipmentTypeViewModel } from "../equipmentType/equipmentType.models"; -import type { InspectionViewModel } from "../inspection/inspection.models"; +import type { EquipmentTypeViewModel } from "./equipmentType.models"; export interface EquipmentViewModel { id: string; @@ -10,7 +9,6 @@ export interface EquipmentViewModel { decommissioned?: Date; equipmentTypeId: string; equipmentType: EquipmentTypeViewModel; - inspections: Array; } export interface CreateEquipmentViewModel { diff --git a/src/viewmodel/admin/unit/equipmentType/equipmentType.models.ts b/src/viewmodel/admin/unit/equipment/equipmentType.models.ts similarity index 67% rename from src/viewmodel/admin/unit/equipmentType/equipmentType.models.ts rename to src/viewmodel/admin/unit/equipment/equipmentType.models.ts index e3116c9..fcf47ee 100644 --- a/src/viewmodel/admin/unit/equipmentType/equipmentType.models.ts +++ b/src/viewmodel/admin/unit/equipment/equipmentType.models.ts @@ -1,10 +1,7 @@ -import type { InspectionPlanViewModel } from "../inspectionPlan/inspectionPlan.models"; - export interface EquipmentTypeViewModel { id: string; type: string; description: string; - inspectionPlans: Array; } export interface CreateEquipmentTypeViewModel { diff --git a/src/viewmodel/admin/unit/inspection/inspection.models.ts b/src/viewmodel/admin/unit/inspection/inspection.models.ts index 8cd2e5f..6565377 100644 --- a/src/viewmodel/admin/unit/inspection/inspection.models.ts +++ b/src/viewmodel/admin/unit/inspection/inspection.models.ts @@ -1,8 +1,9 @@ import type { EquipmentViewModel } from "../equipment/equipment.models"; import type { InspectionPlanViewModel, + InspectionPointViewModel, InspectionVersionedPlanViewModel, -} from "../inspectionPlan/inspectionPlan.models"; +} from "./inspectionPlan.models"; import type { VehicleViewModel } from "../vehicle/vehicle.models"; export type InspectionViewModel = { @@ -33,5 +34,6 @@ export interface InspectionPointResultViewModel { inspectionId: string; inspectionVersionedPlanId: string; inspectionPointId: string; + inspectionPoint: InspectionPointViewModel; value: string; } diff --git a/src/viewmodel/admin/unit/inspectionPlan/inspectionPlan.models.ts b/src/viewmodel/admin/unit/inspection/inspectionPlan.models.ts similarity index 97% rename from src/viewmodel/admin/unit/inspectionPlan/inspectionPlan.models.ts rename to src/viewmodel/admin/unit/inspection/inspectionPlan.models.ts index 31384d7..b2aecc0 100644 --- a/src/viewmodel/admin/unit/inspectionPlan/inspectionPlan.models.ts +++ b/src/viewmodel/admin/unit/inspection/inspectionPlan.models.ts @@ -37,6 +37,8 @@ export interface InspectionPointViewModel { description: string; type: InspectionPointEnum; min?: number; + max?: number; + sort: number; } export interface CreateInspectionPlanViewModel { diff --git a/src/viewmodel/admin/unit/respiratoryGear/respiratoryGear.models.ts b/src/viewmodel/admin/unit/respiratory/respiratoryGear.models.ts similarity index 100% rename from src/viewmodel/admin/unit/respiratoryGear/respiratoryGear.models.ts rename to src/viewmodel/admin/unit/respiratory/respiratoryGear.models.ts diff --git a/src/viewmodel/admin/unit/respiratoryMission/respiratoryMission.models.ts b/src/viewmodel/admin/unit/respiratory/respiratoryMission.models.ts similarity index 100% rename from src/viewmodel/admin/unit/respiratoryMission/respiratoryMission.models.ts rename to src/viewmodel/admin/unit/respiratory/respiratoryMission.models.ts diff --git a/src/viewmodel/admin/unit/respiratoryWearer/respiratoryWearer.models.ts b/src/viewmodel/admin/unit/respiratory/respiratoryWearer.models.ts similarity index 100% rename from src/viewmodel/admin/unit/respiratoryWearer/respiratoryWearer.models.ts rename to src/viewmodel/admin/unit/respiratory/respiratoryWearer.models.ts diff --git a/src/viewmodel/admin/unit/vehicle/vehicle.models.ts b/src/viewmodel/admin/unit/vehicle/vehicle.models.ts index 0bfccb6..4e273f6 100644 --- a/src/viewmodel/admin/unit/vehicle/vehicle.models.ts +++ b/src/viewmodel/admin/unit/vehicle/vehicle.models.ts @@ -1,5 +1,4 @@ -import type { InspectionViewModel } from "../inspection/inspection.models"; -import type { VehicleTypeViewModel } from "../vehicleType/vehicleType.models"; +import type { VehicleTypeViewModel } from "./vehicleType.models"; export interface VehicleViewModel { id: string; @@ -10,7 +9,6 @@ export interface VehicleViewModel { decommissioned?: Date; vehicleTypeId: string; vehicleType: VehicleTypeViewModel; - inspections: Array; } export interface CreateVehicleViewModel { diff --git a/src/viewmodel/admin/unit/vehicleType/vehicleType.models.ts b/src/viewmodel/admin/unit/vehicle/vehicleType.models.ts similarity index 67% rename from src/viewmodel/admin/unit/vehicleType/vehicleType.models.ts rename to src/viewmodel/admin/unit/vehicle/vehicleType.models.ts index 2de497f..ea6c7cf 100644 --- a/src/viewmodel/admin/unit/vehicleType/vehicleType.models.ts +++ b/src/viewmodel/admin/unit/vehicle/vehicleType.models.ts @@ -1,10 +1,7 @@ -import type { InspectionPlanViewModel } from "../inspectionPlan/inspectionPlan.models"; - export interface VehicleTypeViewModel { id: string; type: string; description: string; - inspectionPlans: Array; } export interface CreateVehicleTypeViewModel { diff --git a/src/viewmodel/admin/unit/wearable/wearable.models.ts b/src/viewmodel/admin/unit/wearable/wearable.models.ts index 5e4fccc..e2c5bbc 100644 --- a/src/viewmodel/admin/unit/wearable/wearable.models.ts +++ b/src/viewmodel/admin/unit/wearable/wearable.models.ts @@ -1,5 +1,5 @@ import { MemberViewModel } from "../../club/member/member.models"; -import type { WearableTypeViewModel } from "../wearableType/wearableType.models"; +import type { WearableTypeViewModel } from "./wearableType.models"; export interface WearableViewModel { id: string; diff --git a/src/viewmodel/admin/unit/wearableType/wearableType.models.ts b/src/viewmodel/admin/unit/wearable/wearableType.models.ts similarity index 100% rename from src/viewmodel/admin/unit/wearableType/wearableType.models.ts rename to src/viewmodel/admin/unit/wearable/wearableType.models.ts