advertisement.entity.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, ManyToOne, JoinColumn } from 'typeorm';
  2. import { File } from '@/server/modules/files/file.entity';
  3. @Entity('advertisements')
  4. export class Advertisement {
  5. @PrimaryGeneratedColumn({ unsigned: true })
  6. id!: number;
  7. @Column({ name: 'position_id', type: 'int', unsigned: true, comment: '广告位ID' })
  8. positionId!: number;
  9. @Column({ name: 'link_url', type: 'text', comment: '链接地址' })
  10. linkUrl!: string;
  11. @Column({ name: 'image_file_id', type: 'int', unsigned: true, nullable: true, comment: '图片文件ID' })
  12. imageFileId!: number | null;
  13. @ManyToOne(() => File, { nullable: true })
  14. @JoinColumn({ name: 'image_file_id', referencedColumnName: 'id' })
  15. imageFile!: File | null;
  16. @Column({ name: 'title', type: 'varchar', length: 255, comment: '广告标题' })
  17. title!: string;
  18. @Column({ name: 'sort_order', type: 'int', default: 0, comment: '排序值' })
  19. sortOrder!: number;
  20. @Column({ name: 'is_enabled', type: 'tinyint', default: 1, comment: '是否启用:0-禁用,1-启用' })
  21. isEnabled!: number;
  22. @Column({ name: 'is_deleted', type: 'tinyint', default: 0, comment: '是否删除:0-未删除,1-已删除' })
  23. isDeleted!: number;
  24. @Column({ name: 'start_time', type: 'timestamp', nullable: true, comment: '开始时间' })
  25. startTime!: Date | null;
  26. @Column({ name: 'end_time', type: 'timestamp', nullable: true, comment: '结束时间' })
  27. endTime!: Date | null;
  28. @Column({ name: 'description', type: 'text', nullable: true, comment: '广告描述' })
  29. description!: string | null;
  30. @Column({ name: 'created_by', type: 'int', unsigned: true, nullable: true, comment: '创建用户ID' })
  31. createdBy!: number | null;
  32. @Column({ name: 'updated_by', type: 'int', unsigned: true, nullable: true, comment: '更新用户ID' })
  33. updatedBy!: number | null;
  34. @CreateDateColumn({ name: 'created_at', type: 'timestamp' })
  35. createdAt!: Date;
  36. @UpdateDateColumn({ name: 'updated_at', type: 'timestamp' })
  37. updatedAt!: Date;
  38. }