2025-06-07 15:20:20 +02:00
|
|
|
import { Table, TableForeignKey, TableUnique } from "typeorm";
|
2025-02-01 13:11:10 +01:00
|
|
|
import { getDefaultByORM, getTypeByORM, isIncrementPrimary, isUUIDPrimary } from "../ormHelper";
|
2025-01-30 15:58:34 +01:00
|
|
|
|
|
|
|
export const calendar_type_table = new Table({
|
|
|
|
name: "calendar_type",
|
|
|
|
columns: [
|
2025-02-01 13:11:10 +01:00
|
|
|
{ name: "id", ...getTypeByORM("int"), ...isIncrementPrimary },
|
|
|
|
{ name: "type", ...getTypeByORM("varchar"), isUnique: true },
|
|
|
|
{ name: "nscdr", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) },
|
|
|
|
{ name: "color", ...getTypeByORM("varchar") },
|
|
|
|
{ name: "passphrase", ...getTypeByORM("varchar", true) },
|
|
|
|
{ name: "externalPrefix", ...getTypeByORM("varchar"), default: getDefaultByORM("string") },
|
|
|
|
{ name: "sendToWebpage", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) },
|
2025-01-30 15:58:34 +01:00
|
|
|
],
|
|
|
|
});
|
|
|
|
|
|
|
|
export const calendar_table = new Table({
|
|
|
|
name: "calendar",
|
|
|
|
columns: [
|
2025-02-01 13:11:10 +01:00
|
|
|
{ name: "id", ...getTypeByORM("uuid"), ...isUUIDPrimary },
|
|
|
|
{ name: "starttime", ...getTypeByORM("datetime", false, 6) },
|
|
|
|
{ name: "endtime", ...getTypeByORM("datetime", false, 6) },
|
|
|
|
{ name: "title", ...getTypeByORM("varchar") },
|
|
|
|
{ name: "content", ...getTypeByORM("text", true) },
|
|
|
|
{ name: "allDay", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) },
|
|
|
|
{ name: "location", ...getTypeByORM("text", true) },
|
|
|
|
{ name: "sequence", ...getTypeByORM("int"), default: getDefaultByORM("number", 1) },
|
|
|
|
{ name: "createdAt", ...getTypeByORM("datetime", false, 6), default: getDefaultByORM("currentTimestamp", 6) },
|
2025-01-30 15:58:34 +01:00
|
|
|
{
|
|
|
|
name: "updatedAt",
|
2025-02-01 13:11:10 +01:00
|
|
|
...getTypeByORM("datetime", false, 6),
|
|
|
|
default: getDefaultByORM("currentTimestamp", 6),
|
|
|
|
onUpdate: getDefaultByORM<string>("currentTimestamp", 6),
|
2025-01-31 11:06:02 +01:00
|
|
|
},
|
2025-06-07 15:20:20 +02:00
|
|
|
{ name: "webpageId", ...getTypeByORM("varchar", true) },
|
2025-02-01 13:11:10 +01:00
|
|
|
{ name: "typeId", ...getTypeByORM("int") },
|
2025-01-30 15:58:34 +01:00
|
|
|
],
|
|
|
|
foreignKeys: [
|
|
|
|
new TableForeignKey({
|
|
|
|
columnNames: ["typeId"],
|
|
|
|
referencedColumnNames: ["id"],
|
|
|
|
referencedTableName: "calendar_type",
|
|
|
|
onDelete: "RESTRICT",
|
|
|
|
onUpdate: "RESTRICT",
|
|
|
|
}),
|
|
|
|
],
|
2025-06-07 15:20:20 +02:00
|
|
|
uniques: [
|
|
|
|
new TableUnique({
|
|
|
|
columnNames: ["webpageId"],
|
|
|
|
}),
|
|
|
|
],
|
2025-01-30 15:58:34 +01:00
|
|
|
});
|