85 lines
3.9 KiB
Go
Raw Normal View History

package model
import "time"
type ProductionPlan struct {
ID string `json:"id" db:"id"`
PlanCode string `json:"plan_code" db:"plan_code"`
PurchaserID string `json:"purchaser_id" db:"purchaser_id"`
ProductName string `json:"product_name" db:"product_name"`
FabricCode string `json:"fabric_code" db:"fabric_code"`
Color string `json:"color" db:"color"`
ColorCode string `json:"color_code" db:"color_code"`
TargetQuantity float64 `json:"target_quantity" db:"target_quantity"`
CompletedQuantity float64 `json:"completed_quantity" db:"completed_quantity"`
ProductionPrice *float64 `json:"production_price,omitempty" db:"production_price"`
YarnUsagePerMeter *float64 `json:"yarn_usage_per_meter,omitempty" db:"yarn_usage_per_meter"`
Status string `json:"status" db:"status"`
Remark *string `json:"remark,omitempty" db:"remark"`
StartTime *time.Time `json:"start_time,omitempty" db:"start_time"`
CreatedBy *string `json:"created_by,omitempty" db:"created_by"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
// Aggregated fields
YarnRatios []YarnRatio `json:"yarn_ratios,omitempty"`
ProcessSteps []ProcessStep `json:"process_steps,omitempty"`
Factories []PlanFactory `json:"factories,omitempty"`
InventoryRecords []InventoryRecord `json:"inventory_records,omitempty"`
}
type YarnRatio struct {
ID string `json:"id" db:"id"`
PlanID string `json:"plan_id" db:"plan_id"`
YarnName string `json:"yarn_name" db:"yarn_name"`
YarnType *string `json:"yarn_type,omitempty" db:"yarn_type"`
Ratio float64 `json:"ratio" db:"ratio"`
AmountPerMeter float64 `json:"amount_per_meter" db:"amount_per_meter"`
TotalAmount float64 `json:"total_amount" db:"total_amount"`
CompanyID *string `json:"company_id,omitempty" db:"company_id"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
}
type PlanFactory struct {
ID string `json:"id" db:"id"`
PlanID string `json:"plan_id" db:"plan_id"`
FactoryID string `json:"factory_id" db:"factory_id"`
FactoryType string `json:"factory_type" db:"factory_type"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
// Aggregated
FactoryName string `json:"factory_name,omitempty"`
}
type ProcessStep struct {
ID string `json:"id" db:"id"`
PlanID string `json:"plan_id" db:"plan_id"`
StepType string `json:"step_type" db:"step_type"`
Status string `json:"status" db:"status"`
Notes *string `json:"notes,omitempty" db:"notes"`
OperatorID *string `json:"operator_id,omitempty" db:"operator_id"`
CompanyID *string `json:"company_id,omitempty" db:"company_id"`
Timestamp *time.Time `json:"timestamp,omitempty" db:"timestamp"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
// Aggregated
OperatorName string `json:"operator_name,omitempty"`
}
type InventoryRecord struct {
ID string `json:"id" db:"id"`
PlanID string `json:"plan_id" db:"plan_id"`
WarehouseID string `json:"warehouse_id" db:"warehouse_id"`
Quantity float64 `json:"quantity" db:"quantity"`
Rolls *int `json:"rolls,omitempty" db:"rolls"`
PricePerMeter *float64 `json:"price_per_meter,omitempty" db:"price_per_meter"`
PriceNote *string `json:"price_note,omitempty" db:"price_note"`
WarehouseLocation *string `json:"warehouse_location,omitempty" db:"warehouse_location"`
OperatorID *string `json:"operator_id,omitempty" db:"operator_id"`
CompanyID *string `json:"company_id,omitempty" db:"company_id"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
// Aggregated
OperatorName string `json:"operator_name,omitempty"`
}