import { Snowflake, SnowflakeUtil, Util } from "discord.js"; import { AllowNull, AutoIncrement, BelongsTo, Column, Default, ForeignKey, Model, PrimaryKey, Table } from "sequelize-typescript"; import { INTEGER, Optional, STRING } from "sequelize"; import { ApplicantModel, defaultID } from "./applicant-model"; import { config } from "../index"; export enum TicketStatus { PENDING, ACCEPTED, DECLINED, BRUH } export interface TicketAttributes { status: TicketStatus, round: number, channel_id: Snowflake, applicant_id: Snowflake } @Table({ underscored: true }) export class TicketModel extends Model<TicketAttributes, Optional<TicketAttributes, "status" | "round" | "applicant_id">> implements TicketAttributes { @Default(TicketStatus.PENDING) @Column(INTEGER) status!: TicketStatus; @PrimaryKey @AutoIncrement @Column round!: number; @Column channel_id!: string; @ForeignKey(() => ApplicantModel) @Default(defaultID) @PrimaryKey @Column(STRING) applicant_id!: string; @BelongsTo(() => ApplicantModel) applicant!: ApplicantModel; }