Files
pig-farm-controller/internal/app/dto/pig_batch_dto.go

163 lines
9.7 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dto
import (
"time"
"git.huangwc.com/pig/pig-farm-controller/internal/infra/models"
)
// PigBatchCreateDTO 定义了创建猪批次的请求结构
type PigBatchCreateDTO struct {
BatchNumber string `json:"batch_number" binding:"required"` // 批次编号,必填
OriginType models.PigBatchOriginType `json:"origin_type" binding:"required"` // 批次来源,必填
StartDate time.Time `json:"start_date" binding:"required"` // 批次开始日期,必填
InitialCount int `json:"initial_count" binding:"required,min=1"` // 初始数量必填最小为1
Status models.PigBatchStatus `json:"status" binding:"required"` // 批次状态,必填
}
// PigBatchUpdateDTO 定义了更新猪批次的请求结构
type PigBatchUpdateDTO struct {
BatchNumber *string `json:"batch_number"` // 批次编号,可选
OriginType *models.PigBatchOriginType `json:"origin_type"` // 批次来源,可选
StartDate *time.Time `json:"start_date"` // 批次开始日期,可选
EndDate *time.Time `json:"end_date"` // 批次结束日期,可选
InitialCount *int `json:"initial_count"` // 初始数量,可选
Status *models.PigBatchStatus `json:"status"` // 批次状态,可选
}
// PigBatchQueryDTO 定义了查询猪批次的请求结构
type PigBatchQueryDTO struct {
IsActive *bool `json:"is_active" form:"is_active"` // 是否活跃可选用于URL查询参数
}
// PigBatchResponseDTO 定义了猪批次信息的响应结构
type PigBatchResponseDTO struct {
ID uint `json:"id"` // 批次ID
BatchNumber string `json:"batch_number"` // 批次编号
OriginType models.PigBatchOriginType `json:"origin_type"` // 批次来源
StartDate time.Time `json:"start_date"` // 批次开始日期
EndDate time.Time `json:"end_date"` // 批次结束日期
InitialCount int `json:"initial_count"` // 初始数量
Status models.PigBatchStatus `json:"status"` // 批次状态
IsActive bool `json:"is_active"` // 是否活跃
CurrentTotalQuantity int `json:"currentTotalQuantity"` // 当前总数
CurrentTotalPigsInPens int `json:"currentTotalPigsInPens"` // 当前存栏总数
CreateTime time.Time `json:"create_time"` // 创建时间
UpdateTime time.Time `json:"update_time"` // 更新时间
}
// AssignEmptyPensToBatchRequest 用于为猪批次分配空栏的请求体
type AssignEmptyPensToBatchRequest struct {
PenIDs []uint `json:"penIDs" binding:"required,min=1" example:"[1,2,3]"` // 待分配的猪栏ID列表
}
// ReclassifyPenToNewBatchRequest 用于将猪栏划拨到新批次的请求体
type ReclassifyPenToNewBatchRequest struct {
ToBatchID uint `json:"toBatchID" binding:"required"` // 目标猪批次ID
PenID uint `json:"penID" binding:"required"` // 待划拨的猪栏ID
Remarks string `json:"remarks"` // 备注
}
// RemoveEmptyPenFromBatchRequest 用于从猪批次移除空栏的请求体
type RemoveEmptyPenFromBatchRequest struct {
PenID uint `json:"penID" binding:"required"` // 待移除的猪栏ID
}
// MovePigsIntoPenRequest 用于将猪只从“虚拟库存”移入指定猪栏的请求体
type MovePigsIntoPenRequest struct {
ToPenID uint `json:"toPenID" binding:"required"` // 目标猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 移入猪只数量
Remarks string `json:"remarks"` // 备注
}
// SellPigsRequest 用于处理卖猪的请求体
type SellPigsRequest struct {
PenID uint `json:"penID" binding:"required"` // 猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 卖出猪只数量
UnitPrice float64 `json:"unitPrice" binding:"required,min=0"` // 单价
TotalPrice float64 `json:"totalPrice" binding:"required,min=0"` // 总价
TraderName string `json:"traderName" binding:"required"` // 交易方名称
TradeDate time.Time `json:"tradeDate" binding:"required"` // 交易日期
Remarks string `json:"remarks"` // 备注
}
// BuyPigsRequest 用于处理买猪的请求体
type BuyPigsRequest struct {
PenID uint `json:"penID" binding:"required"` // 猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 买入猪只数量
UnitPrice float64 `json:"unitPrice" binding:"required,min=0"` // 单价
TotalPrice float64 `json:"totalPrice" binding:"required,min=0"` // 总价
TraderName string `json:"traderName" binding:"required"` // 交易方名称
TradeDate time.Time `json:"tradeDate" binding:"required"` // 交易日期
Remarks string `json:"remarks"` // 备注
}
// TransferPigsAcrossBatchesRequest 用于跨猪群调栏的请求体
type TransferPigsAcrossBatchesRequest struct {
DestBatchID uint `json:"destBatchID" binding:"required"` // 目标猪批次ID
FromPenID uint `json:"fromPenID" binding:"required"` // 源猪栏ID
ToPenID uint `json:"toPenID" binding:"required"` // 目标猪栏ID
Quantity uint `json:"quantity" binding:"required,min=1"` // 调栏猪只数量
Remarks string `json:"remarks"` // 备注
}
// TransferPigsWithinBatchRequest 用于群内调栏的请求体
type TransferPigsWithinBatchRequest struct {
FromPenID uint `json:"fromPenID" binding:"required"` // 源猪栏ID
ToPenID uint `json:"toPenID" binding:"required"` // 目标猪栏ID
Quantity uint `json:"quantity" binding:"required,min=1"` // 调栏猪只数量
Remarks string `json:"remarks"` // 备注
}
// RecordSickPigsRequest 用于记录新增病猪事件的请求体
type RecordSickPigsRequest struct {
PenID uint `json:"penID" binding:"required"` // 猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 病猪数量
TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatmentLocation" binding:"required"` // 治疗地点
HappenedAt time.Time `json:"happenedAt" binding:"required"` // 发生时间
Remarks string `json:"remarks"` // 备注
}
// RecordSickPigRecoveryRequest 用于记录病猪康复事件的请求体
type RecordSickPigRecoveryRequest struct {
PenID uint `json:"penID" binding:"required"` // 猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 康复猪数量
TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatmentLocation" binding:"required"` // 治疗地点
HappenedAt time.Time `json:"happenedAt" binding:"required"` // 发生时间
Remarks string `json:"remarks"` // 备注
}
// RecordSickPigDeathRequest 用于记录病猪死亡事件的请求体
type RecordSickPigDeathRequest struct {
PenID uint `json:"penID" binding:"required"` // 猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 死亡猪数量
TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatmentLocation" binding:"required"` // 治疗地点
HappenedAt time.Time `json:"happenedAt" binding:"required"` // 发生时间
Remarks string `json:"remarks"` // 备注
}
// RecordSickPigCullRequest 用于记录病猪淘汰事件的请求体
type RecordSickPigCullRequest struct {
PenID uint `json:"penID" binding:"required"` // 猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 淘汰猪数量
TreatmentLocation models.PigBatchSickPigTreatmentLocation `json:"treatmentLocation" binding:"required"` // 治疗地点
HappenedAt time.Time `json:"happenedAt" binding:"required"` // 发生时间
Remarks string `json:"remarks"` // 备注
}
// RecordDeathRequest 用于记录正常猪只死亡事件的请求体
type RecordDeathRequest struct {
PenID uint `json:"penID" binding:"required"` // 猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 死亡猪数量
HappenedAt time.Time `json:"happenedAt" binding:"required"` // 发生时间
Remarks string `json:"remarks"` // 备注
}
// RecordCullRequest 用于记录正常猪只淘汰事件的请求体
type RecordCullRequest struct {
PenID uint `json:"penID" binding:"required"` // 猪栏ID
Quantity int `json:"quantity" binding:"required,min=1"` // 淘汰猪数量
HappenedAt time.Time `json:"happenedAt" binding:"required"` // 发生时间
Remarks string `json:"remarks"` // 备注
}