inspection data model

This commit is contained in:
Julian Krauser 2025-05-24 13:51:38 +02:00
parent 95d1113ff9
commit 3ff44f7370
9 changed files with 222 additions and 21 deletions

View file

@ -2,7 +2,7 @@ import type { EquipmentViewModel } from "../equipment/equipment.models";
import type { VehicleViewModel } from "../vehicle/vehicle.models";
import type { WearableViewModel } from "../wearable/wearable.models";
export interface DamageReportViewModel {
export type DamageReportViewModel = {
id: string;
reported: Date;
status: string;
@ -10,9 +10,20 @@ export interface DamageReportViewModel {
description: string;
providedImage: Array<string>;
relatedId: string;
related: EquipmentViewModel | VehicleViewModel | WearableViewModel;
affected: "equipment" | "vehicle" | "wearable";
}
} & (
| {
assigned: "equipment";
related: EquipmentViewModel;
}
| {
assigned: "vehicle";
related: VehicleViewModel;
}
| {
assigned: "wearable";
related: WearableViewModel;
}
);
export interface CreateDamageReportViewModel {
description: string;

View file

@ -5,7 +5,7 @@ import type {
} from "../inspectionPlan/inspectionPlan.models";
import type { VehicleViewModel } from "../vehicle/vehicle.models";
export interface InspectionViewModel {
export type InspectionViewModel = {
id: string;
inspectionPlanId: string;
inspectionPlan: InspectionPlanViewModel;
@ -18,16 +18,16 @@ export interface InspectionViewModel {
nextInspection?: Date;
checks: Array<InspectionPointResultViewModel>;
relatedId: string;
related: EquipmentViewModel | VehicleViewModel;
}
export interface InspectionPointViewModel {
id: string;
title: string;
description: string;
type: "iO-niO" | "text" | "number";
min?: number;
}
} & (
| {
assigned: "equipment";
related: EquipmentViewModel;
}
| {
assigned: "vehicle";
related: VehicleViewModel;
}
);
export interface InspectionPointResultViewModel {
inspectionId: string;

View file

@ -1,12 +1,10 @@
import { InspectionPointEnum } from "../../../../enums/inspectionEnum";
import type { EquipmentViewModel } from "../equipment/equipment.models";
import type { EquipmentTypeViewModel } from "../equipmentType/equipmentType.models";
import type { InspectionPointViewModel } from "../inspection/inspection.models";
import type { VehicleViewModel } from "../vehicle/vehicle.models";
import type { VehicleTypeViewModel } from "../vehicleType/vehicleType.models";
export type PlanTimeDefinition = `${number}-${"d" | "m" | "y"}` | `${number}/${number | "*"}`;
export interface InspectionPlanViewModel {
export type InspectionPlanViewModel = {
id: string;
title: string;
inspectionInterval: PlanTimeDefinition;
@ -15,8 +13,16 @@ export interface InspectionPlanViewModel {
created: Date;
inspectionPoints: InspectionPointViewModel[];
relatedId: string;
related: EquipmentTypeViewModel | VehicleTypeViewModel;
}
} & (
| {
assigned: "equipment";
related: EquipmentViewModel;
}
| {
assigned: "vehicle";
related: VehicleViewModel;
}
);
export interface InspectionVersionedPlanViewModel {
id: string;
@ -25,6 +31,14 @@ export interface InspectionVersionedPlanViewModel {
inspectionPoints: InspectionPointViewModel[];
}
export interface InspectionPointViewModel {
id: string;
title: string;
description: string;
type: InspectionPointEnum;
min?: number;
}
export interface CreateInspectionPlanViewModel {
title: string;
inspectionInterval: PlanTimeDefinition;