Go workspace (go.work) with 5 microservices + shared library: - gateway (8080), auth-service (8081), purchaser-service (8082) - textile-service (8083), washing-service (8084) - shared: proto definitions, common packages Infrastructure: docker-compose for local dev, K8s manifests for K3s cluster deployment (mysql/redis/etcd + traefik ingress). Frontend (iloom-flatten) added as git submodule. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
85 lines
3.9 KiB
Go
85 lines
3.9 KiB
Go
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"`
|
|
}
|