ff-admin-server/src/migrations/baseSchemaTables/query_template.ts

64 lines
2.3 KiB
TypeScript
Raw Normal View History

2025-01-30 15:58:34 +01:00
import { Table, TableForeignKey } from "typeorm";
2025-06-07 15:20:20 +02:00
import { getDefaultByORM, getTypeByORM, isIncrementPrimary, isUUIDPrimary } from "../ormHelper";
2025-01-30 15:58:34 +01:00
export const query_table = new Table({
name: "query",
columns: [
2025-06-07 15:20:20 +02:00
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
{ name: "title", ...getTypeByORM("varchar"), isUnique: true },
{ name: "query", ...getTypeByORM("text"), default: getDefaultByORM("string") },
2025-06-07 15:20:20 +02:00
{
name: "updatedAt",
...getTypeByORM("datetime", false, 6),
default: getDefaultByORM("currentTimestamp", 6),
onUpdate: getDefaultByORM<string>("currentTimestamp", 6),
},
2025-01-30 15:58:34 +01:00
],
});
export const template_table = new Table({
name: "template",
columns: [
{ name: "id", ...getTypeByORM("int"), ...isIncrementPrimary },
{ name: "template", ...getTypeByORM("varchar"), isUnique: true },
{ name: "description", ...getTypeByORM("varchar", true) },
{ name: "design", ...getTypeByORM("text"), default: getDefaultByORM("string", "{}") },
{ name: "html", ...getTypeByORM("text"), default: getDefaultByORM("string") },
2025-01-30 15:58:34 +01:00
],
});
export const template_usage_table = new Table({
name: "template_usage",
columns: [
{ name: "scope", ...getTypeByORM("varchar"), isPrimary: true },
{ name: "headerId", ...getTypeByORM("int", true), default: getDefaultByORM("null") },
{ name: "bodyId", ...getTypeByORM("int", true), default: getDefaultByORM("null") },
{ name: "footerId", ...getTypeByORM("int", true), default: getDefaultByORM("null") },
{ name: "headerHeight", ...getTypeByORM("int", true), default: getDefaultByORM("null") },
{ name: "footerHeight", ...getTypeByORM("int", true), default: getDefaultByORM("null") },
2025-01-30 15:58:34 +01:00
],
foreignKeys: [
new TableForeignKey({
columnNames: ["headerId"],
referencedColumnNames: ["id"],
referencedTableName: "template",
onDelete: "RESTRICT",
onUpdate: "RESTRICT",
}),
new TableForeignKey({
columnNames: ["bodyId"],
referencedColumnNames: ["id"],
referencedTableName: "template",
onDelete: "RESTRICT",
onUpdate: "RESTRICT",
}),
new TableForeignKey({
columnNames: ["footerId"],
referencedColumnNames: ["id"],
referencedTableName: "template",
onDelete: "RESTRICT",
onUpdate: "RESTRICT",
}),
],
});