import { Column, Entity, ManyToOne, OneToMany, PrimaryColumn } from "typeorm";
import { newsletterDates } from "./newsletterDates";
import { member } from "../member/member";
import { newsletterRecipients } from "./newsletterRecipients";
import { query } from "../../settings/query";

@Entity()
export class newsletter {
  @PrimaryColumn({ generated: "increment", type: "int" })
  id: number;

  @Column({ type: "varchar", length: 255, unique: true })
  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;

  @Column({ type: "int", nullable: true })
  recipientsByQueryId?: number;

  @OneToMany(() => newsletterDates, (dates) => dates.newsletter)
  dates: newsletterDates[];

  @OneToMany(() => newsletterRecipients, (recipient) => recipient.newsletter)
  recipients: newsletterRecipients[];

  @ManyToOne(() => query, {
    nullable: true,
    onDelete: "CASCADE",
    onUpdate: "RESTRICT",
  })
  recipientsByQuery?: query;
}