import { Table, Column, CreatedAt, UpdatedAt, Model, PrimaryKey, AutoIncrement, ForeignKey, BelongsTo, HasMany } from "sequelize-typescript"; import CampaignShipping from "./CampaignShipping"; import Company from "./Company"; import ContactList from "./ContactList"; import Whatsapp from "./Whatsapp"; import Files from "./Files"; @Table({ tableName: "Campaigns" }) class Campaign extends Model { @PrimaryKey @AutoIncrement @Column id: number; @Column name: string; @Column({ defaultValue: "" }) message1: string; @Column({ defaultValue: "" }) message2: string; @Column({ defaultValue: "" }) message3: string; @Column({ defaultValue: "" }) message4: string; @Column({ defaultValue: "" }) message5: string; @Column({ defaultValue: "" }) confirmationMessage1: string; @Column({ defaultValue: "" }) confirmationMessage2: string; @Column({ defaultValue: "" }) confirmationMessage3: string; @Column({ defaultValue: "" }) confirmationMessage4: string; @Column({ defaultValue: "" }) confirmationMessage5: string; @Column({ defaultValue: "INATIVA" }) status: string; // INATIVA, PROGRAMADA, EM_ANDAMENTO, CANCELADA, FINALIZADA @Column confirmation: boolean; @Column mediaPath: string; @Column mediaName: string; @Column scheduledAt: Date; @Column completedAt: Date; @CreatedAt createdAt: Date; @UpdatedAt updatedAt: Date; @ForeignKey(() => Company) @Column companyId: number; @BelongsTo(() => Company) company: Company; @ForeignKey(() => ContactList) @Column contactListId: number; @BelongsTo(() => ContactList) contactList: ContactList; @ForeignKey(() => Whatsapp) @Column whatsappId: number; @BelongsTo(() => Whatsapp) whatsapp: Whatsapp; @ForeignKey(() => Files) @Column fileListId: number; @BelongsTo(() => Files) fileList: Files; @HasMany(() => CampaignShipping) shipping: CampaignShipping[]; } export default Campaign;