newsletter CRUD & pdf
This commit is contained in:
parent
e9b29f8acf
commit
01ce3fdd39
31 changed files with 1185 additions and 23 deletions
42
src/entity/newsletter.ts
Normal file
42
src/entity/newsletter.ts
Normal file
|
@ -0,0 +1,42 @@
|
|||
import { Column, Entity, ManyToOne, OneToMany, PrimaryColumn } from "typeorm";
|
||||
import { newsletterDates } from "./newsletterDates";
|
||||
import { member } from "./member";
|
||||
import { newsletterRecipients } from "./newsletterRecipients";
|
||||
import { query } from "./query";
|
||||
|
||||
@Entity()
|
||||
export class newsletter {
|
||||
@PrimaryColumn({ generated: "increment", type: "int" })
|
||||
id: number;
|
||||
|
||||
@Column({ type: "varchar", length: 255 })
|
||||
title: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255, default: "" })
|
||||
description: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255, default: "" })
|
||||
newsletterTitle: string;
|
||||
|
||||
@Column({ type: "text", default: "" })
|
||||
newsletterText: string;
|
||||
|
||||
@Column({ type: "varchar", length: 255, default: "" })
|
||||
newsletterSignatur: string;
|
||||
|
||||
@Column({ type: "boolean", default: false })
|
||||
isSent: boolean;
|
||||
|
||||
@OneToMany(() => newsletterDates, (dates) => dates.newsletter)
|
||||
dates: newsletterDates[];
|
||||
|
||||
@OneToMany(() => newsletterRecipients, (recipient) => recipient.newsletter)
|
||||
recipients: newsletterRecipients[];
|
||||
|
||||
@ManyToOne(() => query, {
|
||||
nullable: true,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
recipientsByQuery?: query;
|
||||
}
|
32
src/entity/newsletterDates.ts
Normal file
32
src/entity/newsletterDates.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { newsletter } from "./newsletter";
|
||||
import { calendar } from "./calendar";
|
||||
|
||||
@Entity()
|
||||
export class newsletterDates {
|
||||
@PrimaryColumn({ type: "int" })
|
||||
newsletterId: number;
|
||||
|
||||
@PrimaryColumn({ type: "int" })
|
||||
calendarId: number;
|
||||
|
||||
@Column({ type: "varchar", length: 255, nullable: true })
|
||||
diffTitle: string | null;
|
||||
|
||||
@Column({ type: "text", nullable: true })
|
||||
diffDescription: string | null;
|
||||
|
||||
@ManyToOne(() => newsletter, (newsletter) => newsletter.dates, {
|
||||
nullable: false,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
newsletter: newsletter;
|
||||
|
||||
@ManyToOne(() => calendar, {
|
||||
nullable: false,
|
||||
onDelete: "RESTRICT",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
calendar: calendar;
|
||||
}
|
29
src/entity/newsletterRecipients.ts
Normal file
29
src/entity/newsletterRecipients.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
import { Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { newsletter } from "./newsletter";
|
||||
import { member } from "./member";
|
||||
|
||||
@Entity()
|
||||
export class newsletterRecipients {
|
||||
@PrimaryColumn({ type: "int" })
|
||||
newsletterId: number;
|
||||
|
||||
@PrimaryColumn({ type: "int" })
|
||||
memberId: number;
|
||||
|
||||
@Column({ type: "boolean", default: false })
|
||||
addedManually: boolean;
|
||||
|
||||
@ManyToOne(() => newsletter, (newsletter) => newsletter.recipients, {
|
||||
nullable: false,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
newsletter: newsletter;
|
||||
|
||||
@ManyToOne(() => member, {
|
||||
nullable: false,
|
||||
onDelete: "CASCADE",
|
||||
onUpdate: "RESTRICT",
|
||||
})
|
||||
member: member;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue