Violation.ts 761 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { Entity, Column, PrimaryGeneratedColumn, ChildEntity, TableInheritance } from "typeorm";
  2. @Entity()
  3. @TableInheritance({column: { type: "varchar", name: "type" }})
  4. export abstract class Violation {
  5. @PrimaryGeneratedColumn()
  6. id: number;
  7. @Column()
  8. guildId: string;
  9. @Column()
  10. userId: string;
  11. @Column({ type: "text", nullable: true })
  12. reason?: string;
  13. @Column()
  14. valid: boolean;
  15. }
  16. @ChildEntity()
  17. export class Mute extends Violation {
  18. @Column()
  19. endsAt: Date;
  20. @Column("text", { array: true })
  21. previousRoles?: string[];
  22. }
  23. @ChildEntity()
  24. export class Ban extends Violation {
  25. @Column()
  26. endsAt: Date;
  27. }
  28. @ChildEntity()
  29. export class Kick extends Violation {}