93 lines
3.1 KiB
TypeScript
93 lines
3.1 KiB
TypeScript
|
import { Table, TableForeignKey } from "typeorm";
|
||
|
import { getTypeByORM } from "../ormHelper";
|
||
|
|
||
|
export const newsletter_table = new Table({
|
||
|
name: "newsletter",
|
||
|
columns: [
|
||
|
{ name: "id", type: getTypeByORM("int"), isPrimary: true, isGenerated: true, generationStrategy: "increment" },
|
||
|
{ name: "title", type: getTypeByORM("varchar"), length: "255" },
|
||
|
{ name: "description", type: getTypeByORM("varchar"), length: "255", default: "''" },
|
||
|
{ name: "newsletterTitle", type: getTypeByORM("varchar"), length: "255", default: "''" },
|
||
|
{ name: "newsletterText", type: getTypeByORM("text"), default: "''" },
|
||
|
{ name: "newsletterSignatur", type: getTypeByORM("varchar"), length: "255", default: "''" },
|
||
|
{ name: "isSent", type: getTypeByORM("boolean"), default: false },
|
||
|
{ name: "recipientsByQueryId", type: getTypeByORM("int"), isNullable: true },
|
||
|
],
|
||
|
foreignKeys: [
|
||
|
new TableForeignKey({
|
||
|
columnNames: ["recipientsByQueryId"],
|
||
|
referencedColumnNames: ["id"],
|
||
|
referencedTableName: "query",
|
||
|
onDelete: "CASCADE",
|
||
|
onUpdate: "RESTRICT",
|
||
|
}),
|
||
|
],
|
||
|
});
|
||
|
|
||
|
export const newsletter_dates_table = new Table({
|
||
|
name: "newsletter_dates",
|
||
|
columns: [
|
||
|
{ name: "newsletterId", type: getTypeByORM("int"), isPrimary: true },
|
||
|
{ name: "calendarId", type: getTypeByORM("varchar"), length: "255", isPrimary: true },
|
||
|
{ name: "diffTitle", type: getTypeByORM("varchar"), length: "255", isNullable: true },
|
||
|
{ name: "diffDescription", type: getTypeByORM("text"), isNullable: true },
|
||
|
],
|
||
|
foreignKeys: [
|
||
|
new TableForeignKey({
|
||
|
columnNames: ["newsletterId"],
|
||
|
referencedColumnNames: ["id"],
|
||
|
referencedTableName: "newsletter",
|
||
|
onDelete: "CASCADE",
|
||
|
onUpdate: "RESTRICT",
|
||
|
}),
|
||
|
new TableForeignKey({
|
||
|
columnNames: ["calendarId"],
|
||
|
referencedColumnNames: ["id"],
|
||
|
referencedTableName: "calendar",
|
||
|
onDelete: "RESTRICT",
|
||
|
onUpdate: "RESTRICT",
|
||
|
}),
|
||
|
],
|
||
|
});
|
||
|
|
||
|
export const newsletter_recipients_table = new Table({
|
||
|
name: "newsletter_recipients",
|
||
|
columns: [
|
||
|
{ name: "newsletterId", type: getTypeByORM("int"), isPrimary: true },
|
||
|
{ name: "memberId", type: getTypeByORM("varchar"), isPrimary: true },
|
||
|
],
|
||
|
foreignKeys: [
|
||
|
new TableForeignKey({
|
||
|
columnNames: ["newsletterId"],
|
||
|
referencedColumnNames: ["id"],
|
||
|
referencedTableName: "newsletter",
|
||
|
onDelete: "CASCADE",
|
||
|
onUpdate: "RESTRICT",
|
||
|
}),
|
||
|
new TableForeignKey({
|
||
|
columnNames: ["memberId"],
|
||
|
referencedColumnNames: ["id"],
|
||
|
referencedTableName: "member",
|
||
|
onDelete: "CASCADE",
|
||
|
onUpdate: "RESTRICT",
|
||
|
}),
|
||
|
],
|
||
|
});
|
||
|
|
||
|
export const newsletter_config_table = new Table({
|
||
|
name: "newsletter_config",
|
||
|
columns: [
|
||
|
{ name: "comTypeId", type: getTypeByORM("int"), isPrimary: true, isNullable: false },
|
||
|
{ name: "config", type: getTypeByORM("varchar"), length: "255", isNullable: false },
|
||
|
],
|
||
|
foreignKeys: [
|
||
|
new TableForeignKey({
|
||
|
columnNames: ["comTypeId"],
|
||
|
referencedColumnNames: ["id"],
|
||
|
referencedTableName: "communication_type",
|
||
|
onDelete: "CASCADE",
|
||
|
onUpdate: "RESTRICT",
|
||
|
}),
|
||
|
],
|
||
|
});
|