domain
This commit is contained in:
parent
2a4d567549
commit
33ecdd8ae3
8
internal/domain/cargo/cargo.go
Normal file
8
internal/domain/cargo/cargo.go
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package domain
|
||||||
|
|
||||||
|
// Cargo представляет перевозимый груз
|
||||||
|
type Cargo struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
Description string `json:"description"`
|
||||||
|
Weight float64 `json:"weight"`
|
||||||
|
}
|
8
internal/domain/client/client.go
Normal file
8
internal/domain/client/client.go
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package domain
|
||||||
|
|
||||||
|
// Client представляет клиента, оформляющего перевозку
|
||||||
|
type Client struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
IsRegular bool `json:"is_regular"`
|
||||||
|
}
|
8
internal/domain/route/route.go
Normal file
8
internal/domain/route/route.go
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
package domain
|
||||||
|
|
||||||
|
// Route представляет маршрут перевозки
|
||||||
|
type Route struct {
|
||||||
|
ID int64 `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Price float64 `json:"price"`
|
||||||
|
}
|
@ -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
|
|
||||||
}
|
|
11
internal/domain/shipment/shipment.go
Normal file
11
internal/domain/shipment/shipment.go
Normal file
@ -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"`
|
||||||
|
}
|
15
internal/domain/transport/transport.go
Normal file
15
internal/domain/transport/transport.go
Normal file
@ -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"`
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user