import { Table, TableForeignKey, TableUnique } from "typeorm"; import { getDefaultByORM, getTypeByORM, isIncrementPrimary, isUUIDPrimary } from "../ormHelper"; export const calendar_type_table = new Table({ name: "calendar_type", columns: [ { 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) }, ], }); export const calendar_table = new Table({ name: "calendar", columns: [ { 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) }, { name: "updatedAt", ...getTypeByORM("datetime", false, 6), default: getDefaultByORM("currentTimestamp", 6), onUpdate: getDefaultByORM("currentTimestamp", 6), }, { name: "webpageId", ...getTypeByORM("varchar", true) }, { name: "typeId", ...getTypeByORM("int") }, ], foreignKeys: [ new TableForeignKey({ columnNames: ["typeId"], referencedColumnNames: ["id"], referencedTableName: "calendar_type", onDelete: "RESTRICT", onUpdate: "RESTRICT", }), ], uniques: [ new TableUnique({ columnNames: ["webpageId"], }), ], });