diff --git a/internal/infra/models/pig_batch.go b/internal/infra/models/pig_batch.go index db17bd3..658c31b 100644 --- a/internal/infra/models/pig_batch.go +++ b/internal/infra/models/pig_batch.go @@ -106,51 +106,3 @@ type WeighingRecord struct { func (WeighingRecord) TableName() string { return "weighing_records" } - -// PigBatchSickPigLogChangeType 定义了病猪变化日志的类型 -type PigBatchSickPigLogChangeType string - -const ( - SickPigChangeTypeAdd PigBatchSickPigLogChangeType = "新增" // 新增病猪 - SickPigChangeTypeRemove PigBatchSickPigLogChangeType = "移除" // 移除病猪 (康复, 死亡, 转出等) -) - -// PigBatchSickPigTreatmentLocation 定义了病猪治疗地点 -type PigBatchSickPigTreatmentLocation string - -const ( - TreatmentLocationOnSite PigBatchSickPigTreatmentLocation = "原地治疗" - TreatmentLocationSickBay PigBatchSickPigTreatmentLocation = "病猪栏治疗" -) - -// PigBatchSickPigReasonType 定义了病猪变化的原因类型 -type PigBatchSickPigReasonType string - -const ( - SickPigReasonTypeIllness PigBatchSickPigReasonType = "患病" // 猪只患病 - SickPigReasonTypeRecovery PigBatchSickPigReasonType = "康复" // 猪只康复 - SickPigReasonTypeDeath PigBatchSickPigReasonType = "死亡" // 猪只死亡 - SickPigReasonTypeEliminate PigBatchSickPigReasonType = "淘汰" // 猪只淘汰 - SickPigReasonTypeTransferIn PigBatchSickPigReasonType = "转入" // 病猪转入当前批次 - SickPigReasonTypeTransferOut PigBatchSickPigReasonType = "转出" // 病猪转出当前批次 (例如转到其他批次或出售) - SickPigReasonTypeOther PigBatchSickPigReasonType = "其他" // 其他原因 -) - -// PigBatchSickPigLog 记录了猪批次中病猪数量的变化日志 -type PigBatchSickPigLog struct { - gorm.Model - PigBatchID uint `gorm:"primaryKey;comment:关联的猪批次ID"` - PenID uint `gorm:"not null;index;comment:所在猪圈ID"` - PigIDs string `gorm:"size:500;comment:涉及的猪只ID列表,逗号分隔"` - ChangeType PigBatchSickPigLogChangeType `gorm:"size:20;not null;comment:变化类型 (新增, 移除)"` - ChangeCount int `gorm:"not null;comment:变化数量, 正数表示新增, 负数表示移除"` - Reason PigBatchSickPigReasonType `gorm:"size:20;not null;comment:变化原因 (如: 患病, 康复, 死亡, 转入, 转出, 其他)"` - Remarks string `gorm:"size:255;comment:备注"` - TreatmentLocation PigBatchSickPigTreatmentLocation `gorm:"size:50;comment:治疗地点"` - OperatorID uint `gorm:"comment:操作员ID"` - HappenedAt time.Time `gorm:"primaryKey;comment:事件发生时间"` -} - -func (PigBatchSickPigLog) TableName() string { - return "pig_batch_sick_pig_logs" -} diff --git a/internal/infra/models/pig_sick.go b/internal/infra/models/pig_sick.go new file mode 100644 index 0000000..73eed01 --- /dev/null +++ b/internal/infra/models/pig_sick.go @@ -0,0 +1,46 @@ +package models + +import ( + "time" + + "gorm.io/gorm" +) + +// PigBatchSickPigTreatmentLocation 定义了病猪治疗地点 +type PigBatchSickPigTreatmentLocation string + +const ( + TreatmentLocationOnSite PigBatchSickPigTreatmentLocation = "原地治疗" + TreatmentLocationSickBay PigBatchSickPigTreatmentLocation = "病猪栏治疗" +) + +// PigBatchSickPigReasonType 定义了病猪变化的原因类型 +type PigBatchSickPigReasonType string + +const ( + SickPigReasonTypeIllness PigBatchSickPigReasonType = "患病" // 猪只患病 + SickPigReasonTypeRecovery PigBatchSickPigReasonType = "康复" // 猪只康复 + SickPigReasonTypeDeath PigBatchSickPigReasonType = "死亡" // 猪只死亡 + SickPigReasonTypeEliminate PigBatchSickPigReasonType = "淘汰" // 猪只淘汰 + SickPigReasonTypeTransferIn PigBatchSickPigReasonType = "转入" // 病猪转入当前批次 + SickPigReasonTypeTransferOut PigBatchSickPigReasonType = "转出" // 病猪转出当前批次 (例如转到其他批次或出售) + SickPigReasonTypeOther PigBatchSickPigReasonType = "其他" // 其他原因 +) + +// PigBatchSickPigLog 记录了猪批次中病猪数量的变化日志 +type PigBatchSickPigLog struct { + gorm.Model + PigBatchID uint `gorm:"primaryKey;comment:关联的猪批次ID"` + PenID uint `gorm:"not null;index;comment:所在猪圈ID"` + PigIDs string `gorm:"size:500;comment:涉及的猪只ID列表,逗号分隔"` + ChangeCount int `gorm:"not null;comment:变化数量, 正数表示新增, 负数表示移除"` + Reason PigBatchSickPigReasonType `gorm:"size:20;not null;comment:变化原因 (如: 患病, 康复, 死亡, 转入, 转出, 其他)"` + Remarks string `gorm:"size:255;comment:备注"` + TreatmentLocation PigBatchSickPigTreatmentLocation `gorm:"size:50;comment:治疗地点"` + OperatorID uint `gorm:"comment:操作员ID"` + HappenedAt time.Time `gorm:"primaryKey;comment:事件发生时间"` +} + +func (PigBatchSickPigLog) TableName() string { + return "pig_batch_sick_pig_logs" +}