pet.entity.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { TraceableEntity } from '@/core/entity/traceable.entity';
  2. import { PetType } from '@/pet-feeder/enum/pet-type';
  3. import { Gender } from '@/core/enum/Gender';
  4. import { PetBodyType } from '@/pet-feeder/enum/pet-body-type';
  5. import { Column, Entity, JoinColumn, OneToOne } from 'typeorm';
  6. import { FeedingPlan } from '@/pet-feeder/entity/feeding-plan.entity';
  7. @Entity()
  8. export class Pet extends TraceableEntity {
  9. @Column()
  10. name: string;
  11. @Column({
  12. type: 'enum',
  13. enum: PetType,
  14. default: PetType.CAT,
  15. })
  16. type: PetType;
  17. @Column({
  18. type: 'enum',
  19. enum: PetType,
  20. default: PetType.CAT,
  21. })
  22. gender: Gender;
  23. @Column()
  24. birthday: Date;
  25. @Column()
  26. weight: number;
  27. @Column()
  28. photo: string;
  29. @Column()
  30. isActive: boolean;
  31. @Column()
  32. isPregnant: boolean;
  33. // 是否绝育
  34. @Column()
  35. isSterilization: boolean;
  36. // 是否在哺乳
  37. @Column()
  38. isLactation: boolean;
  39. // 体型
  40. @Column({
  41. type: 'enum',
  42. enum: PetBodyType,
  43. default: PetBodyType.IDEAL,
  44. })
  45. bodyType: PetBodyType;
  46. // 一对一喂养计划
  47. @OneToOne(() => FeedingPlan, (feedingPlan) => feedingPlan.pet, {
  48. cascade: true,
  49. })
  50. @JoinColumn() // 用于指定外键关系
  51. feedingPlan: FeedingPlan;
  52. }