diff --git a/internal/domain/cargo/cargo.go b/internal/domain/cargo/cargo.go new file mode 100644 index 0000000..84b98f6 --- /dev/null +++ b/internal/domain/cargo/cargo.go @@ -0,0 +1,8 @@ +package domain + +// Cargo представляет перевозимый груз +type Cargo struct { + ID int64 `json:"id"` + Description string `json:"description"` + Weight float64 `json:"weight"` +} diff --git a/internal/domain/client/client.go b/internal/domain/client/client.go new file mode 100644 index 0000000..51585e6 --- /dev/null +++ b/internal/domain/client/client.go @@ -0,0 +1,8 @@ +package domain + +// Client представляет клиента, оформляющего перевозку +type Client struct { + ID int64 `json:"id"` + Name string `json:"name"` + IsRegular bool `json:"is_regular"` +} diff --git a/internal/domain/route/route.go b/internal/domain/route/route.go new file mode 100644 index 0000000..49b1f2c --- /dev/null +++ b/internal/domain/route/route.go @@ -0,0 +1,8 @@ +package domain + +// Route представляет маршрут перевозки +type Route struct { + ID int64 `json:"id"` + Name string `json:"name"` + Price float64 `json:"price"` +} diff --git a/internal/domain/routes/routes.go b/internal/domain/routes/routes.go deleted file mode 100644 index 89b9529..0000000 --- a/internal/domain/routes/routes.go +++ /dev/null @@ -1,36 +0,0 @@ -package domain - -import ( - "time" -) - -// Aggregate Root -type Route struct { - ID int - Name string - StartPoint string - EndPoint string - Price float64 - Transports []TransportAssignment - CreatedAt time.Time - UpdatedAt time.Time -} - -type TransportAssignment struct { - ID int - DepartureTime time.Time - ArrivalTime time.Time -} - -type RouteTransport struct { - ID int - TransportID int -} - -// Repository Interface -type RouteRepository interface { - FindByID(id int) (*Route, error) - FindAll() ([]*Route, error) - Save(route *Route) error - AddTransport(routeID int, assignment TransportAssignment) error -} diff --git a/internal/domain/shipment/shipment.go b/internal/domain/shipment/shipment.go new file mode 100644 index 0000000..d1fa713 --- /dev/null +++ b/internal/domain/shipment/shipment.go @@ -0,0 +1,11 @@ +package domain + +// Shipment представляет перевозку груза по маршруту +type Shipment struct { + ID int64 `json:"id"` + Route string `json:"route"` + Transport string `json:"transport"` + Cargo string `json:"cargo"` + Client string `json:"client"` + Cost float64 `json:"cost"` +} diff --git a/internal/domain/transport/transport.go b/internal/domain/transport/transport.go new file mode 100644 index 0000000..ce74aef --- /dev/null +++ b/internal/domain/transport/transport.go @@ -0,0 +1,15 @@ +package main + +// Transport представляет конкретное транспортное средство +type Transport struct { + ID int64 `json:"id"` + Model string `json:"model"` + Capacity int `json:"capacity"` + Type string `json:"type"` +} + +// TransportType представляет тип транспорта (автомобильный, морской и т. д.) +type TransportType struct { + ID int64 `json:"id"` + Name string `json:"name"` +}