63 lines
2.3 KiB
TypeScript
63 lines
2.3 KiB
TypeScript
import { Table, TableForeignKey } from "typeorm";
|
|
import { getDefaultByORM, getTypeByORM, isIncrementPrimary, isUUIDPrimary } from "../ormHelper";
|
|
|
|
export const query_table = new Table({
|
|
name: "query",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
|
{ name: "title", ...getTypeByORM("varchar"), isUnique: true },
|
|
{ name: "query", ...getTypeByORM("text"), default: getDefaultByORM("string") },
|
|
{
|
|
name: "updatedAt",
|
|
...getTypeByORM("datetime", false, 6),
|
|
default: getDefaultByORM("currentTimestamp", 6),
|
|
onUpdate: getDefaultByORM<string>("currentTimestamp", 6),
|
|
},
|
|
],
|
|
});
|
|
|
|
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") },
|
|
],
|
|
});
|
|
|
|
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") },
|
|
],
|
|
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",
|
|
}),
|
|
],
|
|
});
|