diff --git a/src/command/unit/damageReportCommand.ts b/src/command/unit/damageReportCommand.ts index 60b8d17..aa47edf 100644 --- a/src/command/unit/damageReportCommand.ts +++ b/src/command/unit/damageReportCommand.ts @@ -13,6 +13,7 @@ export interface UpdateDamageReportCommand { id: string; status: string; noteByWorker: string; + user: { id: string; firstname: string; lastname: string }; done: boolean; } diff --git a/src/command/unit/damageReportCommandHandler.ts b/src/command/unit/damageReportCommandHandler.ts index 7d5e599..86771d5 100644 --- a/src/command/unit/damageReportCommandHandler.ts +++ b/src/command/unit/damageReportCommandHandler.ts @@ -54,7 +54,11 @@ export default abstract class DamageReportCommandHandler { .set({ status: updateDamageReport.status, noteByWorker: updateDamageReport.noteByWorker, - done: updateDamageReport.done, + closedAt: updateDamageReport.done ? new Date() : null, + closedById: updateDamageReport.done ? updateDamageReport.user.id : null, + closedByString: updateDamageReport.done + ? `${updateDamageReport.user.firstname} ${updateDamageReport.user.lastname}` + : null, }) .where("id = :id", { id: updateDamageReport.id }) .execute() diff --git a/src/command/unit/inspection/inspectionCommand.ts b/src/command/unit/inspection/inspectionCommand.ts index 254d690..16deedd 100644 --- a/src/command/unit/inspection/inspectionCommand.ts +++ b/src/command/unit/inspection/inspectionCommand.ts @@ -14,6 +14,7 @@ export interface UpdateInspectionCommand { export interface FinishInspectionCommand { id: string; + user: { id: string; firstname: string; lastname: string }; } export interface DeleteInspectionCommand { diff --git a/src/command/unit/inspection/inspectionCommandHandler.ts b/src/command/unit/inspection/inspectionCommandHandler.ts index f6156b3..8a17af2 100644 --- a/src/command/unit/inspection/inspectionCommandHandler.ts +++ b/src/command/unit/inspection/inspectionCommandHandler.ts @@ -96,6 +96,8 @@ export default abstract class InspectionCommandHandler { .update(inspection) .set({ finishedAt: new Date(), + finishedById: finishInspection.user.id, + finishedByString: `${finishInspection.user.firstname} ${finishInspection.user.lastname}`, }) .where("id = :id", { id: finishInspection.id }) .execute() diff --git a/src/command/unit/repairCommand.ts b/src/command/unit/repairCommand.ts index d455f16..4b071d5 100644 --- a/src/command/unit/repairCommand.ts +++ b/src/command/unit/repairCommand.ts @@ -17,6 +17,7 @@ export interface UpdateRepairCommand { export interface UpdateRepairStatusCommand { id: string; status: string; + user: { id: string; firstname: string; lastname: string }; done: boolean; } diff --git a/src/command/unit/repairCommandHandler.ts b/src/command/unit/repairCommandHandler.ts index d07dd95..711bb05 100644 --- a/src/command/unit/repairCommandHandler.ts +++ b/src/command/unit/repairCommandHandler.ts @@ -86,6 +86,8 @@ export default abstract class RepairCommandHandler { .set({ status: updateRepair.status, finishedAt: updateRepair.done ? new Date() : null, + finishedById: updateRepair.done ? updateRepair.user.id : null, + finishedByString: updateRepair.done ? `${updateRepair.user.firstname} ${updateRepair.user.lastname}` : null, }) .where("id = :id", { id: updateRepair.id }) .execute() diff --git a/src/controller/admin/unit/damageReportController.ts b/src/controller/admin/unit/damageReportController.ts index 4db079c..87f9a65 100644 --- a/src/controller/admin/unit/damageReportController.ts +++ b/src/controller/admin/unit/damageReportController.ts @@ -157,6 +157,11 @@ export async function updateDamageReportById(req: Request, res: Response): Promi status, noteByWorker, done, + user: { + id: req.userId, + firstname: req.firstname, + lastname: req.lastname, + }, }; await DamageReportCommandHandler.update(updateDamageReport); diff --git a/src/controller/admin/unit/inspectionController.ts b/src/controller/admin/unit/inspectionController.ts index f91b3d0..7307820 100644 --- a/src/controller/admin/unit/inspectionController.ts +++ b/src/controller/admin/unit/inspectionController.ts @@ -13,12 +13,10 @@ import ForbiddenRequestException from "../../../exceptions/forbiddenRequestExcep import { CreateOrUpdateInspectionPointResultCommand } from "../../../command/unit/inspection/inspectionPointResultCommand"; import InspectionPointResultCommandHandler from "../../../command/unit/inspection/inspectionPointResultCommandHandler"; import { InspectionPointEnum } from "../../../enums/inspectionEnum"; -import multer from "multer"; import { FileSystemHelper } from "../../../helpers/fileSystemHelper"; import { PdfExport } from "../../../helpers/pdfExport"; import { PDFDocument } from "pdf-lib"; import sharp from "sharp"; -import InspectionPointService from "../../../service/unit/inspection/inspectionPointService"; import InspectionPointResultService from "../../../service/unit/inspection/inspectionPointResultService"; /** @@ -270,7 +268,7 @@ export async function finishInspection(req: Request, res: Response): Promise { return (value ?? "").split(",").filter((i) => !!i); @@ -46,9 +59,6 @@ export class damageReport { }) images: string[]; - @Column({ type: "varchar", length: 255 }) - reportedBy: string; - @Column({ nullable: true, default: null }) equipmentId?: string; @@ -61,6 +71,13 @@ export class damageReport { @Column({ nullable: true, default: null }) repairId?: string; + @ManyToOne(() => user, { + nullable: true, + onDelete: "SET NULL", + onUpdate: "RESTRICT", + }) + closedBy?: user; + @ManyToOne(() => equipment, (e) => e.reports, { nullable: true, onDelete: "CASCADE", diff --git a/src/entity/unit/inspection/inspection.ts b/src/entity/unit/inspection/inspection.ts index eff01ec..68b5420 100644 --- a/src/entity/unit/inspection/inspection.ts +++ b/src/entity/unit/inspection/inspection.ts @@ -6,6 +6,7 @@ import { vehicle } from "../vehicle/vehicle"; import { equipment } from "../equipment/equipment"; import { inspectionPointResult } from "./inspectionPointResult"; import { wearable } from "../wearable/wearable"; +import { user } from "../../management/user"; @Entity() export class inspection { @@ -18,9 +19,15 @@ export class inspection { @CreateDateColumn() createdAt: Date; - @Column({ type: getTypeByORM("date").type as ColumnType, nullable: true, default: null }) + @Column({ type: getTypeByORM("datetime").type as ColumnType, nullable: true, default: null }) finishedAt?: Date; + @Column({ nullable: true, default: null }) + finishedById?: string; + + @Column({ type: "varchar", length: 255, nullable: true, default: null }) + finishedByString?: string; + @Column({ type: getTypeByORM("date").type as ColumnType, nullable: true, default: null }) nextInspection?: Date; @@ -42,6 +49,13 @@ export class inspection { @Column({ nullable: true, default: null }) wearableId?: string; + @ManyToOne(() => user, { + nullable: true, + onDelete: "SET NULL", + onUpdate: "RESTRICT", + }) + finishedBy?: user; + @ManyToOne(() => inspectionPlan, { nullable: false, onDelete: "RESTRICT", diff --git a/src/entity/unit/maintenance.ts b/src/entity/unit/maintenance.ts index 15ce3c2..5a183cc 100644 --- a/src/entity/unit/maintenance.ts +++ b/src/entity/unit/maintenance.ts @@ -4,6 +4,7 @@ import { wearable } from "./wearable/wearable"; import { vehicle } from "./vehicle/vehicle"; import { damageReport } from "./damageReport"; import { getTypeByORM } from "../../migrations/ormHelper"; +import { user } from "../management/user"; @Entity() export class maintenance { @@ -16,6 +17,12 @@ export class maintenance { @Column({ type: getTypeByORM("datetime").type as ColumnType, nullable: true, default: null }) finishedAt?: Date; + @Column({ nullable: true, default: null }) + finishedById?: string; + + @Column({ type: "varchar", length: 255, nullable: true, default: null }) + finishedByString?: string; + @Column({ type: "varchar", length: 255 }) status: string; @@ -31,6 +38,13 @@ export class maintenance { @Column({ nullable: true, default: null }) wearableId?: string; + @ManyToOne(() => user, { + nullable: true, + onDelete: "SET NULL", + onUpdate: "RESTRICT", + }) + finishedBy?: user; + @ManyToOne(() => equipment, (e) => e.maintenances, { nullable: true, onDelete: "CASCADE", diff --git a/src/entity/unit/repair.ts b/src/entity/unit/repair.ts index 707f652..c79f448 100644 --- a/src/entity/unit/repair.ts +++ b/src/entity/unit/repair.ts @@ -4,6 +4,7 @@ import { wearable } from "./wearable/wearable"; import { vehicle } from "./vehicle/vehicle"; import { damageReport } from "./damageReport"; import { getTypeByORM } from "../../migrations/ormHelper"; +import { user } from "../management/user"; @Entity() export class repair { @@ -16,11 +17,14 @@ export class repair { @Column({ type: getTypeByORM("datetime").type as ColumnType, nullable: true, default: null }) finishedAt?: Date; - @Column({ type: "varchar", length: 255 }) - status: string; + @Column({ nullable: true, default: null }) + finishedById?: string; + + @Column({ type: "varchar", length: 255, nullable: true, default: null }) + finishedByString?: string; @Column({ type: "varchar", length: 255 }) - responsible: string; + status: string; @Column({ type: "varchar", length: 255 }) title: string; @@ -28,8 +32,13 @@ export class repair { @Column({ type: "text" }) description: string; + @Column({ type: "varchar", length: 255, nullable: true, default: null }) + responsible: string; + @Column({ type: "text", + nullable: true, + default: null, transformer: { from(value: string): Array { return (value ?? "").split(",").filter((i) => !!i); @@ -53,6 +62,13 @@ export class repair { @Column({ nullable: true, default: null }) wearableId?: string; + @ManyToOne(() => user, { + nullable: true, + onDelete: "SET NULL", + onUpdate: "RESTRICT", + }) + finishedBy?: user; + @ManyToOne(() => equipment, (e) => e.maintenances, { nullable: true, onDelete: "CASCADE", diff --git a/src/factory/admin/unit/damageReport.ts b/src/factory/admin/unit/damageReport.ts index 29a8a56..f9f2e31 100644 --- a/src/factory/admin/unit/damageReport.ts +++ b/src/factory/admin/unit/damageReport.ts @@ -44,7 +44,8 @@ export default abstract class DamageReportFactory { id: record.id, reportedAt: record.reportedAt, status: record.status, - done: record.done, + closedAt: record.closedAt, + closedBy: record?.closedBy ? record.closedBy.firstname + " " + record.closedBy.lastname : record.closedByString, title: record.title, description: record.description, location: record.location, diff --git a/src/factory/admin/unit/inspection/inspection.ts b/src/factory/admin/unit/inspection/inspection.ts index f77f112..7d6280b 100644 --- a/src/factory/admin/unit/inspection/inspection.ts +++ b/src/factory/admin/unit/inspection/inspection.ts @@ -64,7 +64,10 @@ export default abstract class InspectionFactory { inspectionVersionedPlan: InspectionVersionedPlanFactory.mapToSingle(record.inspectionVersionedPlan), context: record.context, created: record.createdAt, - finished: record?.finishedAt, + finishedAt: record?.finishedAt, + finishedBy: record?.finishedBy + ? record.finishedBy.firstname + " " + record.finishedBy.lastname + : record.finishedByString, isOpen: record?.finishedAt == undefined, nextInspection: record?.nextInspection, checks: InspectionPointResultFactory.mapToBase(record.pointResults), diff --git a/src/factory/admin/unit/repair.ts b/src/factory/admin/unit/repair.ts index e656fc0..0e2d8d4 100644 --- a/src/factory/admin/unit/repair.ts +++ b/src/factory/admin/unit/repair.ts @@ -43,6 +43,9 @@ export default abstract class RepairFactory { id: record.id, createdAt: record.createdAt, finishedAt: record.finishedAt, + finishedBy: record?.finishedBy + ? record.finishedBy.firstname + " " + record.finishedBy.lastname + : record.finishedByString, status: record.status, responsible: record.responsible, title: record.title, diff --git a/src/migrations/baseSchemaTables/inspection.ts b/src/migrations/baseSchemaTables/inspection.ts index fad995f..76ca627 100644 --- a/src/migrations/baseSchemaTables/inspection.ts +++ b/src/migrations/baseSchemaTables/inspection.ts @@ -93,7 +93,9 @@ export const inspection_table = new Table({ { name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary }, { name: "context", ...getTypeByORM("text") }, { name: "createdAt", ...getTypeByORM("datetime"), default: getDefaultByORM("currentTimestamp") }, - { name: "finishedAt", ...getTypeByORM("date", true) }, + { name: "finishedAt", ...getTypeByORM("datetime", true) }, + { name: "finishedById", ...getTypeByORM("uuid", true) }, + { name: "finishedByString", ...getTypeByORM("varchar", true) }, { name: "nextInspection", ...getTypeByORM("date", true) }, { name: "hasNewer", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) }, { name: "inspectionPlanId", ...getTypeByORM("uuid") }, @@ -103,6 +105,13 @@ export const inspection_table = new Table({ { name: "wearableId", ...getTypeByORM("uuid", true) }, ], foreignKeys: [ + new TableForeignKey({ + columnNames: ["finishedById"], + referencedColumnNames: ["id"], + referencedTableName: "user", + onDelete: "SET NULL", + onUpdate: "RESTRICT", + }), new TableForeignKey({ columnNames: ["inspectionPlanId"], referencedColumnNames: ["id"], diff --git a/src/migrations/baseSchemaTables/unit_extend.ts b/src/migrations/baseSchemaTables/unit_extend.ts index 7ff9eee..85b7602 100644 --- a/src/migrations/baseSchemaTables/unit_extend.ts +++ b/src/migrations/baseSchemaTables/unit_extend.ts @@ -6,21 +6,30 @@ export const damage_report_table = new Table({ columns: [ { name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary }, { name: "reportedAt", ...getTypeByORM("datetime"), default: getDefaultByORM("currentTimestamp") }, + { name: "closedAt", ...getTypeByORM("datetime", true) }, + { name: "closedById", ...getTypeByORM("uuid", true) }, + { name: "closedByString", ...getTypeByORM("varchar", true) }, { name: "status", ...getTypeByORM("varchar") }, - { name: "done", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) }, { name: "title", ...getTypeByORM("varchar") }, { name: "description", ...getTypeByORM("text") }, - { name: "location", ...getTypeByORM("text") }, - { name: "noteByReporter", ...getTypeByORM("text") }, - { name: "noteByWorker", ...getTypeByORM("text") }, - { name: "reportedBy", ...getTypeByORM("varchar") }, - { name: "images", ...getTypeByORM("text") }, + { name: "location", ...getTypeByORM("text", true) }, + { name: "noteByReporter", ...getTypeByORM("text", true) }, + { name: "noteByWorker", ...getTypeByORM("text", true) }, + { name: "reportedBy", ...getTypeByORM("varchar", true) }, + { name: "images", ...getTypeByORM("text", true) }, { name: "equipmentId", ...getTypeByORM("uuid", true) }, { name: "vehicleId", ...getTypeByORM("uuid", true) }, { name: "wearableId", ...getTypeByORM("uuid", true) }, { name: "repairId", ...getTypeByORM("uuid", true) }, ], foreignKeys: [ + new TableForeignKey({ + columnNames: ["closedById"], + referencedColumnNames: ["id"], + referencedTableName: "user", + onDelete: "SET NULL", + onUpdate: "RESTRICT", + }), new TableForeignKey({ columnNames: ["equipmentId"], referencedColumnNames: ["id"], @@ -58,6 +67,8 @@ export const maintenance_table = new Table({ { name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary }, { name: "createdAt", ...getTypeByORM("datetime"), default: getDefaultByORM("currentTimestamp") }, { name: "finishedAt", ...getTypeByORM("datetime", true) }, + { name: "finishedById", ...getTypeByORM("uuid", true) }, + { name: "finishedByString", ...getTypeByORM("varchar", true) }, { name: "status", ...getTypeByORM("varchar") }, { name: "description", ...getTypeByORM("text") }, { name: "equipmentId", ...getTypeByORM("uuid", true) }, @@ -65,6 +76,13 @@ export const maintenance_table = new Table({ { name: "wearableId", ...getTypeByORM("uuid", true) }, ], foreignKeys: [ + new TableForeignKey({ + columnNames: ["finishedById"], + referencedColumnNames: ["id"], + referencedTableName: "user", + onDelete: "SET NULL", + onUpdate: "RESTRICT", + }), new TableForeignKey({ columnNames: ["equipmentId"], referencedColumnNames: ["id"], @@ -95,17 +113,26 @@ export const repair_table = new Table({ { name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary }, { name: "createdAt", ...getTypeByORM("datetime"), default: getDefaultByORM("currentTimestamp") }, { name: "finishedAt", ...getTypeByORM("datetime", true) }, + { name: "finishedById", ...getTypeByORM("uuid", true) }, + { name: "finishedByString", ...getTypeByORM("varchar", true) }, { name: "status", ...getTypeByORM("varchar") }, - { name: "responsible", ...getTypeByORM("varchar") }, { name: "title", ...getTypeByORM("varchar") }, { name: "description", ...getTypeByORM("text") }, - { name: "images", ...getTypeByORM("text") }, + { name: "responsible", ...getTypeByORM("varchar", true) }, + { name: "images", ...getTypeByORM("text", true) }, { name: "reportDocument", ...getTypeByORM("varchar", true) }, { name: "equipmentId", ...getTypeByORM("uuid", true) }, { name: "vehicleId", ...getTypeByORM("uuid", true) }, { name: "wearableId", ...getTypeByORM("uuid", true) }, ], foreignKeys: [ + new TableForeignKey({ + columnNames: ["finishedById"], + referencedColumnNames: ["id"], + referencedTableName: "user", + onDelete: "SET NULL", + onUpdate: "RESTRICT", + }), new TableForeignKey({ columnNames: ["equipmentId"], referencedColumnNames: ["id"], diff --git a/src/routes/admin/unit/damageReport.ts b/src/routes/admin/unit/damageReport.ts index 8b447d9..85bd319 100644 --- a/src/routes/admin/unit/damageReport.ts +++ b/src/routes/admin/unit/damageReport.ts @@ -15,6 +15,7 @@ import { provideDamageReportImageUpload, updateDamageReportById, } from "../../../controller/admin/unit/damageReportController"; +import preventWebapiAccess from "../../../middleware/preventWebApiAccess"; var router = express.Router({ mergeParams: true }); @@ -51,6 +52,7 @@ router.get("/:id/:filename", async (req: Request, res: Response) => { router.patch( "/:id", + preventWebapiAccess, PermissionHelper.passCheckMiddleware("update", "unit", "damage_report"), async (req: Request, res: Response) => { await updateDamageReportById(req, res); diff --git a/src/routes/admin/unit/inspection.ts b/src/routes/admin/unit/inspection.ts index 6a43526..426e6c3 100644 --- a/src/routes/admin/unit/inspection.ts +++ b/src/routes/admin/unit/inspection.ts @@ -14,6 +14,7 @@ import { getInspectionPointUpload, } from "../../../controller/admin/unit/inspectionController"; import { inspectionFileUpload } from "../../../middleware/multer"; +import preventWebapiAccess from "../../../middleware/preventWebApiAccess"; var router = express.Router({ mergeParams: true }); @@ -79,6 +80,7 @@ router.patch( router.patch( "/:id/finish", + preventWebapiAccess, PermissionHelper.passCheckMiddleware("update", "unit", "inspection"), async (req: Request, res: Response) => { await finishInspection(req, res); diff --git a/src/routes/admin/unit/repair.ts b/src/routes/admin/unit/repair.ts index 4f2499f..89c0a82 100644 --- a/src/routes/admin/unit/repair.ts +++ b/src/routes/admin/unit/repair.ts @@ -9,6 +9,7 @@ import { updateRepairReportsById, updateRepairStatusById, } from "../../../controller/admin/unit/repairController"; +import preventWebapiAccess from "../../../middleware/preventWebApiAccess"; var router = express.Router({ mergeParams: true }); @@ -61,6 +62,7 @@ router.patch( router.patch( "/:id/status", + preventWebapiAccess, PermissionHelper.passCheckMiddleware("update", "unit", "repair"), async (req: Request, res: Response) => { await updateRepairStatusById(req, res); diff --git a/src/service/unit/damageReportService.ts b/src/service/unit/damageReportService.ts index 25c0c6b..2a56e27 100644 --- a/src/service/unit/damageReportService.ts +++ b/src/service/unit/damageReportService.ts @@ -1,4 +1,4 @@ -import { In } from "typeorm"; +import { In, IsNull, Not } from "typeorm"; import { dataSource } from "../../data-source"; import { damageReport } from "../../entity/unit/damageReport"; import DatabaseActionException from "../../exceptions/databaseActionException"; @@ -11,7 +11,9 @@ export default abstract class DamageReportService { .leftJoinAndSelect("damageReport.equipment", "equipment") .leftJoinAndSelect("damageReport.vehicle", "vehicle") .leftJoinAndSelect("damageReport.wearable", "wearable") - .leftJoinAndSelect("damageReport.repair", "repair"); + .leftJoinAndSelect("damageReport.repair", "repair") + .leftJoinAndSelect("damageReport.closedBy", "user"); + /** * @description get all damageReports By done * @returns {Promise<[Array, number]>} @@ -64,7 +66,7 @@ export default abstract class DamageReportService { noLimit?: boolean; } ): Promise<[Array, number]> { - let query = this.query().where({ done }); + let query = this.query().where({ closedAt: done ? Not(IsNull()) : IsNull() }); if (!noLimit) { query = query.offset(offset).limit(count); diff --git a/src/service/unit/inspection/inspectionService.ts b/src/service/unit/inspection/inspectionService.ts index 5e85f83..b4df294 100644 --- a/src/service/unit/inspection/inspectionService.ts +++ b/src/service/unit/inspection/inspectionService.ts @@ -18,7 +18,8 @@ export default abstract class InspectionService { .leftJoinAndSelect("pointResults.inspectionPoint", "inspectionPoint") .leftJoinAndSelect("inspection.equipment", "equipment") .leftJoinAndSelect("inspection.vehicle", "vehicle") - .leftJoinAndSelect("inspection.wearable", "wearable"); + .leftJoinAndSelect("inspection.wearable", "wearable") + .leftJoinAndSelect("inspection.finishedBy", "user"); private static minifiedQuery = () => dataSource diff --git a/src/service/unit/maintenanceService.ts b/src/service/unit/maintenanceService.ts index d2917e2..fa2adbe 100644 --- a/src/service/unit/maintenanceService.ts +++ b/src/service/unit/maintenanceService.ts @@ -10,13 +10,14 @@ export default abstract class MaintenanceService { .createQueryBuilder("maintenance") .leftJoinAndSelect("maintenance.equipment", "equipment") .leftJoinAndSelect("maintenance.vehicle", "vehicle") - .leftJoinAndSelect("maintenance.wearable", "wearable"); + .leftJoinAndSelect("maintenance.wearable", "wearable") + .leftJoinAndSelect("maintenance.finishedBy", "user"); /** * @description get all maintenances * @returns {Promise<[Array, number]>} */ - static async getAll( + static async getAllByDone( done = false, { offset = 0, diff --git a/src/service/unit/repairService.ts b/src/service/unit/repairService.ts index 731b8ad..5e443ea 100644 --- a/src/service/unit/repairService.ts +++ b/src/service/unit/repairService.ts @@ -11,13 +11,14 @@ export default abstract class RepairService { .leftJoinAndSelect("repair.equipment", "equipment") .leftJoinAndSelect("repair.vehicle", "vehicle") .leftJoinAndSelect("repair.wearable", "wearable") - .leftJoinAndSelect("repair.reports", "reports"); + .leftJoinAndSelect("repair.reports", "reports") + .leftJoinAndSelect("repair.finishedBy", "user"); /** * @description get all repairs * @returns {Promise<[Array, number]>} */ - static async getAll( + static async getAllByDone( done = false, { offset = 0, diff --git a/src/viewmodel/admin/unit/damageReport.models.ts b/src/viewmodel/admin/unit/damageReport.models.ts index 02f5ce1..6e798cb 100644 --- a/src/viewmodel/admin/unit/damageReport.models.ts +++ b/src/viewmodel/admin/unit/damageReport.models.ts @@ -1,5 +1,4 @@ import { EquipmentViewModel } from "./equipment/equipment.models"; -import { MaintenanceViewModel } from "./maintenance.models"; import { RepairViewModel } from "./repair.models"; import { VehicleViewModel } from "./vehicle/vehicle.models"; import { WearableViewModel } from "./wearable/wearable.models"; @@ -25,8 +24,9 @@ export type DamageReportViewModel = { id: string; title: string; reportedAt: Date; + closedAt?: Date; + closedBy?: string; status: string; - done: boolean; description: string; location: string; noteByReporter: string; diff --git a/src/viewmodel/admin/unit/inspection/inspection.models.ts b/src/viewmodel/admin/unit/inspection/inspection.models.ts index 87af590..47dc888 100644 --- a/src/viewmodel/admin/unit/inspection/inspection.models.ts +++ b/src/viewmodel/admin/unit/inspection/inspection.models.ts @@ -32,7 +32,8 @@ export type InspectionViewModel = { inspectionVersionedPlan: InspectionVersionedPlanViewModel; context: string; created: Date; - finished?: Date; + finishedAt?: Date; + finishedBy?: string; isOpen: boolean; nextInspection?: Date; checks: Array; diff --git a/src/viewmodel/admin/unit/repair.models.ts b/src/viewmodel/admin/unit/repair.models.ts index c0b21b4..74c983d 100644 --- a/src/viewmodel/admin/unit/repair.models.ts +++ b/src/viewmodel/admin/unit/repair.models.ts @@ -24,6 +24,7 @@ export type RepairViewModel = { id: string; createdAt: Date; finishedAt?: Date; + finishedBy?: string; status: string; responsible: string; title: string;