124 lines
4.3 KiB
TypeScript
124 lines
4.3 KiB
TypeScript
import { Table, TableForeignKey, TableUnique } from "typeorm";
|
|
import { getDefaultByORM, getTypeByORM, isIncrementPrimary } from "../ormHelper";
|
|
|
|
export const protocol_table = new Table({
|
|
name: "protocol",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("int"), ...isIncrementPrimary },
|
|
{ name: "title", ...getTypeByORM("varchar"), isUnique: true },
|
|
{ name: "date", ...getTypeByORM("date") },
|
|
{ name: "starttime", ...getTypeByORM("time", true) },
|
|
{ name: "endtime", ...getTypeByORM("time", true) },
|
|
{ name: "summary", ...getTypeByORM("text", true) },
|
|
],
|
|
});
|
|
|
|
export const protocol_agenda_table = new Table({
|
|
name: "protocol_agenda",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("int"), ...isIncrementPrimary },
|
|
{ name: "topic", ...getTypeByORM("varchar") },
|
|
{ name: "context", ...getTypeByORM("text"), default: getDefaultByORM("string") },
|
|
{ name: "sort", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) },
|
|
{ name: "protocolId", ...getTypeByORM("int") },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["protocolId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "protocol",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
});
|
|
|
|
export const protocol_decision_table = new Table({
|
|
name: "protocol_decision",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("int"), ...isIncrementPrimary },
|
|
{ name: "topic", ...getTypeByORM("varchar") },
|
|
{ name: "context", ...getTypeByORM("text"), default: getDefaultByORM("string") },
|
|
{ name: "sort", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) },
|
|
{ name: "protocolId", ...getTypeByORM("int") },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["protocolId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "protocol",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
});
|
|
|
|
export const protocol_presence_table = new Table({
|
|
name: "protocol_presence",
|
|
columns: [
|
|
{ name: "memberId", ...getTypeByORM("uuid"), isPrimary: true },
|
|
{ name: "protocolId", ...getTypeByORM("int"), isPrimary: true },
|
|
{ name: "absent", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", false) },
|
|
{ name: "excused", ...getTypeByORM("boolean"), default: getDefaultByORM("boolean", true) },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["protocolId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "protocol",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
new TableForeignKey({
|
|
columnNames: ["memberId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "member",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
});
|
|
|
|
export const protocol_voting_table = new Table({
|
|
name: "protocol_voting",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("int"), ...isIncrementPrimary },
|
|
{ name: "topic", ...getTypeByORM("varchar") },
|
|
{ name: "context", ...getTypeByORM("text"), default: getDefaultByORM("string") },
|
|
{ name: "favour", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) },
|
|
{ name: "abstain", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) },
|
|
{ name: "against", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) },
|
|
{ name: "sort", ...getTypeByORM("int"), default: getDefaultByORM("number", 0) },
|
|
{ name: "protocolId", ...getTypeByORM("int") },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["protocolId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "protocol",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
});
|
|
|
|
export const protocol_printout_table = new Table({
|
|
name: "protocol_printout",
|
|
columns: [
|
|
{ name: "id", ...getTypeByORM("int"), ...isIncrementPrimary },
|
|
{ name: "title", ...getTypeByORM("varchar") },
|
|
{ name: "iteration", ...getTypeByORM("int"), default: getDefaultByORM("number", 1) },
|
|
{ name: "filename", ...getTypeByORM("varchar") },
|
|
{ name: "createdAt", ...getTypeByORM("datetime", false, 6), default: getDefaultByORM("currentTimestamp", 6) },
|
|
{ name: "protocolId", ...getTypeByORM("int") },
|
|
],
|
|
foreignKeys: [
|
|
new TableForeignKey({
|
|
columnNames: ["protocolId"],
|
|
referencedColumnNames: ["id"],
|
|
referencedTableName: "protocol",
|
|
onDelete: "CASCADE",
|
|
onUpdate: "RESTRICT",
|
|
}),
|
|
],
|
|
});
|