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