86 lines
3 KiB
TypeScript
86 lines
3 KiB
TypeScript
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",
|
|
}),
|
|
],
|
|
});
|