150 lines
5.1 KiB
TypeScript
150 lines
5.1 KiB
TypeScript
import { Table, TableForeignKey, TableUnique, Unique } from "typeorm";
|
|
import { getTypeByORM, isUUIDPrimary, getDefaultByORM } from "../ormHelper";
|
|
|
|
export const inspection_plan_table = new Table({
|
|
name: "inspection_plan",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
|
{ name: "title", ...getTypeByORM("varchar") },
|
|
{ name: "inspectionInterval", ...getTypeByORM("varchar") },
|
|
{ name: "remindTime", ...getTypeByORM("varchar") },
|
|
{ name: "createdAt", ...getTypeByORM("date"), default: getDefaultByORM("currentTimestamp") },
|
|
{ name: "equipmentId", ...getTypeByORM("uuid", true), default: getDefaultByORM("null") },
|
|
{ name: "vehicleId", ...getTypeByORM("uuid", true), default: getDefaultByORM("null") },
|
|
],
|
|
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",
|
|
}),
|
|
],
|
|
});
|
|
|
|
export const inspection_versioned_plan_table = new Table({
|
|
name: "inspection_versioned_plan",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
|
{ name: "version", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) },
|
|
{ name: "createdAt", ...getTypeByORM("date"), default: getDefaultByORM("currentTimestamp") },
|
|
{ name: "inspectionPlanId", ...getTypeByORM("uuid") },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["inspectionPlanId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "inspection_plan",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
uniques: [
|
|
new TableUnique({
|
|
name: "unique_version",
|
|
columnNames: ["version", "inspectionPlanId"],
|
|
}),
|
|
],
|
|
});
|
|
|
|
export const inspection_point_table = new Table({
|
|
name: "inspection_point",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
|
{ name: "title", ...getTypeByORM("varchar") },
|
|
{ name: "description", ...getTypeByORM("text") },
|
|
{ name: "type", ...getTypeByORM("varchar") },
|
|
{ name: "min", ...getTypeByORM("int", true), default: getDefaultByORM("null") },
|
|
{ name: "max", ...getTypeByORM("int", true), default: getDefaultByORM("null") },
|
|
{ name: "sort", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) },
|
|
{ name: "versionedPlanId", ...getTypeByORM("uuid") },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["versionedPlanId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "inspection_versioned_plan",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
});
|
|
|
|
export const inspection_table = new Table({
|
|
name: "inspection",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
|
{ name: "context", ...getTypeByORM("text") },
|
|
{ name: "createdAt", ...getTypeByORM("date"), default: getDefaultByORM("currentTimestamp") },
|
|
{ name: "finishedAt", ...getTypeByORM("date", true) },
|
|
{ name: "nextInspection", ...getTypeByORM("date", true) },
|
|
{ name: "inspectionPlanId", ...getTypeByORM("uuid") },
|
|
{ name: "inspectionVersionedPlanId", ...getTypeByORM("uuid") },
|
|
{ name: "equipmentId", ...getTypeByORM("uuid", true), default: getDefaultByORM("null") },
|
|
{ name: "vehicleId", ...getTypeByORM("uuid", true), default: getDefaultByORM("null") },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["inspectionPlanId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "inspection_plan",
|
|
onDelete: "RESTRICT",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
new TableForeignKey({
|
|
columnNames: ["inspectionVersionedPlanId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "inspection_versioned_plan",
|
|
onDelete: "RESTRICT",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
new TableForeignKey({
|
|
columnNames: ["equipmentId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "equipment",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
new TableForeignKey({
|
|
columnNames: ["vehicleId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "vehicle",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
});
|
|
|
|
export const inspection_point_result_table = new Table({
|
|
name: "inspection_point_result",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
|
{ name: "value", ...getTypeByORM("text") },
|
|
{ name: "inspectionId", ...getTypeByORM("uuid") },
|
|
{ name: "inspectionPointId", ...getTypeByORM("uuid") },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["inspectionId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "inspection",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
new TableForeignKey({
|
|
columnNames: ["inspectionPointId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "inspection_point",
|
|
onDelete: "RESTRICT",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
});
|