product.entity.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { BaseEntity } from '@/core/entity/base.entity';
  2. import { Column, Entity, OneToMany } from 'typeorm';
  3. import { FeedingPlanProduct } from '@/pet-feeder/entity/feeding-plan-product.entity';
  4. import { ProductCategory } from '@/pet-feeder/enum/product-category';
  5. @Entity()
  6. export class Product extends BaseEntity {
  7. @Column()
  8. name: string;
  9. @Column({
  10. type: 'enum',
  11. enum: ProductCategory,
  12. default: ProductCategory.DRY_FOOD,
  13. })
  14. category: ProductCategory;
  15. @Column()
  16. photo: string;
  17. @Column({
  18. type: 'json',
  19. })
  20. tags: string[];
  21. @Column()
  22. totalWeight: number;
  23. //蛋白质(百分比,如0.6表示60%)
  24. @Column({
  25. type: 'double',
  26. })
  27. protein: number;
  28. // 脂肪(百分比)
  29. @Column({
  30. type: 'double',
  31. })
  32. fat: number;
  33. // 粗纤维(百分比)
  34. @Column({
  35. type: 'double',
  36. })
  37. fiber: number;
  38. // 粗灰分(百分比)
  39. @Column({
  40. type: 'double',
  41. })
  42. ash: number;
  43. // 水分(百分比)
  44. @Column({
  45. type: 'double',
  46. })
  47. moisture: number;
  48. // ME值(kcal/g),直接配置的代谢能,可选字段
  49. // 如果配置了此值,优先使用;否则通过营养成分计算
  50. @Column({
  51. type: 'double',
  52. nullable: true,
  53. comment: 'ME值(kcal/g),直接配置的代谢能',
  54. })
  55. meValue: number | null;
  56. @OneToMany(
  57. () => FeedingPlanProduct,
  58. (feedingPlanProduct) => feedingPlanProduct.feedingPlan,
  59. { cascade: true },
  60. )
  61. feedingPlanProducts: FeedingPlanProduct[];
  62. }