planner
This commit is contained in:
42
pkg/types/stop.go
Normal file
42
pkg/types/stop.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type Stop struct {
|
||||
trips map[string]*Trip
|
||||
StopID string `json:"stop_id" csv:"stop_id"`
|
||||
StopName string `json:"stop_name" csv:"stop_name"`
|
||||
StopLat float64 `json:"stop_lat" csv:"stop_lat"`
|
||||
StopLon float64 `json:"stop_lon" csv:"stop_lon"`
|
||||
LocationType int `json:"location_type" csv:"location_type"`
|
||||
Transfers []*Transfer `json:"transfers" csv:"transfers"`
|
||||
}
|
||||
|
||||
func (s *Stop) AddTransfer(transfer *Transfer) {
|
||||
if s.Transfers == nil {
|
||||
s.Transfers = make([]*Transfer, 0)
|
||||
}
|
||||
s.Transfers = append(s.Transfers, transfer)
|
||||
}
|
||||
|
||||
func (s *Stop) AddTrip(trip *Trip) {
|
||||
if s.trips == nil {
|
||||
s.trips = make(map[string]*Trip)
|
||||
}
|
||||
s.trips[trip.TripID] = trip
|
||||
}
|
||||
|
||||
func (s *Stop) GetTripsAfter(time time.Time) []*Trip {
|
||||
var trips []*Trip
|
||||
for _, trip := range s.trips {
|
||||
for _, stop := range trip.Stops {
|
||||
if stop.StopID == s.StopID && stop.DepartsAfter(time) {
|
||||
trips = append(trips, trip)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return trips
|
||||
}
|
||||
Reference in New Issue
Block a user