import { Table, Column, CreatedAt, UpdatedAt, Model, PrimaryKey, AutoIncrement, AllowNull, Unique, Default, HasMany, ForeignKey, BelongsTo } from "sequelize-typescript"; import ContactCustomField from "./ContactCustomField"; import Ticket from "./Ticket"; import Company from "./Company"; import Schedule from "./Schedule"; import Whatsapp from "./Whatsapp"; @Table class Contact extends Model { @PrimaryKey @AutoIncrement @Column id: number; @Column name: string; @AllowNull(false) @Unique @Column number: string; @AllowNull(false) @Default("") @Column email: string; @Default("") @Column profilePicUrl: string; @Default(false) @Column isGroup: boolean; @CreatedAt createdAt: Date; @UpdatedAt updatedAt: Date; @HasMany(() => Ticket) tickets: Ticket[]; @HasMany(() => ContactCustomField) extraInfo: ContactCustomField[]; @ForeignKey(() => Company) @Column companyId: number; @BelongsTo(() => Company) company: Company; @HasMany(() => Schedule, { onUpdate: "CASCADE", onDelete: "CASCADE", hooks: true }) schedules: Schedule[]; @ForeignKey(() => Whatsapp) @Column whatsappId: number; @BelongsTo(() => Whatsapp) whatsapp: Whatsapp; } export default Contact;