import { Table, TableForeignKey } from "typeorm"; import { getTypeByORM, isUUIDPrimary, getDefaultByORM } from "../ormHelper"; export const damage_report_table = new Table({ name: "damage_report", columns: [ { name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary }, { name: "reportedAt", ...getTypeByORM("datetime"), default: getDefaultByORM("currentTimestamp") }, { name: "status", ...getTypeByORM("varchar") }, { name: "done", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) }, { name: "description", ...getTypeByORM("text") }, { name: "reportedBy", ...getTypeByORM("varchar") }, { name: "imageCount", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) }, { name: "equipmentId", ...getTypeByORM("uuid", true) }, { name: "vehicleId", ...getTypeByORM("uuid", true) }, { name: "wearableId", ...getTypeByORM("uuid", true) }, { name: "maintenanceId", ...getTypeByORM("uuid", true) }, ], foreignKeys: [ new TableForeignKey({ columnNames: ["equipmentId"], referencedColumnNames: ["id"], referencedTableName: "equipment", onDelete: "CASCADE", onUpdate: "RESTRICT", }), new TableForeignKey({ columnNames: ["vehicleId"], referencedColumnNames: ["id"], referencedTableName: "vehicle", onDelete: "CASCADE", onUpdate: "RESTRICT", }), new TableForeignKey({ columnNames: ["wearableId"], referencedColumnNames: ["id"], referencedTableName: "wearable", onDelete: "CASCADE", onUpdate: "RESTRICT", }), new TableForeignKey({ columnNames: ["maintenanceId"], referencedColumnNames: ["id"], referencedTableName: "maintenance", onDelete: "SET NULL", onUpdate: "RESTRICT", }), ], }); export const maintenance_table = new Table({ name: "maintenance", columns: [ { name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary }, { name: "createdAt", ...getTypeByORM("datetime"), default: getDefaultByORM("currentTimestamp") }, { name: "status", ...getTypeByORM("varchar") }, { name: "done", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) }, { name: "description", ...getTypeByORM("text") }, { name: "equipmentId", ...getTypeByORM("uuid", true) }, { name: "vehicleId", ...getTypeByORM("uuid", true) }, { name: "wearableId", ...getTypeByORM("uuid", true) }, ], foreignKeys: [ new TableForeignKey({ columnNames: ["equipmentId"], referencedColumnNames: ["id"], referencedTableName: "equipment", onDelete: "CASCADE", onUpdate: "RESTRICT", }), new TableForeignKey({ columnNames: ["vehicleId"], referencedColumnNames: ["id"], referencedTableName: "vehicle", onDelete: "CASCADE", onUpdate: "RESTRICT", }), new TableForeignKey({ columnNames: ["wearableId"], referencedColumnNames: ["id"], referencedTableName: "wearable", onDelete: "CASCADE", onUpdate: "RESTRICT", }), ], });