model

package
v0.0.0-...-ae855b9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2026 License: AGPL-3.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Dummy                 = "Dummy"
	Unexpected            = "Unexpected"
	PassingTimeChronology = "PassingTimeChronology"
)
View Source
const (
	OneToOne = iota
	OneToMany

	ByLine
	ByStopArea
	ByVehicleJourney
	ByStopVisit
	ByParent
	ByReferent
	ByNextStopVisit
)

This struct is meant to be embedded in managers to handle multiple indexes without fearing to forget one in the save or delete methods

Warning: This is an unsafe package that:

  • doesn't check if a particular index exists
  • doesn't protect its maps with a mutex

It's meant for internal use only and these matters needs to be checked elsewere

View Source
const (
	STOP_AREA       = "stop_area"
	STOP_AREA_GROUP = "stop_area_group"
	LINE            = "line"
	LINE_GROUP      = "line_group"
	VEHICLE_JOURNEY = "vehicle_journey"
	STOP_VISIT      = "stop_visit"
	OPERATOR        = "operator"
	FACILITY        = "facility"
	TOTAL_INSERTS   = "Total"
	ERRORS          = "Errors"
)
CSV Structure

operator,Id,ModelDate,Name,Codes stop_area,Id,ParentId,ReferentId,ModelDate,Name,Codes,LineIds,RawAttributes,References,CollectedAlways,CollectChildren,CollectSituations line,Id,ModelDate,Name,Codes,RawAttributes,References,CollectSituations vehicle_journey,Id,ModelDate,Name,Codes,LineId,OriginName,DestinationName,RawAttributes,References,DirectionType, Number stop_visit,Id,ModelDate,Codes,StopAreaId,VehicleJourneyId,PassageOrder,Schedules,RawAttributes,References stop_area_group,Id,ModelDate,Name,ShortName,StopAreaIds line_group,Id,ModelDate,Name,ShortName,LineIds facility,Id,ModelDate,Codes

Comments are '#' Separators are ',' leading spaces are trimed

Escape quotes with another quote ex: "[""1234"",""5678""]"

View Source
const (
	SetAttribute                  = "SetAttribute"
	DefineAimedScheduledTimes     = "DefineAimedScheduledTimes"
	DefineSituationAffects        = "DefineSituationAffects"
	SetVehicleJourneyCancellation = "SetVehicleJourneyCancellation"
	CreateCode                    = "CreateCode"
)
View Source
const (
	Undefined               = ""
	Unknown                 = "unknown"
	Empty                   = "empty"
	ManySeatsAvailable      = "manySeatsAvailable"
	FewSeatsAvailable       = "fewSeatsAvailable"
	StandingRoomOnly        = "standingRoomOnly"
	CrushedStandingRoomOnly = "crushedStandingRoomOnly"
	Full                    = "full"
	NotAcceptingPassengers  = "notAcceptingPassengers"
	StandingAvailable       = "standingAvailable"
	SeatsAvailable          = "seatsAvailable"
)
View Source
const (
	SituationReportTypeGeneral  ReportType    = "general"
	SituationReportTypeIncident ReportType    = "incident"
	SituationTypeLine           SituationType = "Line"
	SituationTypeStopArea       SituationType = "StopArea"
	SituationTypeAllLines       SituationType = "AllLines"
	GMbroadcastEvent                          = "GMbroadcastEvent"
	SXbroadcastEvent                          = "SXbroadcastEvent"
)
View Source
const (
	VEHICLE_DIRECTION_INBOUND  = "inbound"
	VEHICLE_DIRECTION_OUTBOUND = "outbound"
)
View Source
const (
	Default = "_default"
)
View Source
const (
	IfAttribute = "IfAttribute"
)

Variables

View Source
var Contexes = []string{IfAttribute}
View Source
var Database *gorp.DbMap
View Source
var VjLineExtractor = func(instance ModelInstance) string { return string((instance.(*VehicleJourney)).LineId) }

Functions

func AffectFromProto

func AffectFromProto(value any, remoteCodeSpace string, m Model) (Affect, *AffectRefs, error)

func ApplyMigrations

func ApplyMigrations(operation, path string, database *sql.DB) error

func CleanTestDb

func CleanTestDb(t *testing.T)

func CloseDB

func CloseDB(database *gorp.DbMap)

func HookAndModelType

func HookAndModelType(s DatabaseStructureWithContext) (h hooks.Type, t model_types.Model, errs []error)

func InitDB

func InitDB(config config.DatabaseConfig) *gorp.DbMap

func InitTestDb

func InitTestDb(t *testing.T)

func IsContext

func IsContext(c string) bool

func IsController

func IsController(c string) bool

func IsUpdater

func IsUpdater(u string) bool

func LoadFromCSVFile

func LoadFromCSVFile(filePath string, referentialSlug string, force bool) error

func NewCodeIndex

func NewCodeIndex() *codeIndex

func NewControllerFromDatabase

func NewControllerFromDatabase(sc *SelectControl) (controller, error)

func NewCreateCodeUpdater

func NewCreateCodeUpdater(m Model, sm *SelectMacro) (updater, error)

func NewDefineSituationAffectsUpdater

func NewDefineSituationAffectsUpdater(sm *SelectMacro) (updater, error)

func NewDummyController

func NewDummyController(sc *SelectControl) (controller, error)

func NewIndex

func NewIndex(extractor IndexableExtractor) *indexOneToMany

func NewPassingTimeChronologyController

func NewPassingTimeChronologyController(sc *SelectControl) (controller, error)

PassingTimeChronology controller is created on StopVisits, but called on VehicleJourneys

func NewSimpleIndex

func NewSimpleIndex(extractor IndexableExtractor) *indexOneToOne

func NewStopVisitDefineAimedScheduledTimesUpdater

func NewStopVisitDefineAimedScheduledTimesUpdater(sm *SelectMacro) (updater, error)

func NewStopVisitSetVehicleJourneyCancellationUpdater

func NewStopVisitSetVehicleJourneyCancellationUpdater() (updater, error)

NewStopVisitSetVehicleJourneyCancellationUpdater builds an AfterAllStopVisitSave complex macro: it is configured on StopVisits but, once all the StopVisits of a batch have been saved, runs a single time on each affected VehicleJourney. The VehicleJourney is cancelled when it has a complete stop sequence and all of its StopVisits are cancelled. Running once per VehicleJourney (instead of once per StopVisit) avoids cancelling the same VehicleJourney multiple times (ARA-1852).

func NewUnexpectedController

func NewUnexpectedController(sc *SelectControl) (controller, error)

func NewUpdateManager

func NewUpdateManager(model Model) func([]UpdateEvent)

func NewUpdaterFromDatabase

func NewUpdaterFromDatabase(m Model, sm *SelectMacro) (updater, error)

func NewVehicleJourneySetAttributeUpdater

func NewVehicleJourneySetAttributeUpdater(sm *SelectMacro) (updater, error)

func NormalizedOccupancyName

func NormalizedOccupancyName(occupancy string) string

Types

type APISituation

type APISituation struct {
	Id     SituationId `json:",omitempty"`
	Origin string      `json:",omitempty"`
	CodeConsumer

	CodeSpace             string `json:",omitempty"`
	SituationNumber       string `json:",omitempty"`
	ExistingSituationCode bool   `json:"-"`
	RecordedAt            time.Time
	Version               int `json:",omitempty"`

	VersionedAt        time.Time
	ValidityPeriods    []*TimeRange `json:",omitempty"`
	PublicationWindows []*TimeRange `json:",omitempty"`

	Progress       SituationProgress   `json:",omitempty"`
	Severity       SituationSeverity   `json:",omitempty"`
	Reality        SituationReality    `json:",omitempty"`
	Keywords       []string            `json:",omitempty"`
	ReportType     ReportType          `json:",omitempty"`
	AlertCause     SituationAlertCause `json:",omitempty"`
	ProducerRef    string              `json:",omitempty"`
	Format         string              `json:",omitempty"`
	InternalTags   []string            `json:",omitempty"`
	ParticipantRef string              `json:",omitempty"`
	Summary        *TranslatedString   `json:",omitempty"`
	Description    *TranslatedString   `json:",omitempty"`

	Affects                 Affects                   `json:",omitempty"`
	Consequences            []*Consequence            `json:",omitempty"`
	PublishToWebActions     []*PublishToWebAction     `json:",omitempty"`
	PublishToMobileActions  []*PublishToMobileAction  `json:",omitempty"`
	PublishToDisplayActions []*PublishToDisplayAction `json:",omitempty"`
	InfoLinks               []*InfoLink               `json:",omitempty"`

	Errors e.Errors `json:"Errors,omitempty"`

	IgnoreValidation bool `json:",omitempty"`
}

func (*APISituation) MarshalJSON

func (apiSituation *APISituation) MarshalJSON() ([]byte, error)

func (*APISituation) UnmarshalJSON

func (situation *APISituation) UnmarshalJSON(data []byte) error

func (*APISituation) Validate

func (apiSituation *APISituation) Validate() bool

type ActionCommon

type ActionCommon struct {
	Name               string                `json:",omitempty"`
	ActionType         string                `json:",omitempty"`
	Value              string                `json:",omitempty"`
	Prompt             *TranslatedString     `json:",omitempty"`
	ScopeType          SituationScopeType    `json:",omitempty"`
	Affects            Affects               `json:",omitempty"`
	ActionStatus       SituationActionStatus `json:",omitempty"`
	Description        *TranslatedString     `json:",omitempty"`
	PublicationWindows []*TimeRange          `json:",omitempty"`
}

type ActionData

type ActionData struct {
	Name       string            `json:",omitempty"`
	ActionType string            `json:",omitempty"`
	Value      string            `json:",omitempty"`
	Prompt     *TranslatedString `json:",omitempty"`
}

type Affect

type Affect interface {
	GetType() SituationType
	GetId() string
}

SubTypes of Affect

type AffectRefs

type AffectRefs struct {
	MonitoringRefs map[string]struct{}
	LineRefs       map[string]struct{}
}

func AffectToProto

func AffectToProto(a Affect, remoteCodeSpace string, m Model) ([]*gtfs.EntitySelector, *AffectRefs, error)

type AffectedAllLines

type AffectedAllLines struct{}

func NewAffectedAllLines

func NewAffectedAllLines() *AffectedAllLines

func (AffectedAllLines) GetId

func (a AffectedAllLines) GetId() string

func (AffectedAllLines) GetType

func (a AffectedAllLines) GetType() SituationType

func (AffectedAllLines) MarshalJSON

func (affect AffectedAllLines) MarshalJSON() ([]byte, error)

type AffectedDestination

type AffectedDestination struct {
	StopAreaId StopAreaId
}

type AffectedLine

type AffectedLine struct {
	LineId               LineId                 `json:",omitempty"`
	AffectedDestinations []*AffectedDestination `json:",omitempty"`
	AffectedSections     []*AffectedSection     `json:",omitempty"`
	AffectedRoutes       []*AffectedRoute       `json:",omitempty"`
}

func NewAffectedLine

func NewAffectedLine() *AffectedLine

func (AffectedLine) GetId

func (a AffectedLine) GetId() string

func (AffectedLine) GetType

func (a AffectedLine) GetType() SituationType

func (AffectedLine) MarshalJSON

func (affect AffectedLine) MarshalJSON() ([]byte, error)

type AffectedRoute

type AffectedRoute struct {
	RouteRef    string       `json:",omitempty"`
	StopAreaIds []StopAreaId `json:",omitempty"`
}

type AffectedSection

type AffectedSection struct {
	FirstStop StopAreaId
	LastStop  StopAreaId
}

type AffectedStopArea

type AffectedStopArea struct {
	StopAreaId StopAreaId `json:",omitempty"`
	LineIds    []LineId   `json:",omitempty"`
}

func NewAffectedStopArea

func NewAffectedStopArea() *AffectedStopArea

func (AffectedStopArea) GetId

func (a AffectedStopArea) GetId() string

func (AffectedStopArea) GetType

func (a AffectedStopArea) GetType() SituationType

func (AffectedStopArea) MarshalJSON

func (affect AffectedStopArea) MarshalJSON() ([]byte, error)

type Affects

type Affects []Affect

func (*Affects) UnmarshalJSON

func (affects *Affects) UnmarshalJSON(data []byte) error

type Blocking

type Blocking struct {
	JourneyPlanner bool
	RealTime       bool
}

type Broadcaster

type Broadcaster[O any] interface {
	SetBroadcaster(func(O), ...string)
}

type ByTime

type ByTime []*StopVisit

func (ByTime) Len

func (a ByTime) Len() int

func (ByTime) Less

func (a ByTime) Less(i, j int) bool

func (ByTime) Swap

func (a ByTime) Swap(i, j int)

type Code

type Code struct {
	// contains filtered or unexported fields
}

func NewCode

func NewCode(codeSpace, value string) Code

func (Code) CodeSpace

func (code Code) CodeSpace() string

func (Code) HashValue

func (code Code) HashValue() string

func (Code) IsEmpty

func (code Code) IsEmpty() bool

func (*Code) MarshalJSON

func (code *Code) MarshalJSON() ([]byte, error)

func (*Code) SetValue

func (code *Code) SetValue(toset string)

func (Code) String

func (code Code) String() string

func (*Code) UnmarshalJSON

func (code *Code) UnmarshalJSON(data []byte) error

func (Code) Value

func (code Code) Value() string

type CodeConsumer

type CodeConsumer struct {
	// contains filtered or unexported fields
}

func (*CodeConsumer) Code

func (consumer *CodeConsumer) Code(codeSpace string) (Code, bool)

func (*CodeConsumer) CodeSlice

func (consumer *CodeConsumer) CodeSlice() (objs []string)

func (*CodeConsumer) CodeWithFallback

func (consumer *CodeConsumer) CodeWithFallback(codeSpaces []string) (Code, bool)

func (*CodeConsumer) Codes

func (consumer *CodeConsumer) Codes() Codes

func (*CodeConsumer) CodesResponse

func (consumer *CodeConsumer) CodesResponse() map[string]string

func (*CodeConsumer) Copy

func (consumer *CodeConsumer) Copy() (c CodeConsumer)

func (*CodeConsumer) InitCodes

func (consumer *CodeConsumer) InitCodes()

func (*CodeConsumer) SetCode

func (consumer *CodeConsumer) SetCode(code Code)

func (*CodeConsumer) SetCodesFromMap

func (consumer *CodeConsumer) SetCodesFromMap(codeMap map[string]string)

type CodeConsumerInterface

type CodeConsumerInterface interface {
	InitCodes()
	SetCodesFromMap(codeMap map[string]string)
	Code(string) (Code, bool)
	CodeWithFallback([]string) (Code, bool)
	Codes() Codes
	CodesResponse() map[string]string
	SetCode(Code)
	CodeSlice() []string
}

type CodeHandler

type CodeHandler[O any] interface {
	CodeValidator
	FindByCode(Code) (O, bool)
}

type CodeValidator

type CodeValidator interface {
	CodeExists(Code) bool
}

type Codes

type Codes map[string]Code

func NewCodesFromMap

func NewCodesFromMap(codeMap map[string]string) (codes Codes)

func (Codes) Empty

func (identifiers Codes) Empty() bool

func (Codes) MarshalJSON

func (identifiers Codes) MarshalJSON() ([]byte, error)

func (Codes) ToSlice

func (identifiers Codes) ToSlice() (objs []string)

func (Codes) UnmarshalJSON

func (identifiers Codes) UnmarshalJSON(text []byte) error

type Collectable

type Collectable struct {
	// contains filtered or unexported fields
}

func (*Collectable) CollectedAt

func (c *Collectable) CollectedAt() time.Time

func (*Collectable) NextCollect

func (c *Collectable) NextCollect(collectTime time.Time)

func (*Collectable) NextCollectAt

func (c *Collectable) NextCollectAt() time.Time

func (*Collectable) Updated

func (c *Collectable) Updated(updateTime time.Time)

type ComplexError

type ComplexError struct {
	Errors []string
}

func (*ComplexError) Add

func (c *ComplexError) Add(field string, err error)

func (ComplexError) Error

func (c ComplexError) Error() string

func (ComplexError) ErrorCount

func (c ComplexError) ErrorCount() int

type Consequence

type Consequence struct {
	Periods   []*TimeRange       `json:",omitempty"`
	Condition SituationCondition `json:",omitempty"`
	Severity  SituationSeverity  `json:",omitempty"`
	Affects   Affects            `json:",omitempty"`
	Blocking  *Blocking          `json:",omitempty"`
}

type ContexFactory

type ContexFactory func(ContextAttributes) (Context, error)

type Context

type Context func(ModelInstance) bool

func NewContexFromDatabase

func NewContexFromDatabase(s DatabaseStructureWithContext) (Context, error)

func NewVehicleJourneyIfAttributeContext

func NewVehicleJourneyIfAttributeContext(attributes sql.NullString) (Context, error)

type ContextAttributes

type ContextAttributes any

type Control

type Control struct {
	Id string
	// contains filtered or unexported fields
}

func NewControl

func NewControl() *Control

func NewControlWithContext

func NewControlWithContext(ctx Context) *Control

func (*Control) AddContext

func (c *Control) AddContext(ctx Context)

func (*Control) AddController

func (c *Control) AddController(controllers controller)

func (*Control) Control

func (c *Control) Control(mi ModelInstance) (ok bool, err error)

type ControlId

type ControlId string

type ControlManager

type ControlManager struct {
	// contains filtered or unexported fields
}

func (ControlManager) GetComplexControls

func (mm ControlManager) GetComplexControls(t model_types.Model) (m map[hooks.Type][]Control)

func (ControlManager) GetSimpleControls

func (mm ControlManager) GetSimpleControls(h hooks.Type, t model_types.Model) (m []Control)

If we ask for AfterCreate, we'll also get AfterSave Controls

func (*ControlManager) Load

func (manager *ControlManager) Load(referentialSlug string) error

func (*ControlManager) Reset

func (mm *ControlManager) Reset()

type Controls

type Controls interface {
	Loadable

	GetSimpleControls(hooks.Type, model_types.Model) []Control
	GetComplexControls(model_types.Model) map[hooks.Type][]Control
}

func NewControlManager

func NewControlManager() Controls

type DatabaseFacility

type DatabaseFacility struct {
	Id              string `db:"id"`
	ReferentialSlug string `db:"referential_slug"`
	ModelDate       string `db:"model_date"`
	Codes           string `db:"codes"`
}

type DatabaseLine

type DatabaseLine struct {
	Id                string         `db:"id"`
	ReferentialSlug   string         `db:"referential_slug"`
	ModelDate         string         `db:"model_date"`
	Name              string         `db:"name"`
	Codes             string         `db:"codes"`
	RawAttributes     string         `db:"raw_attributes"`
	References        string         `db:"siri_references"`
	ReferentId        sql.NullString `db:"referent_id"`
	CollectSituations bool           `db:"collect_situations"`
}

type DatabaseLineGroup

type DatabaseLineGroup struct {
	Id              string `db:"id"`
	ReferentialSlug string `db:"referential_slug"`
	ModelDate       string `db:"model_date"`
	Name            string `db:"name"`
	ShortName       string `db:"short_name"`
	LineIds         string `db:"line_ids"`
}

type DatabaseOperator

type DatabaseOperator struct {
	Id              string `db:"id"`
	ReferentialSlug string `db:"referential_slug"`
	Name            string `db:"name"`
	Codes           string `db:"codes"`
	ModelDate       string `db:"model_date"`
}

type DatabasePartner

type DatabasePartner struct {
	Id             string `db:"id"`
	ReferentialId  string `db:"referential_id"`
	Slug           string `db:"slug"`
	Name           string `db:"name"`
	Settings       string `db:"settings"`
	ConnectorTypes string `db:"connector_types"`
}

type DatabasePartnerTemplate

type DatabasePartnerTemplate struct {
	Id               string `db:"id"`
	ReferentialId    string `db:"referential_id"`
	Slug             string `db:"slug"`
	Name             string `db:"name"`
	Settings         string `db:"settings"`
	ConnectorTypes   string `db:"connector_types"`
	CredentialType   string `db:"credential_type"`
	LocalCredential  string `db:"local_credential"`
	RemoteCredential string `db:"remote_credential"`
	MaxPartners      int    `db:"max_partners"`
}

type DatabaseReferential

type DatabaseReferential struct {
	ReferentialId  string         `db:"referential_id"`
	Slug           string         `db:"slug"`
	Name           string         `db:"name"`
	Settings       string         `db:"settings"`
	Tokens         string         `db:"tokens"`
	ImportTokens   string         `db:"import_tokens"`
	OrganisationId sql.NullString `db:"organisation_id"`
}

type DatabaseStopArea

type DatabaseStopArea struct {
	LineIds           string         `db:"line_ids"`
	ReferentialSlug   string         `db:"referential_slug"`
	References        string         `db:"siri_references"`
	RawAttributes     string         `db:"raw_attributes"`
	ModelDate         string         `db:"model_date"`
	Name              string         `db:"name"`
	Codes             string         `db:"codes"`
	Id                string         `db:"id"`
	ReferentId        sql.NullString `db:"referent_id"`
	ParentId          sql.NullString `db:"parent_id"`
	CollectedAlways   bool           `db:"collected_always"`
	CollectChildren   bool           `db:"collect_children"`
	CollectSituations bool           `db:"collect_situations"`
}

type DatabaseStopAreaGroup

type DatabaseStopAreaGroup struct {
	Id              string `db:"id"`
	ReferentialSlug string `db:"referential_slug"`
	ModelDate       string `db:"model_date"`
	Name            string `db:"name"`
	ShortName       string `db:"short_name"`
	StopAreaIds     string `db:"stop_area_ids"`
}

type DatabaseStopVisit

type DatabaseStopVisit struct {
	Id               string
	ReferentialSlug  string `db:"referential_slug"`
	ModelDate        string `db:"model_date"`
	Codes            string `db:"codes"`
	StopAreaId       string `db:"stop_area_id"`
	VehicleJourneyId string `db:"vehicle_journey_id"`
	Schedules        string `db:"schedules"`
	RawAttributes    string `db:"raw_attributes"`
	References       string `db:"siri_references"`
	PassageOrder     int    `db:"passage_order"`
}

type DatabaseStructureWithContext

type DatabaseStructureWithContext interface {
	GetHook() sql.NullString
	GetModelType() sql.NullString
	GetType() string
	GetAttributes() sql.NullString
}

type DatabaseVehicleJourney

type DatabaseVehicleJourney struct {
	Id              string `db:"id"`
	ReferentialSlug string `db:"referential_slug"`
	ModelDate       string `db:"model_date"`
	Name            string `db:"name"`
	Codes           string `db:"codes"`
	LineId          string `db:"line_id"`
	OriginName      string `db:"origin_name"`
	DestinationName string `db:"destination_name"`
	DirectionType   string `db:"direction_type"`
	RawAttributes   string `db:"raw_attributes"`
	References      string `db:"siri_references"`
}

type Date

type Date struct {
	Year  int
	Month time.Month
	Day   int
}

func NewDate

func NewDate(reference time.Time) Date

func (*Date) String

func (date *Date) String() string

type DetailedStopVisit

type DetailedStopVisit struct {
	Order           int                           `json:"Order"`
	StopAreaName    string                        `json:"StopAreaName"`
	StopAreaId      StopAreaId                    `json:"StopAreaId"`
	Schedules       []schedules.StopVisitSchedule `json:",omitempty"`
	ArrivalStatus   StopVisitArrivalStatus        `json:",omitempty"`
	DepartureStatus StopVisitDepartureStatus      `json:",omitempty"`
	CollectedAt     time.Time
}

type DiffResult

type DiffResult struct {
	DiffMap map[string]any
	Equal   bool
}

func Equal

func Equal(x, y any) (*DiffResult, error)

type EventKind

type EventKind int
const (
	STOP_AREA_EVENT EventKind = iota
	STATUS_EVENT
	LINE_EVENT
	VEHICLE_JOURNEY_EVENT
	STOP_VISIT_EVENT
	NOT_COLLECTED_EVENT
	VEHICLE_EVENT
	SITUATION_EVENT
	FACILITY_EVENT
)

type Facilities

type Facilities interface {
	ModelManager[FacilityId, *Facility]
	CodeHandler[*Facility]
	Broadcaster[FacilityBroadcastEvent]
	Loadable

	CollectableFacilities(time.Time) []*Facility
}

func NewMemoryFacilities

func NewMemoryFacilities() Facilities

type Facility

type Facility struct {
	Collectable

	CodeConsumer
	Status FacilityStatus `json:",omitempty"`
	Origin string
	// contains filtered or unexported fields
}

func NewFacility

func NewFacility(model Model) *Facility

func (*Facility) Id

func (facility *Facility) Id() FacilityId

func (*Facility) MarshalJSON

func (facility *Facility) MarshalJSON() ([]byte, error)

func (*Facility) ModelId

func (facility *Facility) ModelId() string

func (*Facility) Save

func (facility *Facility) Save() bool

func (*Facility) UnmarshalJSON

func (facility *Facility) UnmarshalJSON(data []byte) error

type FacilityBroadcastEvent

type FacilityBroadcastEvent struct {
	SubscriptionId string
	ModelId        string
	ModelType      string
}

type FacilityId

type FacilityId string

type FacilityStatus

type FacilityStatus string
const (
	FacilityStatusUnknown            FacilityStatus = "unknown"
	FacilityStatusAvailable          FacilityStatus = "available"
	FacilityStatusNotAvailable       FacilityStatus = "notAvailable"
	FacilityStatusPartiallyAvailable FacilityStatus = "partiallyAvailable"
	FacilityStatusRemoved            FacilityStatus = "removed"
)

func FacilityStatusFromString

func FacilityStatusFromString(s string) (*FacilityStatus, error)

type FacilityUpdateEvent

type FacilityUpdateEvent struct {
	Origin string

	Code   Code
	Status string
}

func NewFacilityUpdateEvent

func NewFacilityUpdateEvent() *FacilityUpdateEvent

func (*FacilityUpdateEvent) EventKind

func (ue *FacilityUpdateEvent) EventKind() EventKind

type Index

type Index interface {
	Index(ModelInstance)
	Find(string) ([]string, bool)
	FindOne(string) (string, bool)
	Delete(string)
	IndexableLength(string) int
}

type IndexHandler

type IndexHandler struct {
	// contains filtered or unexported fields
}

func (*IndexHandler) AddIndex

func (is *IndexHandler) AddIndex(name, kind int, extractor IndexableExtractor)

func (*IndexHandler) ByCode

func (is *IndexHandler) ByCode() *codeIndex

func (*IndexHandler) Deindex

func (is *IndexHandler) Deindex(mid string)

func (*IndexHandler) FindBy

func (is *IndexHandler) FindBy(n int, i string) ([]string, bool)

func (*IndexHandler) FindOneBy

func (is *IndexHandler) FindOneBy(n int, i string) (string, bool)

func (*IndexHandler) GetIndex

func (is *IndexHandler) GetIndex(n int) Index

func (*IndexHandler) Index

func (is *IndexHandler) Index(m ModelInstance)

func (*IndexHandler) IndexableLength

func (is *IndexHandler) IndexableLength(n int, i string) int

func (*IndexHandler) InitIndexes

func (is *IndexHandler) InitIndexes(hasCodes ...bool)

InitHandler creates a CodeIndex by default but it can be disabled

type IndexableExtractor

type IndexableExtractor func(ModelInstance) string
type InfoLink struct {
	Uri         string
	Label       string
	ImageRef    string
	LinkContent string
}

type Line

type Line struct {
	Collectable

	References References
	CodeConsumer
	RawAttributes RawAttributes

	ReferentId        LineId `json:",omitempty"`
	Name              string `json:",omitempty"`
	Number            string `json:",omitempty"`
	Origin            string `json:",omitempty"`
	CollectSituations bool
	// contains filtered or unexported fields
}

func NewLine

func NewLine(model Model) *Line

func (*Line) Attribute

func (line *Line) Attribute(key string) (string, bool)

func (*Line) DiscoveryCode

func (line *Line) DiscoveryCode(codeSpace string) (Code, bool)

Returns true if we need to send the Line in a Discovery

We only send the Line if it has no referent with a correct codeSpace. If that's the case, we'll send the Referent instead

func (*Line) GetName

func (line *Line) GetName() string

func (*Line) Id

func (line *Line) Id() LineId

func (*Line) MarshalJSON

func (line *Line) MarshalJSON() ([]byte, error)

func (*Line) ModelId

func (line *Line) ModelId() string

func (*Line) Reference

func (line *Line) Reference(key string) (Reference, bool)

func (*Line) Referent

func (line *Line) Referent() (*Line, bool)

func (*Line) ReferentOrSelfCode

func (line *Line) ReferentOrSelfCode(codeSpace string) (Code, bool)

func (*Line) Save

func (line *Line) Save() bool

func (*Line) SetId

func (line *Line) SetId(id LineId)

func (*Line) SetOrigin

func (line *Line) SetOrigin(origin string)

func (*Line) UnmarshalJSON

func (line *Line) UnmarshalJSON(data []byte) error

type LineGroup

type LineGroup struct {
	Name      string   `json:",omitempty"`
	ShortName string   `json:",omitempty"`
	LineIds   []LineId `json:",omitempty"`
	// contains filtered or unexported fields
}

func NewLineGroup

func NewLineGroup(model Model) *LineGroup

func (*LineGroup) Id

func (lineGroup *LineGroup) Id() LineGroupId

func (*LineGroup) MarshalJSON

func (lineGroup *LineGroup) MarshalJSON() ([]byte, error)

func (*LineGroup) Save

func (lineGroup *LineGroup) Save() bool

type LineGroupId

type LineGroupId string

type LineGroups

type LineGroups interface {
	ModelManager[LineGroupId, *LineGroup]
	Loadable

	FindByShortName(string) (*LineGroup, bool)
}

func NewMemoryLineGroups

func NewMemoryLineGroups() LineGroups

type LineId

type LineId string

type LineInfo

type LineInfo struct {
	Code   string
	Name   string
	Number string
}

LineInfo is a minimal description of a line for broadcasting: its code in the requested code space plus the display fields, without the full model object.

type LineUpdateEvent

type LineUpdateEvent struct {
	Origin string

	Code Code
	Name string
}

func NewLineUpdateEvent

func NewLineUpdateEvent() *LineUpdateEvent

func (*LineUpdateEvent) EventKind

func (ue *LineUpdateEvent) EventKind() EventKind

type Lines

type Lines interface {
	ModelManager[LineId, *Line]
	CodeHandler[*Line]
	Loadable

	FindFamily(LineId) []LineId
	FindFamilyFromCode(Code) []LineId
	FindCode(LineId, string) (Code, bool)
	ResolveLineInfo(LineId, string, bool) (LineInfo, bool)
	CollectableLines(time.Time) []*Line
}

func NewMemoryLines

func NewMemoryLines() Lines

func NewRedisLines

func NewRedisLines(client redisclient.Client) Lines

type Loadable

type Loadable interface {
	Load(string) error
}

type Loader

type Loader struct {
	// contains filtered or unexported fields
}

func NewLoader

func NewLoader(referentialSlug string, force, printErrors bool) *Loader

func (Loader) Load

func (loader Loader) Load(reader io.Reader) Result

type Macro

type Macro struct {
	// contains filtered or unexported fields
}

func NewMacro

func NewMacro() *Macro

func NewMacroWithContext

func NewMacroWithContext(c Context) *Macro

func (*Macro) AddContext

func (m *Macro) AddContext(c Context)

func (*Macro) AddUpdater

func (m *Macro) AddUpdater(u updater)

func (*Macro) Update

func (m *Macro) Update(mi ModelInstance) (ok bool, err error)

type MacroId

type MacroId string

type Macros

type Macros interface {
	Loadable

	SetModel(Model)
	GetSimpleMacros(hooks.Type, model_types.Model) []Macro
	GetComplexMacros(model_types.Model) map[hooks.Type][]Macro
}

func NewMacroManager

func NewMacroManager() Macros

type MemoryFacilities

type MemoryFacilities struct {
	// contains filtered or unexported fields
}

func (*MemoryFacilities) CodeExists

func (manager *MemoryFacilities) CodeExists(code Code) bool

func (*MemoryFacilities) CollectableFacilities

func (manager *MemoryFacilities) CollectableFacilities(now time.Time) (facilities []*Facility)

CollectableFacilities returns a copy of the facilities due for collection at the given time. Only the due facilities are copied, avoiding a deep copy of the whole collection on every guardian cycle.

func (*MemoryFacilities) Delete

func (manager *MemoryFacilities) Delete(facility *Facility) bool

func (*MemoryFacilities) Find

func (manager *MemoryFacilities) Find(id FacilityId) (*Facility, bool)

func (*MemoryFacilities) FindAll

func (manager *MemoryFacilities) FindAll() (facilitys []*Facility)

func (*MemoryFacilities) FindByCode

func (manager *MemoryFacilities) FindByCode(code Code) (*Facility, bool)

func (*MemoryFacilities) Load

func (manager *MemoryFacilities) Load(referentialSlug string) error

func (*MemoryFacilities) New

func (manager *MemoryFacilities) New() *Facility

func (*MemoryFacilities) Save

func (manager *MemoryFacilities) Save(facility *Facility) bool

func (*MemoryFacilities) SetBroadcaster

func (manager *MemoryFacilities) SetBroadcaster(f func(FacilityBroadcastEvent), _ ...string)

func (*MemoryFacilities) SetModel

func (mm *MemoryFacilities) SetModel(m Model)

type MemoryOperators

type MemoryOperators struct {
	// contains filtered or unexported fields
}

func (*MemoryOperators) CodeExists

func (manager *MemoryOperators) CodeExists(code Code) bool

func (*MemoryOperators) Delete

func (manager *MemoryOperators) Delete(operator *Operator) bool

func (*MemoryOperators) Find

func (manager *MemoryOperators) Find(id OperatorId) (*Operator, bool)

func (*MemoryOperators) FindAll

func (manager *MemoryOperators) FindAll() (operators []*Operator)

func (*MemoryOperators) FindByCode

func (manager *MemoryOperators) FindByCode(code Code) (*Operator, bool)

func (*MemoryOperators) Load

func (manager *MemoryOperators) Load(referentialSlug string) error

func (*MemoryOperators) New

func (manager *MemoryOperators) New() *Operator

func (*MemoryOperators) Save

func (manager *MemoryOperators) Save(operator *Operator) bool

func (*MemoryOperators) SetModel

func (mm *MemoryOperators) SetModel(m Model)

type Model

type Model interface {
	Date() Date
	SetDate(Date)
	Referential() string
	SetReferential(string)

	Lines() Lines
	LineGroups() LineGroups
	StopAreaGroups() StopAreaGroups
	Situations() Situations
	StopAreas() StopAreas
	StopVisits() StopVisits
	ScheduledStopVisits() StopVisits
	VehicleJourneys() VehicleJourneys
	Operators() Operators
	Vehicles() Vehicles
	Macros() Macros
	Controls() Controls
	Facilities() Facilities

	Load() error
	Reload() Model
	SetBroadcastSMChan(chan StopMonitoringBroadcastEvent)
	SetBroadcastGMChan(chan SituationBroadcastEvent)
	SetBroadcastSXChan(chan SituationBroadcastEvent)
	SetBroadcastVeChan(chan VehicleBroadcastEvent)
	SetBroadcastFMChan(chan FacilityBroadcastEvent)
}

func NewHybridModel

func NewHybridModel(referential string, client redisclient.Client) Model

func NewMemoryModel

func NewMemoryModel(referential string) Model

func NewTestMemoryModel

func NewTestMemoryModel() Model

type ModelInstance

type ModelInstance interface {
	CodeConsumerInterface

	ModelId() string
}

type ModelManager

type ModelManager[Id, O any] interface {
	uuid.UUIDInterface
	New() O
	Find(Id) (O, bool)
	FindAll() []O
	Save(O) bool
	Delete(O) bool
	SetModel(Model)
}

type NotCollectedUpdateEvent

type NotCollectedUpdateEvent struct {
	Code           Code
	NotCollectedAt time.Time
}

func NewNotCollectedUpdateEvent

func NewNotCollectedUpdateEvent(obj Code, t time.Time) *NotCollectedUpdateEvent

func (*NotCollectedUpdateEvent) EventKind

func (ue *NotCollectedUpdateEvent) EventKind() EventKind

type Operator

type Operator struct {
	CodeConsumer

	Name string `json:",omitempty"`
	// contains filtered or unexported fields
}

func NewOperator

func NewOperator(model Model) *Operator

func (*Operator) Id

func (operator *Operator) Id() OperatorId

func (*Operator) MarshalJSON

func (operator *Operator) MarshalJSON() ([]byte, error)

func (*Operator) ModelId

func (operator *Operator) ModelId() string

func (*Operator) Save

func (operator *Operator) Save() bool

func (*Operator) UnmarshalJSON

func (operator *Operator) UnmarshalJSON(data []byte) error

type OperatorId

type OperatorId string

type Operators

type Operators interface {
	ModelManager[OperatorId, *Operator]
	CodeHandler[*Operator]
	Loadable
}

func NewMemoryOperators

func NewMemoryOperators() Operators

type PublishToDisplayAction

type PublishToDisplayAction struct {
	ActionCommon

	OnPlace *bool `json:",omitempty"`
	OnBoard *bool `json:",omitempty"`
}

type PublishToMobileAction

type PublishToMobileAction struct {
	ActionCommon

	Incidents *bool `json:",omitempty"`
	HomePage  *bool `json:",omitempty"`
}

type PublishToWebAction

type PublishToWebAction struct {
	ActionCommon

	Incidents      *bool    `json:",omitempty"`
	HomePage       *bool    `json:",omitempty"`
	Ticker         *bool    `json:",omitempty"`
	SocialNetworks []string `json:",omitempty"`
}

type Purifier

type Purifier struct {
	// contains filtered or unexported fields
}

func NewPurifier

func NewPurifier(days int) *Purifier

func (*Purifier) Purge

func (p *Purifier) Purge() error

type RawAttributes

type RawAttributes map[string]string

func NewRawAttributes

func NewRawAttributes() RawAttributes

func (RawAttributes) Copy

func (attributes RawAttributes) Copy() (c RawAttributes)

func (RawAttributes) IsEmpty

func (attributes RawAttributes) IsEmpty() bool

func (RawAttributes) Set

func (attributes RawAttributes) Set(key string, value string)

type RedisModelInstance

type RedisModelInstance[Id ~string, P any] interface {
	SetId(Id)
	ModelId() string
	*P // Ensure the type implementing the interface is a pointer
}

type Reference

type Reference struct {
	Code *Code  `json:",omitempty"`
	Type string `json:",omitempty"`
}

func NewReference

func NewReference(code Code) *Reference

func (*Reference) GetSha1

func (reference *Reference) GetSha1() string

type References

type References struct {
	// contains filtered or unexported fields
}

func NewReferences

func NewReferences() References

func (*References) Copy

func (references *References) Copy() References

func (*References) Get

func (references *References) Get(key string) (Reference, bool)

func (*References) GetReferences

func (references *References) GetReferences() map[string]Reference

func (*References) GetSiriReferences

func (references *References) GetSiriReferences() map[string]string

func (*References) IsEmpty

func (references *References) IsEmpty() bool

func (*References) Set

func (references *References) Set(key string, value Reference)

func (*References) SetCode

func (references *References) SetCode(key string, obj Code)

func (*References) SetReference

func (references *References) SetReference(key string, r Reference)

func (*References) SetReferences

func (references *References) SetReferences(r map[string]Reference)

type ReportType

type ReportType string

type Result

type Result struct {
	Import map[string]int64
	Errors map[string][]string
}

func (Result) ErrorCount

func (r Result) ErrorCount() int64

func (Result) Inserted

func (r Result) Inserted(m string) int64

func (Result) PrintResult

func (r Result) PrintResult() string

func (Result) TotalInserts

func (r Result) TotalInserts() int64

type SelectControl

type SelectControl struct {
	Id              string
	ReferentialSlug string         `db:"referential_slug"`
	ContextId       sql.NullString `db:"context_id"`
	Position        int
	Type            string
	ModelType       sql.NullString `db:"model_type"`
	Hook            sql.NullString
	Criticity       sql.NullString
	InternalCode    sql.NullString `db:"internal_code"`
	Attributes      sql.NullString
}

func (*SelectControl) GetAttributes

func (m *SelectControl) GetAttributes() sql.NullString

func (*SelectControl) GetHook

func (c *SelectControl) GetHook() sql.NullString

func (*SelectControl) GetModelType

func (c *SelectControl) GetModelType() sql.NullString

func (*SelectControl) GetType

func (c *SelectControl) GetType() string

type SelectFacility

type SelectFacility struct {
	Id              string
	ReferentialSlug string         `db:"referential_slug"`
	ModelDate       string         `db:"model_date"`
	Codes           sql.NullString `db:"codes"`
}

type SelectLine

type SelectLine struct {
	Id                string
	ReferentialSlug   string         `db:"referential_slug"`
	ModelDate         string         `db:"model_date"`
	ReferentId        sql.NullString `db:"referent_id"`
	Name              sql.NullString
	Number            sql.NullString `db:"number"`
	Codes             sql.NullString `db:"codes"`
	RawAttributes     sql.NullString `db:"raw_attributes"`
	References        sql.NullString `db:"siri_references"`
	CollectSituations sql.NullBool   `db:"collect_situations"`
}

type SelectLineGroup

type SelectLineGroup struct {
	Id              string
	ReferentialSlug string         `db:"referential_slug"`
	ModelDate       string         `db:"model_date"`
	Name            sql.NullString `db:"name"`
	ShortName       sql.NullString `db:"short_name"`
	LineIds         sql.NullString `db:"line_ids"`
}

type SelectMacro

type SelectMacro struct {
	Id              string
	ReferentialSlug string         `db:"referential_slug"`
	ContextId       sql.NullString `db:"context_id"`
	Position        int
	Type            string
	ModelType       sql.NullString `db:"model_type"`
	Hook            sql.NullString
	Attributes      sql.NullString
}

func (*SelectMacro) GetAttributes

func (m *SelectMacro) GetAttributes() sql.NullString

func (*SelectMacro) GetHook

func (m *SelectMacro) GetHook() sql.NullString

func (*SelectMacro) GetModelType

func (m *SelectMacro) GetModelType() sql.NullString

func (*SelectMacro) GetType

func (m *SelectMacro) GetType() string

type SelectOperator

type SelectOperator struct {
	Id              string
	ReferentialSlug string `db:"referential_slug"`
	ModelDate       string `db:"model_date"`
	Name            sql.NullString
	Codes           sql.NullString `db:"codes"`
}

type SelectPartner

type SelectPartner struct {
	Id             string
	ReferentialId  string `db:"referential_id"`
	Slug           string
	Name           sql.NullString
	Settings       sql.NullString
	ConnectorTypes sql.NullString `db:"connector_types"`
}

type SelectPartnerTemplate

type SelectPartnerTemplate struct {
	Id               string
	ReferentialId    string `db:"referential_id"`
	Slug             string
	CredentialType   string        `db:"credential_type"`
	LocalCredential  string        `db:"local_credential"`
	RemoteCredential string        `db:"remote_credential"`
	MaxPartners      sql.NullInt64 `db:"max_partners"`
	Name             sql.NullString
	Settings         sql.NullString
	ConnectorTypes   sql.NullString `db:"connector_types"`
}

type SelectReferential

type SelectReferential struct {
	ReferentialId  string         `db:"referential_id"`
	OrganisationId sql.NullString `db:"organisation_id"`
	Slug           string
	Name           sql.NullString
	Settings       sql.NullString
	Tokens         sql.NullString
	ImportTokens   sql.NullString `db:"import_tokens"`
}

type SelectStopArea

type SelectStopArea struct {
	Id                string
	ReferentialSlug   string `db:"referential_slug"`
	ModelDate         string `db:"model_date"`
	Name              sql.NullString
	Codes             sql.NullString `db:"codes"`
	ParentId          sql.NullString `db:"parent_id"`
	ReferentId        sql.NullString `db:"referent_id"`
	RawAttributes     sql.NullString `db:"raw_attributes"`
	References        sql.NullString `db:"siri_references"`
	LineIds           sql.NullString `db:"line_ids"`
	CollectedAlways   sql.NullBool   `db:"collected_always"`
	CollectChildren   sql.NullBool   `db:"collect_children"`
	CollectSituations sql.NullBool   `db:"collect_situations"`
}

type SelectStopAreaGroup

type SelectStopAreaGroup struct {
	Id              string
	ReferentialSlug string         `db:"referential_slug"`
	ModelDate       string         `db:"model_date"`
	Name            sql.NullString `db:"name"`
	ShortName       sql.NullString `db:"short_name"`
	StopAreaIds     sql.NullString `db:"stop_area_ids"`
}

type SelectStopVisit

type SelectStopVisit struct {
	Id               string
	ReferentialSlug  string         `db:"referential_slug"`
	ModelDate        string         `db:"model_date"`
	Codes            sql.NullString `db:"codes"`
	StopAreaId       sql.NullString `db:"stop_area_id"`
	VehicleJourneyId sql.NullString `db:"vehicle_journey_id"`
	Schedules        sql.NullString `db:"schedules"`
	RawAttributes    sql.NullString `db:"raw_attributes"`
	References       sql.NullString `db:"siri_references"`
	PassageOrder     sql.NullInt64  `db:"passage_order"`
}

type SelectVehicleJourney

type SelectVehicleJourney struct {
	Id                  string
	ReferentialSlug     string `db:"referential_slug"`
	ModelDate           string `db:"model_date"`
	Name                sql.NullString
	Codes               sql.NullString `db:"codes"`
	LineId              sql.NullString `db:"line_id"`
	OriginName          sql.NullString `db:"origin_name"`
	DestinationName     sql.NullString `db:"destination_name"`
	DirectionType       sql.NullString `db:"direction_type"`
	RawAttributes       sql.NullString `db:"raw_attributes"`
	References          sql.NullString `db:"siri_references"`
	AimedStopVisitCount sql.NullInt64  `db:"aimed_stop_visit_count"`
}

type Situation

type Situation struct {
	CodeConsumer

	Origin string

	RecordedAt time.Time
	Version    int `json:",omitempty"`

	VersionedAt        time.Time
	ValidityPeriods    []*TimeRange
	PublicationWindows []*TimeRange

	Progress       SituationProgress   `json:",omitempty"`
	Severity       SituationSeverity   `json:",omitempty"`
	Keywords       []string            `json:",omitempty"`
	ReportType     ReportType          `json:",omitempty"`
	AlertCause     SituationAlertCause `json:",omitempty"`
	Reality        SituationReality    `json:",omitempty"`
	ProducerRef    string              `json:",omitempty"`
	Format         string              `json:",omitempty"`
	InternalTags   []string            `json:",omitempty"`
	ParticipantRef string              `json:",omitempty"`
	Summary        *TranslatedString   `json:",omitempty"`
	Description    *TranslatedString   `json:",omitempty"`

	Affects                 Affects                   `json:",omitempty"`
	Consequences            []*Consequence            `json:",omitempty"`
	PublishToWebActions     []*PublishToWebAction     `json:",omitempty"`
	PublishToMobileActions  []*PublishToMobileAction  `json:",omitempty"`
	PublishToDisplayActions []*PublishToDisplayAction `json:",omitempty"`
	InfoLinks               []*InfoLink               `json:",omitempty"`
	// contains filtered or unexported fields
}

func NewSituation

func NewSituation(model Model) *Situation

func (*Situation) BroadcastPeriod

func (s *Situation) BroadcastPeriod() *TimeRange

func (*Situation) Definition

func (situation *Situation) Definition() *APISituation

func (*Situation) GMValidUntil

func (situation *Situation) GMValidUntil() time.Time

func (*Situation) GetAffectedLineIds

func (situation *Situation) GetAffectedLineIds() (lineIds []LineId)

GetAffectedLineIds returns the ids of the Lines directly affected by the Situation.

func (*Situation) GetAffectedStopAreaIds

func (situation *Situation) GetAffectedStopAreaIds() (stopAreaIds []StopAreaId)

GetAffectedStopAreaIds returns the ids of the StopAreas directly affected by the Situation.

func (*Situation) GetGMChannel

func (situation *Situation) GetGMChannel() (string, bool)

func (*Situation) Id

func (situation *Situation) Id() SituationId

func (*Situation) MarshalJSON

func (situation *Situation) MarshalJSON() ([]byte, error)

func (*Situation) ModelId

func (situation *Situation) ModelId() string

func (*Situation) Save

func (situation *Situation) Save() (ok bool)

func (*Situation) SearchableText

func (situation *Situation) SearchableText() (texts []string)

SearchableText returns every textual value (default and translations of the Summary and Description) against which a text search can be matched.

func (*Situation) SetDefinition

func (situation *Situation) SetDefinition(apiSituation *APISituation)

type SituationActionStatus

type SituationActionStatus string
const (
	SituationActionStatusOpen      SituationActionStatus = "open"
	SituationActionStatusPublished SituationActionStatus = "published"
	SituationActionStatusClosed    SituationActionStatus = "closed"
)

func (*SituationActionStatus) FromString

func (as *SituationActionStatus) FromString(s string) error

type SituationAlertCause

type SituationAlertCause string
const (
	SituationAlertCauseAccident                          SituationAlertCause = "accident"
	SituationAlertCauseAirraid                           SituationAlertCause = "airRaid"
	SituationAlertCauseAltercation                       SituationAlertCause = "altercation"
	SituationAlertCauseAnimalontheline                   SituationAlertCause = "animalOnTheLine"
	SituationAlertCauseAsphalting                        SituationAlertCause = "asphalting"
	SituationAlertCauseAssault                           SituationAlertCause = "assault"
	SituationAlertCauseAttack                            SituationAlertCause = "attack"
	SituationAlertCauseAvalanches                        SituationAlertCause = "avalanches"
	SituationAlertCauseAwaitingapproach                  SituationAlertCause = "awaitingApproach"
	SituationAlertCauseAwaitingoncomingvehicle           SituationAlertCause = "awaitingOncomingVehicle"
	SituationAlertCauseAwaitingshuttle                   SituationAlertCause = "awaitingShuttle"
	SituationAlertCauseBlizzardconditions                SituationAlertCause = "blizzardConditions"
	SituationAlertCauseBoardingdelay                     SituationAlertCause = "boardingDelay"
	SituationAlertCauseBombalert                         SituationAlertCause = "bombAlert"
	SituationAlertCauseBombdisposal                      SituationAlertCause = "bombDisposal"
	SituationAlertCauseBombexplosion                     SituationAlertCause = "bombExplosion"
	SituationAlertCauseBordercontrol                     SituationAlertCause = "borderControl"
	SituationAlertCauseBreakdown                         SituationAlertCause = "breakDown"
	SituationAlertCauseBridgedamage                      SituationAlertCause = "bridgeDamage"
	SituationAlertCauseBridgestrike                      SituationAlertCause = "bridgeStrike"
	SituationAlertCauseBrokenrail                        SituationAlertCause = "brokenRail"
	SituationAlertCauseCablefire                         SituationAlertCause = "cableFire"
	SituationAlertCauseCabletheft                        SituationAlertCause = "cableTheft"
	SituationAlertCauseChangeincarriages                 SituationAlertCause = "changeInCarriages"
	SituationAlertCauseCivilemergency                    SituationAlertCause = "civilEmergency"
	SituationAlertCauseClosedformaintenance              SituationAlertCause = "closedForMaintenance"
	SituationAlertCauseCollision                         SituationAlertCause = "collision"
	SituationAlertCauseCongestion                        SituationAlertCause = "congestion"
	SituationAlertCauseConstructionwork                  SituationAlertCause = "constructionWork"
	SituationAlertCauseContractorstaffinjury             SituationAlertCause = "contractorStaffInjury"
	SituationAlertCauseDefectivecctv                     SituationAlertCause = "defectiveCctv"
	SituationAlertCauseDefectivefirealarmequipment       SituationAlertCause = "defectiveFireAlarmEquipment"
	SituationAlertCauseDefectiveplatformedgedoors        SituationAlertCause = "defectivePlatformEdgeDoors"
	SituationAlertCauseDefectivepublicannouncementsystem SituationAlertCause = "defectivePublicAnnouncementSystem"
	SituationAlertCauseDefectivesecuritysystem           SituationAlertCause = "defectiveSecuritySystem"
	SituationAlertCauseDefectivetrain                    SituationAlertCause = "defectiveTrain"
	SituationAlertCauseDefectivevehicle                  SituationAlertCause = "defectiveVehicle"
	SituationAlertCauseDeicingwork                       SituationAlertCause = "deicingWork"
	SituationAlertCauseDemonstration                     SituationAlertCause = "demonstration"
	SituationAlertCauseDerailment                        SituationAlertCause = "derailment"
	SituationAlertCauseDoorfailure                       SituationAlertCause = "doorFailure"
	SituationAlertCauseDriftingsnow                      SituationAlertCause = "driftingSnow"
	SituationAlertCauseEarthquakedamage                  SituationAlertCause = "earthquakeDamage"
	SituationAlertCauseEmergencybrake                    SituationAlertCause = "emergencyBrake"
	SituationAlertCauseEmergencyengineeringwork          SituationAlertCause = "emergencyEngineeringWork"
	SituationAlertCauseEmergencymedicalservices          SituationAlertCause = "emergencyMedicalServices"
	SituationAlertCauseEmergencyservices                 SituationAlertCause = "emergencyServices"
	SituationAlertCauseEmergencyservicescall             SituationAlertCause = "emergencyServicesCall"
	SituationAlertCauseEnginefailure                     SituationAlertCause = "engineFailure"
	SituationAlertCauseEscalatorfailure                  SituationAlertCause = "escalatorFailure"
	SituationAlertCauseEvacuation                        SituationAlertCause = "evacuation"
	SituationAlertCauseExplosion                         SituationAlertCause = "explosion"
	SituationAlertCauseExplosionhazard                   SituationAlertCause = "explosionHazard"
	SituationAlertCauseFallenleaves                      SituationAlertCause = "fallenLeaves"
	SituationAlertCauseFallentree                        SituationAlertCause = "fallenTree"
	SituationAlertCauseFallentreeontheline               SituationAlertCause = "fallenTreeOnTheLine"
	SituationAlertCauseFatality                          SituationAlertCause = "fatality"
	SituationAlertCauseFilterblockade                    SituationAlertCause = "filterBlockade"
	SituationAlertCauseFire                              SituationAlertCause = "fire"
	SituationAlertCauseFireatstation                     SituationAlertCause = "fireAtStation"
	SituationAlertCauseFireatthestation                  SituationAlertCause = "fireAtTheStation"
	SituationAlertCauseFirebrigadeorder                  SituationAlertCause = "fireBrigadeOrder"
	SituationAlertCauseFirebrigadesafetychecks           SituationAlertCause = "fireBrigadeSafetyChecks"
	SituationAlertCauseFirerun                           SituationAlertCause = "fireRun"
	SituationAlertCauseFlashfloods                       SituationAlertCause = "flashFloods"
	SituationAlertCauseFlooding                          SituationAlertCause = "flooding"
	SituationAlertCauseFog                               SituationAlertCause = "fog"
	SituationAlertCauseForeigndisturbances               SituationAlertCause = "foreignDisturbances"
	SituationAlertCauseFrozen                            SituationAlertCause = "frozen"
	SituationAlertCauseFuelproblem                       SituationAlertCause = "fuelProblem"
	SituationAlertCauseFuelshortage                      SituationAlertCause = "fuelShortage"
	SituationAlertCauseGangwayproblem                    SituationAlertCause = "gangwayProblem"
	SituationAlertCauseGlazedfrost                       SituationAlertCause = "glazedFrost"
	SituationAlertCauseGrassfire                         SituationAlertCause = "grassFire"
	SituationAlertCauseGunfireonroadway                  SituationAlertCause = "gunfireOnRoadway"
	SituationAlertCauseHail                              SituationAlertCause = "hail"
	SituationAlertCauseHeavyrain                         SituationAlertCause = "heavyRain"
	SituationAlertCauseHeavysnowfall                     SituationAlertCause = "heavySnowfall"
	SituationAlertCauseHeavytraffic                      SituationAlertCause = "heavyTraffic"
	SituationAlertCauseHightemperatures                  SituationAlertCause = "highTemperatures"
	SituationAlertCauseHightide                          SituationAlertCause = "highTide"
	SituationAlertCauseHighwaterlevel                    SituationAlertCause = "highWaterLevel"
	SituationAlertCauseHoliday                           SituationAlertCause = "holiday"
	SituationAlertCauseIce                               SituationAlertCause = "ice"
	SituationAlertCauseIcedrift                          SituationAlertCause = "iceDrift"
	SituationAlertCauseIceoncarriages                    SituationAlertCause = "iceOnCarriages"
	SituationAlertCauseIceonrailway                      SituationAlertCause = "iceOnRailway"
	SituationAlertCauseIllvehicleoccupants               SituationAlertCause = "illVehicleOccupants"
	SituationAlertCauseIncident                          SituationAlertCause = "incident"
	SituationAlertCauseIndustrialaction                  SituationAlertCause = "industrialAction"
	SituationAlertCauseInsufficientdemand                SituationAlertCause = "insufficientDemand"
	SituationAlertCauseLackofoperationalstock            SituationAlertCause = "lackOfOperationalStock"
	SituationAlertCauseLandslide                         SituationAlertCause = "landslide"
	SituationAlertCauseLatefinishtoengineeringwork       SituationAlertCause = "lateFinishToEngineeringWork"
	SituationAlertCauseLeaderboardfailure                SituationAlertCause = "leaderBoardFailure"
	SituationAlertCauseLevelcrossingaccident             SituationAlertCause = "levelCrossingAccident"
	SituationAlertCauseLevelcrossingblocked              SituationAlertCause = "levelCrossingBlocked"
	SituationAlertCauseLevelcrossingfailure              SituationAlertCause = "levelCrossingFailure"
	SituationAlertCauseLevelcrossingincident             SituationAlertCause = "levelCrossingIncident"
	SituationAlertCauseLiftfailure                       SituationAlertCause = "liftFailure"
	SituationAlertCauseLightingfailure                   SituationAlertCause = "lightingFailure"
	SituationAlertCauseLightningstrike                   SituationAlertCause = "lightningStrike"
	SituationAlertCauseLinesidefire                      SituationAlertCause = "linesideFire"
	SituationAlertCauseLogisticproblems                  SituationAlertCause = "logisticProblems"
	SituationAlertCauseLowtide                           SituationAlertCause = "lowTide"
	SituationAlertCauseLowwaterlevel                     SituationAlertCause = "lowWaterLevel"
	SituationAlertCauseLuggagecarouselproblem            SituationAlertCause = "luggageCarouselProblem"
	SituationAlertCauseMaintenancework                   SituationAlertCause = "maintenanceWork"
	SituationAlertCauseMarch                             SituationAlertCause = "march"
	SituationAlertCauseMiscellaneous                     SituationAlertCause = "miscellaneous"
	SituationAlertCauseMudslide                          SituationAlertCause = "mudslide"
	SituationAlertCauseNearmiss                          SituationAlertCause = "nearMiss"
	SituationAlertCauseObjectontheline                   SituationAlertCause = "objectOnTheLine"
	SituationAlertCauseOperatorceasedtrading             SituationAlertCause = "operatorCeasedTrading"
	SituationAlertCauseOperatorsuspended                 SituationAlertCause = "operatorSuspended"
	SituationAlertCauseOvercrowded                       SituationAlertCause = "overcrowded"
	SituationAlertCauseOverheadobstruction               SituationAlertCause = "overheadObstruction"
	SituationAlertCauseOverheadwirefailure               SituationAlertCause = "overheadWireFailure"
	SituationAlertCauseOvertaking                        SituationAlertCause = "overtaking"
	SituationAlertCausePassengeraction                   SituationAlertCause = "passengerAction"
	SituationAlertCausePassengersblockingdoors           SituationAlertCause = "passengersBlockingDoors"
	SituationAlertCausePaving                            SituationAlertCause = "paving"
	SituationAlertCausePersonhitbytrain                  SituationAlertCause = "personHitByTrain"
	SituationAlertCausePersonhitbyvehicle                SituationAlertCause = "personHitByVehicle"
	SituationAlertCausePersonillonvehicle                SituationAlertCause = "personIllOnVehicle"
	SituationAlertCausePersonontheline                   SituationAlertCause = "personOnTheLine"
	SituationAlertCausePersonundertrain                  SituationAlertCause = "personUnderTrain"
	SituationAlertCausePointsfailure                     SituationAlertCause = "pointsFailure"
	SituationAlertCausePointsproblem                     SituationAlertCause = "pointsProblem"
	SituationAlertCausePoliceactivity                    SituationAlertCause = "policeActivity"
	SituationAlertCausePoliceorder                       SituationAlertCause = "policeOrder"
	SituationAlertCausePoorrailconditions                SituationAlertCause = "poorRailConditions"
	SituationAlertCausePoorweather                       SituationAlertCause = "poorWeather"
	SituationAlertCausePowerproblem                      SituationAlertCause = "powerProblem"
	SituationAlertCausePrecedingvehicle                  SituationAlertCause = "precedingVehicle"
	SituationAlertCausePreviousdisturbances              SituationAlertCause = "previousDisturbances"
	SituationAlertCauseProblemsatborderpost              SituationAlertCause = "problemsAtBorderPost"
	SituationAlertCauseProblemsatcustomspost             SituationAlertCause = "problemsAtCustomsPost"
	SituationAlertCauseProblemsonlocalroad               SituationAlertCause = "problemsOnLocalRoad"
	SituationAlertCauseProcession                        SituationAlertCause = "procession"
	SituationAlertCauseProvisiondelay                    SituationAlertCause = "provisionDelay"
	SituationAlertCausePublicdisturbance                 SituationAlertCause = "publicDisturbance"
	SituationAlertCauseRailwaycrime                      SituationAlertCause = "railwayCrime"
	SituationAlertCauseRepairwork                        SituationAlertCause = "repairWork"
	SituationAlertCauseRiskofavalanches                  SituationAlertCause = "riskOfAvalanches"
	SituationAlertCauseRiskofflooding                    SituationAlertCause = "riskOfFlooding"
	SituationAlertCauseRiskoflandslide                   SituationAlertCause = "riskOfLandslide"
	SituationAlertCauseRoadclosed                        SituationAlertCause = "roadClosed"
	SituationAlertCauseRoadmaintenance                   SituationAlertCause = "roadMaintenance"
	SituationAlertCauseRoadwaydamage                     SituationAlertCause = "roadwayDamage"
	SituationAlertCauseRoadworks                         SituationAlertCause = "roadworks"
	SituationAlertCauseRockfalls                         SituationAlertCause = "rockfalls"
	SituationAlertCauseRoughsea                          SituationAlertCause = "roughSea"
	SituationAlertCauseRouteblockage                     SituationAlertCause = "routeBlockage"
	SituationAlertCauseRoutediversion                    SituationAlertCause = "routeDiversion"
	SituationAlertCauseSabotage                          SituationAlertCause = "sabotage"
	SituationAlertCauseSafetyviolation                   SituationAlertCause = "safetyViolation"
	SituationAlertCauseSecurityalert                     SituationAlertCause = "securityAlert"
	SituationAlertCauseSecurityincident                  SituationAlertCause = "securityIncident"
	SituationAlertCauseServicedisruption                 SituationAlertCause = "serviceDisruption"
	SituationAlertCauseServicefailure                    SituationAlertCause = "serviceFailure"
	SituationAlertCauseServiceindicatorfailure           SituationAlertCause = "serviceIndicatorFailure"
	SituationAlertCauseSeweragemaintenance               SituationAlertCause = "sewerageMaintenance"
	SituationAlertCauseSeweroverflow                     SituationAlertCause = "sewerOverflow"
	SituationAlertCauseSightseersobstructingaccess       SituationAlertCause = "sightseersObstructingAccess"
	SituationAlertCauseSignalandswitchfailure            SituationAlertCause = "signalAndSwitchFailure"
	SituationAlertCauseSignalfailure                     SituationAlertCause = "signalFailure"
	SituationAlertCauseSignalpassedatdanger              SituationAlertCause = "signalPassedAtDanger"
	SituationAlertCauseSignalproblem                     SituationAlertCause = "signalProblem"
	SituationAlertCauseSleet                             SituationAlertCause = "sleet"
	SituationAlertCauseSlipperiness                      SituationAlertCause = "slipperiness"
	SituationAlertCauseSlipperytrack                     SituationAlertCause = "slipperyTrack"
	SituationAlertCauseSmokedetectedonvehicle            SituationAlertCause = "smokeDetectedOnVehicle"
	SituationAlertCauseSpecialevent                      SituationAlertCause = "specialEvent"
	SituationAlertCauseSpeedrestrictions                 SituationAlertCause = "speedRestrictions"
	SituationAlertCauseStaffabsence                      SituationAlertCause = "staffAbsence"
	SituationAlertCauseStaffassault                      SituationAlertCause = "staffAssault"
	SituationAlertCauseStaffinjury                       SituationAlertCause = "staffInjury"
	SituationAlertCauseStaffinwrongplace                 SituationAlertCause = "staffInWrongPlace"
	SituationAlertCauseStaffshortage                     SituationAlertCause = "staffShortage"
	SituationAlertCauseStaffsickness                     SituationAlertCause = "staffSickness"
	SituationAlertCauseStationoverrun                    SituationAlertCause = "stationOverrun"
	SituationAlertCauseStormconditions                   SituationAlertCause = "stormConditions"
	SituationAlertCauseStormdamage                       SituationAlertCause = "stormDamage"
	SituationAlertCauseStrongwinds                       SituationAlertCause = "strongWinds"
	SituationAlertCauseSubsidence                        SituationAlertCause = "subsidence"
	SituationAlertCauseSuspectvehicle                    SituationAlertCause = "suspectVehicle"
	SituationAlertCauseSwingbridgefailure                SituationAlertCause = "swingBridgeFailure"
	SituationAlertCauseTechnicalproblem                  SituationAlertCause = "technicalProblem"
	SituationAlertCauseTelephonedthreat                  SituationAlertCause = "telephonedThreat"
	SituationAlertCauseTerroristincident                 SituationAlertCause = "terroristIncident"
	SituationAlertCauseTheft                             SituationAlertCause = "theft"
	SituationAlertCauseTicketingsystemnotavailable       SituationAlertCause = "ticketingSystemNotAvailable"
	SituationAlertCauseTidalrestrictions                 SituationAlertCause = "tidalRestrictions"
	SituationAlertCauseTrackcircuitproblem               SituationAlertCause = "trackCircuitProblem"
	SituationAlertCauseTractionfailure                   SituationAlertCause = "tractionFailure"
	SituationAlertCauseTrafficmanagementsystemfailure    SituationAlertCause = "trafficManagementSystemFailure"
	SituationAlertCauseTraincoupling                     SituationAlertCause = "trainCoupling"
	SituationAlertCauseTraindoor                         SituationAlertCause = "trainDoor"
	SituationAlertCauseTrainstruckanimal                 SituationAlertCause = "trainStruckAnimal"
	SituationAlertCauseTrainstruckobject                 SituationAlertCause = "trainStruckObject"
	SituationAlertCauseTrainwarningsystemproblem         SituationAlertCause = "trainWarningSystemProblem"
	SituationAlertCauseUnattendedbag                     SituationAlertCause = "unattendedBag"
	SituationAlertCauseUndefinedalertcause               SituationAlertCause = "undefinedAlertCause"
	SituationAlertCauseUndefinedenvironmentalproblem     SituationAlertCause = "undefinedEnvironmentalProblem"
	SituationAlertCauseUndefinedequipmentproblem         SituationAlertCause = "undefinedEquipmentProblem"
	SituationAlertCauseUndefinedpersonnelproblem         SituationAlertCause = "undefinedPersonnelProblem"
	SituationAlertCauseUndefinedproblem                  SituationAlertCause = "undefinedProblem"
	SituationAlertCauseUnknown                           SituationAlertCause = "unknown"
	SituationAlertCauseUnofficialindustrialaction        SituationAlertCause = "unofficialIndustrialAction"
	SituationAlertCauseUnscheduledconstructionwork       SituationAlertCause = "unscheduledConstructionWork"
	SituationAlertCauseVandalism                         SituationAlertCause = "vandalism"
	SituationAlertCauseVegetation                        SituationAlertCause = "vegetation"
	SituationAlertCauseVehicleblockingtrack              SituationAlertCause = "vehicleBlockingTrack"
	SituationAlertCauseVehiclefailure                    SituationAlertCause = "vehicleFailure"
	SituationAlertCauseVehicleontheline                  SituationAlertCause = "vehicleOnTheLine"
	SituationAlertCauseVehiclestruckanimal               SituationAlertCause = "vehicleStruckAnimal"
	SituationAlertCauseVehiclestruckobject               SituationAlertCause = "vehicleStruckObject"
	SituationAlertCauseViaductfailure                    SituationAlertCause = "viaductFailure"
	SituationAlertCauseWaitingfortransferpassengers      SituationAlertCause = "waitingForTransferPassengers"
	SituationAlertCauseWaterlogged                       SituationAlertCause = "waterlogged"
	SituationAlertCauseWheelimpactload                   SituationAlertCause = "wheelImpactLoad"
	SituationAlertCauseWheelproblem                      SituationAlertCause = "wheelProblem"
	SituationAlertCauseWildlandfire                      SituationAlertCause = "wildlandFire"
	SituationAlertCauseWorktorule                        SituationAlertCause = "workToRule"
)

func (*SituationAlertCause) FromProto

func (ac *SituationAlertCause) FromProto(value any) error

func (*SituationAlertCause) FromString

func (alertCause *SituationAlertCause) FromString(s string) error

func (SituationAlertCause) ToProto

func (ac SituationAlertCause) ToProto(dest any) error

type SituationBroadcastEvent

type SituationBroadcastEvent struct {
	SituationId SituationId
}

type SituationCondition

type SituationCondition string
const (
	SituationConditionAdditionalRide              SituationCondition = "additionalRide"
	SituationConditionAdditionalService           SituationCondition = "additionalService"
	SituationContitionAdditionalStop              SituationCondition = "additionalStop"
	SituationConditionAltered                     SituationCondition = "altered"
	SituationConditionArrivesEarly                SituationCondition = "arrivesEarly"
	SituationConditionBoarding                    SituationCondition = "boarding"
	SituationConditionCancelled                   SituationCondition = "cancelled"
	SituationConditionChangeOfPlatform            SituationCondition = "changeOfPlatform"
	SituationConditionDelay                       SituationCondition = "delay"
	SituationConditionDelayed                     SituationCondition = "delayed"
	SituationConditionDiscontinuedOperation       SituationCondition = "discontinuedOperation"
	SituationConditionDisrupted                   SituationCondition = "disrupted"
	SituationConditionDisruption                  SituationCondition = "disruption"
	SituationConditionDisturbanceRectified        SituationCondition = "disturbanceRectified"
	SituationConditionDiverted                    SituationCondition = "diverted"
	SituationConditionExtendedService             SituationCondition = "extendedService"
	SituationConditionFullLengthService           SituationCondition = "fullLengthService"
	SituationConditionGoToGate                    SituationCondition = "goToGate"
	SituationConditionIntermittentService         SituationCondition = "intermittentService"
	SituationConditionIrregularTraffic            SituationCondition = "irregularTraffic"
	SituationConditionLimitedOperation            SituationCondition = "limitedOperation"
	SituationConditionLineCancellation            SituationCondition = "lineCancellation"
	SituationConditionMajorDelays                 SituationCondition = "majorDelays"
	SituationConditionMinorDelays                 SituationCondition = "minorDelays"
	SituationConditionNormalService               SituationCondition = "normalService"
	SituationConditionNoService                   SituationCondition = "noService"
	SituationConditionOnTime                      SituationCondition = "onTime"
	SituationConditionOperationTimeExtension      SituationCondition = "operationTimeExtension"
	SituationConditionReplacementRide             SituationCondition = "replacementRide"
	SituationConditionReplacementService          SituationCondition = "replacementService"
	SituationConditionReplacementTransport        SituationCondition = "replacementTransport"
	SituationConditionShortFormedService          SituationCondition = "shortFormedService"
	SituationConditionShuttleService              SituationCondition = "shuttleService"
	SituationConditionSpecialService              SituationCondition = "specialService"
	SituationConditionSplittingTrain              SituationCondition = "splittingTrain"
	SituationConditionStopCancelled               SituationCondition = "stopCancelled"
	SituationConditionStopMove                    SituationCondition = "stopMoved"
	SituationConditionStopOnDemand                SituationCondition = "stopOnDemand"
	SituationConditionSubstitutedStop             SituationCondition = "substitutedStop"
	SituationConditionTemporarilyNonStopping      SituationCondition = "temporarilyNonStopping"
	SituationConditionTemporaryStopplace          SituationCondition = "temporaryStopplace"
	SituationConditionTrainShortened              SituationCondition = "trainShortened"
	SituationConditionTripCancellation            SituationCondition = "tripCancellation"
	SituationConditionUndefinedServiceInformation SituationCondition = "undefinedServiceInformation"
	SituationConditionUndefinedStatus             SituationCondition = "undefinedStatus"
	SituationConditionUnknown                     SituationCondition = "unknown"
	SituationConditionWagonOrderChanged           SituationCondition = "wagonOrderChanged"
)

func (*SituationCondition) FromProto

func (c *SituationCondition) FromProto(value any) error

func (*SituationCondition) FromString

func (condition *SituationCondition) FromString(c string) error

func (SituationCondition) ToProto

func (c SituationCondition) ToProto(dest any) error

type SituationId

type SituationId string

type SituationLinkContent

type SituationLinkContent string
const (
	SituationLinkContentAdvice      SituationLinkContent = "advice"
	SituationLinkContentDetails     SituationLinkContent = "details"
	SituationLinkContentOther       SituationLinkContent = "other"
	SituationLinkContentRelatedSite SituationLinkContent = "relatedSite"
	SituationLinkContentTimetable   SituationLinkContent = "timetable"
)

func (*SituationLinkContent) FromString

func (lc *SituationLinkContent) FromString(s string) error

type SituationProgress

type SituationProgress string
const (
	SituationProgressDraft           SituationProgress = "draft"
	SituationProgressPendingApproval SituationProgress = "pendingApproval"
	SituationProgressApprovedDraft   SituationProgress = "approvedDraft"
	SituationProgressOpend           SituationProgress = "open"
	SituationProgressPublished       SituationProgress = "published"
	SituationProgressClosing         SituationProgress = "closing"
	SituationProgressClosed          SituationProgress = "closed"
)

func (*SituationProgress) FromString

func (progress *SituationProgress) FromString(s string) error

type SituationReality

type SituationReality string
const (
	SituationRealityReal              SituationReality = "real"
	SituationRealitySecurityExercise  SituationReality = "securityExercise"
	SituationRealityTechnicalExercise SituationReality = "technicalExercise"
	SituationRealityTest              SituationReality = "test"
)

func (*SituationReality) FromString

func (reality *SituationReality) FromString(s string) error

type SituationScopeType

type SituationScopeType string
const (
	SituationScopeTypeGeneral        SituationScopeType = "general"
	SituationScopeTypeOperator       SituationScopeType = "operator"
	SituationScopeTypeNetwork        SituationScopeType = "network"
	SituationScopeTypeRoute          SituationScopeType = "route"
	SituationScopeTypeLine           SituationScopeType = "line"
	SituationScopeTypePlace          SituationScopeType = "place"
	SituationScopeTypeStopPlace      SituationScopeType = "stopPlace"
	SituationScopeTypeStopPoint      SituationScopeType = "stopPoint"
	SituationScopeTypeVehicleJourney SituationScopeType = "VehicleJourney"
)

func (*SituationScopeType) FromString

func (sc *SituationScopeType) FromString(s string) error

type SituationSeverity

type SituationSeverity string
const (
	SituationSeverityNoImpact   SituationSeverity = "noImpact"
	SituationSeverityVerySlight SituationSeverity = "verySlight"
	SituationSeveritySlight     SituationSeverity = "slight"
	SituationSeverityNormal     SituationSeverity = "normal"
	SituationSeveritySevere     SituationSeverity = "severe"
	SituationSeverityUndefinded SituationSeverity = "undefined"
	SituationSeverityUnknown    SituationSeverity = "unknown"
	SituationSeverityVerySevere SituationSeverity = "verySevere"
)

func (*SituationSeverity) FromProto

func (s *SituationSeverity) FromProto(value any) error

func (*SituationSeverity) FromString

func (severity *SituationSeverity) FromString(s string) error

func (SituationSeverity) ToProto

func (s SituationSeverity) ToProto(dest any) error

type SituationType

type SituationType string

type SituationUpdateEvent

type SituationUpdateEvent struct {
	CreatedAt     time.Time
	RecordedAt    time.Time
	SituationCode Code

	Origin                  string
	Format                  string
	ProducerRef             string
	ParticipantRef          string
	VersionedAt             time.Time
	ValidityPeriods         []*TimeRange
	PublicationWindows      []*TimeRange
	Keywords                []string
	InternalTags            []string
	AlertCause              SituationAlertCause
	Progress                SituationProgress
	Reality                 SituationReality
	Severity                SituationSeverity
	ReportType              ReportType
	Version                 int
	Summary                 *TranslatedString
	Description             *TranslatedString
	Affects                 []Affect
	Consequences            []*Consequence
	PublishToWebActions     []*PublishToWebAction
	PublishToMobileActions  []*PublishToMobileAction
	PublishToDisplayActions []*PublishToDisplayAction
	InfoLinks               []*InfoLink
	// contains filtered or unexported fields
}

func (*SituationUpdateEvent) EventKind

func (ue *SituationUpdateEvent) EventKind() EventKind

func (*SituationUpdateEvent) Id

func (*SituationUpdateEvent) SetId

func (*SituationUpdateEvent) TestFindAffectByLineId

func (event *SituationUpdateEvent) TestFindAffectByLineId(lineId LineId) (bool, *AffectedLine)

func (*SituationUpdateEvent) TestFindAffectByStopAreaId

func (event *SituationUpdateEvent) TestFindAffectByStopAreaId(stopAreaId StopAreaId) (bool, *AffectedStopArea)

type SituationUpdateRequestId

type SituationUpdateRequestId string

type Situations

func NewMemorySituations

func NewMemorySituations() Situations

type StatusUpdateEvent

type StatusUpdateEvent struct {
	StopAreaId StopAreaId
	Partner    string
	Status     bool
}

func NewStatusUpdateEvent

func NewStatusUpdateEvent(stopAreaId StopAreaId, partner string, status bool) *StatusUpdateEvent

func (*StatusUpdateEvent) EventKind

func (ue *StatusUpdateEvent) EventKind() EventKind

type StopArea

type StopArea struct {
	Collectable
	CollectedUntil time.Time

	References References
	CodeConsumer
	Origins       *StopAreaOrigins
	RawAttributes RawAttributes
	ReferentId    StopAreaId `json:",omitempty"`

	ParentId          StopAreaId `json:",omitempty"`
	Name              string
	LineIds           StopAreaLineIds `json:"Lines,omitempty"`
	Latitude          float64         `json:",omitempty"`
	Longitude         float64         `json:",omitempty"`
	CollectChildren   bool
	CollectSituations bool
	CollectedAlways   bool
	Monitored         bool
	// contains filtered or unexported fields
}

func NewStopArea

func NewStopArea(model Model) *StopArea

func (*StopArea) Attribute

func (stopArea *StopArea) Attribute(key string) (value string, present bool)

func (*StopArea) GetName

func (stopArea *StopArea) GetName() string

func (*StopArea) Id

func (stopArea *StopArea) Id() StopAreaId

func (*StopArea) Lines

func (stopArea *StopArea) Lines() []*Line

func (*StopArea) MarshalJSON

func (stopArea *StopArea) MarshalJSON() ([]byte, error)

func (*StopArea) ModelId

func (stopArea *StopArea) ModelId() string

func (*StopArea) Parent

func (stopArea *StopArea) Parent() (*StopArea, bool)

func (*StopArea) Reference

func (stopArea *StopArea) Reference(key string) (Reference, bool)

func (*StopArea) Referent

func (stopArea *StopArea) Referent() (*StopArea, bool)

func (*StopArea) ReferentOrSelfCode

func (stopArea *StopArea) ReferentOrSelfCode(codeSpace string) (Code, bool)

func (*StopArea) Save

func (stopArea *StopArea) Save() bool

func (*StopArea) SetPartnerStatus

func (stopArea *StopArea) SetPartnerStatus(partner string, status bool)

func (*StopArea) UnmarshalJSON

func (stopArea *StopArea) UnmarshalJSON(data []byte) error

type StopAreaGroup

type StopAreaGroup struct {
	Name        string       `json:",omitempty"`
	ShortName   string       `json:",omitempty"`
	StopAreaIds []StopAreaId `json:",omitempty"`
	// contains filtered or unexported fields
}

func NewStopAreaGroup

func NewStopAreaGroup(model Model) *StopAreaGroup

func (*StopAreaGroup) Id

func (stopAreaGroup *StopAreaGroup) Id() StopAreaGroupId

func (*StopAreaGroup) MarshalJSON

func (stopAreaGroup *StopAreaGroup) MarshalJSON() ([]byte, error)

func (*StopAreaGroup) Save

func (stopAreaGroup *StopAreaGroup) Save() bool

type StopAreaGroupId

type StopAreaGroupId string

type StopAreaGroups

type StopAreaGroups interface {
	ModelManager[StopAreaGroupId, *StopAreaGroup]
	Loadable

	FindByShortName(string) (*StopAreaGroup, bool)
}

func NewMemoryStopAreaGroups

func NewMemoryStopAreaGroups() StopAreaGroups

type StopAreaId

type StopAreaId string

type StopAreaInfo

type StopAreaInfo struct {
	Code      string
	Name      string
	Monitored bool
}

StopAreaInfo is a minimal description of a stop area for broadcasting: its code in the requested code space plus the display fields, without the full model object.

type StopAreaLineIds

type StopAreaLineIds []LineId

func (*StopAreaLineIds) Add

func (ids *StopAreaLineIds) Add(id LineId)

func (StopAreaLineIds) Contains

func (ids StopAreaLineIds) Contains(id LineId) bool

func (StopAreaLineIds) Copy

func (ids StopAreaLineIds) Copy() (t StopAreaLineIds)

type StopAreaOrigins

type StopAreaOrigins struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewStopAreaOrigins

func NewStopAreaOrigins() *StopAreaOrigins

func (*StopAreaOrigins) AllOrigin

func (origins *StopAreaOrigins) AllOrigin() map[string]bool

func (*StopAreaOrigins) Copy

func (origins *StopAreaOrigins) Copy() *StopAreaOrigins

func (*StopAreaOrigins) MarshalJSON

func (origins *StopAreaOrigins) MarshalJSON() ([]byte, error)

func (*StopAreaOrigins) Monitored

func (origins *StopAreaOrigins) Monitored() (monitored bool)

func (*StopAreaOrigins) NewOrigin

func (origins *StopAreaOrigins) NewOrigin(partner string)

func (*StopAreaOrigins) Origin

func (origins *StopAreaOrigins) Origin(partner string) (status bool, present bool)

func (*StopAreaOrigins) PartnersKO

func (origins *StopAreaOrigins) PartnersKO() (partnersSlice []string)

func (*StopAreaOrigins) PartnersLost

func (origins *StopAreaOrigins) PartnersLost(comparedOrigins *StopAreaOrigins) (partnersLost []string, r bool)

func (*StopAreaOrigins) SetOriginsFromMap

func (origins *StopAreaOrigins) SetOriginsFromMap(originMap map[string]bool)

func (*StopAreaOrigins) SetPartnerStatus

func (origins *StopAreaOrigins) SetPartnerStatus(partner string, status bool)

type StopAreaUpdateEvent

type StopAreaUpdateEvent struct {
	Origin string

	Code            Code
	ParentCode      Code
	Name            string
	CollectedAlways bool
	Longitude       float64
	Latitude        float64
}

func NewStopAreaUpdateEvent

func NewStopAreaUpdateEvent() *StopAreaUpdateEvent

func (*StopAreaUpdateEvent) EventKind

func (ue *StopAreaUpdateEvent) EventKind() EventKind

type StopAreas

type StopAreas interface {
	ModelManager[StopAreaId, *StopArea]
	CodeHandler[*StopArea]
	Broadcaster[StopMonitoringBroadcastEvent]
	Loadable

	FindByLineId(LineId) []*StopArea
	FindByOrigin(string) []StopAreaId
	FindAllValues() []StopArea
	FindFamily(StopAreaId) []StopAreaId
	FindByReferentId(StopAreaId) []*StopArea
	FindAscendants(StopAreaId) []*StopArea
	FindAscendantsWithCodeSpace(StopAreaId, string) []Code
	ResolveStopAreaInfo(StopAreaId, string, bool) (StopAreaInfo, bool)
	ResolveStopAreaInfoByCode(Code, string, bool) (StopAreaInfo, bool)
	CollectableStopAreas(time.Time) []*StopArea
}

func NewMemoryStopAreas

func NewMemoryStopAreas() StopAreas

type StopMonitoringBroadcastEvent

type StopMonitoringBroadcastEvent struct {
	SubscriptionId string
	ModelId        string
	ModelType      string
}

type StopVisit

type StopVisit struct {
	RecordedAt time.Time

	References    References
	RawAttributes RawAttributes
	Schedules     *schedules.StopVisitSchedules
	CodeConsumer
	VehicleJourneyId VehicleJourneyId         `json:",omitempty"`
	StopAreaId       StopAreaId               `json:",omitempty"`
	ArrivalStatus    StopVisitArrivalStatus   `json:",omitempty"`
	DepartureStatus  StopVisitDepartureStatus `json:",omitempty"`
	DataFrameRef     string                   `json:",omitempty"`

	Origin       string
	PassageOrder int `json:",omitempty"`

	VehicleAtStop bool
	// contains filtered or unexported fields
}

func NewStopVisit

func NewStopVisit(model Model) *StopVisit

func (*StopVisit) Attribute

func (stopVisit *StopVisit) Attribute(key string) (string, bool)

func (*StopVisit) Collected

func (stopVisit *StopVisit) Collected(t time.Time)

func (*StopVisit) CollectedAt

func (stopVisit *StopVisit) CollectedAt() time.Time

func (*StopVisit) Id

func (stopVisit *StopVisit) Id() StopVisitId

func (*StopVisit) IsArchivable

func (stopVisit *StopVisit) IsArchivable() bool

func (*StopVisit) IsCancelled

func (stopVisit *StopVisit) IsCancelled() bool

func (*StopVisit) IsCollected

func (stopVisit *StopVisit) IsCollected() bool

func (*StopVisit) IsRecordable

func (stopVisit *StopVisit) IsRecordable(now time.Time) bool

func (*StopVisit) MarshalJSON

func (stopVisit *StopVisit) MarshalJSON() ([]byte, error)

func (*StopVisit) ModelId

func (stopVisit *StopVisit) ModelId() string

func (*StopVisit) NotCollected

func (stopVisit *StopVisit) NotCollected(notCollectedAt time.Time)

func (*StopVisit) Reference

func (stopVisit *StopVisit) Reference(key string) (Reference, bool)

func (*StopVisit) ReferenceArrivalTime

func (stopVisit *StopVisit) ReferenceArrivalTime() time.Time

func (*StopVisit) ReferenceDepartureTime

func (stopVisit *StopVisit) ReferenceDepartureTime() time.Time

func (*StopVisit) ReferenceTime

func (stopVisit *StopVisit) ReferenceTime() time.Time

func (*StopVisit) Save

func (stopVisit *StopVisit) Save() bool

func (*StopVisit) StopArea

func (stopVisit *StopVisit) StopArea() *StopArea

func (*StopVisit) UnmarshalJSON

func (stopVisit *StopVisit) UnmarshalJSON(data []byte) error

func (*StopVisit) VehicleJourney

func (stopVisit *StopVisit) VehicleJourney() *VehicleJourney

type StopVisitArchiver

type StopVisitArchiver struct {
	Model     Model
	StopVisit *StopVisit
}

func (*StopVisitArchiver) Archive

func (sva *StopVisitArchiver) Archive()

func (*StopVisitArchiver) StopArea

func (sva *StopVisitArchiver) StopArea() *StopArea

func (*StopVisitArchiver) VehicleJourney

func (sva *StopVisitArchiver) VehicleJourney() *VehicleJourney

type StopVisitArrivalStatus

type StopVisitArrivalStatus string
const (
	STOP_VISIT_ARRIVAL_ARRIVED      StopVisitArrivalStatus = "arrived"
	STOP_VISIT_ARRIVAL_ONTIME       StopVisitArrivalStatus = "onTime"
	STOP_VISIT_ARRIVAL_EARLY        StopVisitArrivalStatus = "early"
	STOP_VISIT_ARRIVAL_DELAYED      StopVisitArrivalStatus = "delayed"
	STOP_VISIT_ARRIVAL_CANCELLED    StopVisitArrivalStatus = "cancelled"
	STOP_VISIT_ARRIVAL_NOREPORT     StopVisitArrivalStatus = "noreport"
	STOP_VISIT_ARRIVAL_MISSED       StopVisitArrivalStatus = "missed"
	STOP_VISIT_ARRIVAL_NOT_EXPECTED StopVisitArrivalStatus = "notExpected"
	STOP_VISIT_ARRIVAL_UNDEFINED    StopVisitArrivalStatus = ""
)

func (StopVisitArrivalStatus) Arrived

func (svas StopVisitArrivalStatus) Arrived() bool

type StopVisitDepartureStatus

type StopVisitDepartureStatus string
const (
	STOP_VISIT_DEPARTURE_ONTIME    StopVisitDepartureStatus = "onTime"
	STOP_VISIT_DEPARTURE_EARLY     StopVisitDepartureStatus = "early"
	STOP_VISIT_DEPARTURE_DELAYED   StopVisitDepartureStatus = "delayed"
	STOP_VISIT_DEPARTURE_CANCELLED StopVisitDepartureStatus = "cancelled"
	STOP_VISIT_DEPARTURE_NOREPORT  StopVisitDepartureStatus = "noreport"
	STOP_VISIT_DEPARTURE_DEPARTED  StopVisitDepartureStatus = "departed"
	STOP_VISIT_DEPARTURE_UNDEFINED StopVisitDepartureStatus = ""
)

func (StopVisitDepartureStatus) Departed

func (svds StopVisitDepartureStatus) Departed() bool

type StopVisitId

type StopVisitId string

type StopVisitSelector

type StopVisitSelector func(*StopVisit) bool

func CompositeStopVisitSelector

func CompositeStopVisitSelector(selectors []StopVisitSelector) StopVisitSelector

func StopVisitSelectByStopAreaId

func StopVisitSelectByStopAreaId(stopAreaId StopAreaId) StopVisitSelector

func StopVisitSelectorAfterTime

func StopVisitSelectorAfterTime(startTime time.Time) StopVisitSelector

func StopVisitSelectorBeforeTime

func StopVisitSelectorBeforeTime(endTime time.Time) StopVisitSelector

func StopVisitSelectorByLines

func StopVisitSelectorByLines(lineIds []LineId) StopVisitSelector

func StopVisitSelectorByTime

func StopVisitSelectorByTime(startTime, endTime time.Time) StopVisitSelector

type StopVisitUpdateEvent

type StopVisitUpdateEvent struct {
	RecordedAt time.Time
	Schedules  *schedules.StopVisitSchedules

	SiriXML *sxml.XMLMonitoredStopVisit

	VehicleJourneyCode Code
	StopAreaCode       Code
	Code               Code
	CodeSpace          string
	DepartureStatus    StopVisitDepartureStatus
	ArrivalStatus      StopVisitArrivalStatus
	DataFrameRef       string
	Origin             string
	PassageOrder       int
	Monitored          bool
	VehicleAtStop      bool
	// contains filtered or unexported fields
}

func NewStopVisitUpdateEvent

func NewStopVisitUpdateEvent() *StopVisitUpdateEvent

func (*StopVisitUpdateEvent) EventKind

func (ue *StopVisitUpdateEvent) EventKind() EventKind

func (*StopVisitUpdateEvent) RawAttributes

func (ue *StopVisitUpdateEvent) RawAttributes() RawAttributes

func (*StopVisitUpdateEvent) References

func (ue *StopVisitUpdateEvent) References() References

type StopVisits

type StopVisits interface {
	ModelManager[StopVisitId, *StopVisit]
	CodeHandler[*StopVisit]
	Broadcaster[StopMonitoringBroadcastEvent]
	Loadable

	FindByVehicleJourneyId(VehicleJourneyId) []*StopVisit
	FindByVehicleJourneyIdAndStopVisitOrder(VehicleJourneyId, int) *StopVisit
	VehicleJourneyHasStopVisits(VehicleJourneyId) bool
	VehicleJourneyStopVisitsAllCancelled(VehicleJourneyId) bool
	FindByVehicleJourneyIdAfter(VehicleJourneyId, time.Time) []*StopVisit
	FindByVehicleJourneyIdAfterUnsorted(VehicleJourneyId, time.Time) []*StopVisit
	FindFollowingByVehicleJourneyId(VehicleJourneyId) []*StopVisit
	StopVisitsLenByVehicleJourney(VehicleJourneyId) int
	FindByStopAreaId(StopAreaId) []*StopVisit
	FindMonitoredByOriginByStopAreaId(StopAreaId, string) []*StopVisit
	FindFollowingByStopAreaId(StopAreaId) []*StopVisit
	FindFollowingByStopAreaIds([]StopAreaId) []*StopVisit
	UnsafeFindAll() []*StopVisit
	FindByVehicleJourneyIdAndStopAreaId(VehicleJourneyId, StopAreaId) []StopVisitId
	FindAllAfter(time.Time) []*StopVisit
	DeleteMultiple([]*StopVisit) bool
}

func NewMemoryStopVisits

func NewMemoryStopVisits() StopVisits

type TimeRange

type TimeRange struct {
	StartTime time.Time
	EndTime   time.Time
}

func (*TimeRange) FromProto

func (t *TimeRange) FromProto(value any) error

func (*TimeRange) MarshalJSON

func (t *TimeRange) MarshalJSON() ([]byte, error)

func (*TimeRange) Overlaps

func (t *TimeRange) Overlaps(other *TimeRange) bool

func (*TimeRange) ToProto

func (t *TimeRange) ToProto(dest any) error

func (*TimeRange) UnmarshalJSON

func (t *TimeRange) UnmarshalJSON(data []byte) error

type TranslatedString

type TranslatedString struct {
	DefaultValue string            `json:",omitempty"`
	Translations map[string]string `json:",omitempty"`
}

func NewTranslatedStringFromMap

func NewTranslatedStringFromMap(translations map[string]string) *TranslatedString

func NewTranslatedStringFromProto

func NewTranslatedStringFromProto(value []*gtfs.TranslatedString_Translation) *TranslatedString

func (*TranslatedString) Copy

func (translatedString *TranslatedString) Copy() (t *TranslatedString)

func (*TranslatedString) ToProto

func (ts *TranslatedString) ToProto(dest *gtfs.TranslatedString)

type UpdateEvent

type UpdateEvent interface {
	EventKind() EventKind
}

type UpdateManager

type UpdateManager struct {
	clock.ClockConsumer
	uuid.UUIDConsumer
	// contains filtered or unexported fields
}

func (*UpdateManager) Update

func (manager *UpdateManager) Update(events []UpdateEvent)

type Vehicle

type Vehicle struct {
	RecordedAtTime time.Time
	ValidUntilTime time.Time

	CodeConsumer
	RawAttributes    RawAttributes
	StopAreaId       StopAreaId       `json:",omitempty"`
	Occupancy        string           `json:",omitempty"`
	LineId           LineId           `json:",omitempty"`
	VehicleJourneyId VehicleJourneyId `json:",omitempty"`
	DriverRef        string           `json:",omitempty"`

	NextStopVisitId StopVisitId `json:",omitempty"`
	LinkDistance    float64     `json:",omitempty"`
	Percentage      float64     `json:",omitempty"`
	Longitude       float64     `json:",omitempty"`
	Latitude        float64     `json:",omitempty"`
	Bearing         float64     `json:",omitempty"`
	// contains filtered or unexported fields
}

func NewVehicle

func NewVehicle(model Model) *Vehicle

func (*Vehicle) GetLineId

func (vehicle *Vehicle) GetLineId() LineId

func (*Vehicle) Id

func (vehicle *Vehicle) Id() VehicleId

func (*Vehicle) MarshalJSON

func (vehicle *Vehicle) MarshalJSON() ([]byte, error)

func (*Vehicle) ModelId

func (vehicle *Vehicle) ModelId() string

func (*Vehicle) Save

func (vehicle *Vehicle) Save() bool

func (*Vehicle) UnmarshalJSON

func (vehicle *Vehicle) UnmarshalJSON(data []byte) error

func (*Vehicle) VehicleJourney

func (vehicle *Vehicle) VehicleJourney() *VehicleJourney

type VehicleBroadcastEvent

type VehicleBroadcastEvent struct {
	SubscriptionId string
	ModelId        string
	ModelType      string
}

type VehicleId

type VehicleId string

type VehicleJourney

type VehicleJourney struct {
	References References

	RawAttributes RawAttributes
	CodeConsumer
	LineId LineId `json:",omitempty"`
	Name   string `json:",omitempty"`

	DestinationName         string `json:",omitempty"`
	Occupancy               string `json:",omitempty"`
	DirectionType           string `json:",omitempty"`
	Origin                  string `json:",omitempty"`
	OriginName              string `json:",omitempty"`
	Monitored               bool
	HasCompleteStopSequence bool
	Cancellation            bool
	DetailedStopVisits      []DetailedStopVisit `json:"DetailedStopVisits,omitempty"`
	AimedStopVisitCount     int                 `json:",omitempty"`
	// contains filtered or unexported fields
}

func NewVehicleJourney

func NewVehicleJourney(model Model) *VehicleJourney

func (*VehicleJourney) Attribute

func (vehicleJourney *VehicleJourney) Attribute(key string) (string, bool)

func (*VehicleJourney) GetName

func (vehicleJourney *VehicleJourney) GetName() string

func (*VehicleJourney) GtfsDirectionId

func (vehicleJourney *VehicleJourney) GtfsDirectionId() *uint32

func (*VehicleJourney) Id

func (vehicleJourney *VehicleJourney) Id() VehicleJourneyId

func (*VehicleJourney) IsCancelled

func (vehicleJouenry *VehicleJourney) IsCancelled() bool

func (*VehicleJourney) IsComplete

func (VehicleJourney *VehicleJourney) IsComplete() bool

func (*VehicleJourney) Line

func (vehicleJourney *VehicleJourney) Line() *Line

func (*VehicleJourney) MarshalJSON

func (vehicleJourney *VehicleJourney) MarshalJSON() ([]byte, error)

func (*VehicleJourney) ModelId

func (vehicleJourney *VehicleJourney) ModelId() string

func (*VehicleJourney) Reference

func (vehicleJourney *VehicleJourney) Reference(key string) (Reference, bool)

func (*VehicleJourney) Save

func (vehicleJourney *VehicleJourney) Save() bool

func (*VehicleJourney) ToFormat

func (vehicleJourney *VehicleJourney) ToFormat() []string

func (*VehicleJourney) UnmarshalJSON

func (vehicleJourney *VehicleJourney) UnmarshalJSON(data []byte) error

func (*VehicleJourney) Vehicle

func (vehicleJourney *VehicleJourney) Vehicle() *Vehicle

type VehicleJourneyId

type VehicleJourneyId string

type VehicleJourneyUpdateEvent

type VehicleJourneyUpdateEvent struct {
	SiriXML      *sxml.XMLMonitoredVehicleJourney
	Cancellation bool
	// Set only by EstimatedTimetable, to tell "no cancellation info" apart from an
	// explicit Cancellation=false.
	CancellationProvided  bool
	Code                  Code
	LineCode              Code
	Direction             string
	DestinationName       string
	DestinationRef        string
	DirectionType         string
	Occupancy             string
	OriginName            string
	CodeSpace             string
	OriginRef             string
	Origin                string
	Monitored             bool
	FromVehicleMonitoring bool
	// contains filtered or unexported fields
}

func NewVehicleJourneyUpdateEvent

func NewVehicleJourneyUpdateEvent() *VehicleJourneyUpdateEvent

func (*VehicleJourneyUpdateEvent) EventKind

func (ue *VehicleJourneyUpdateEvent) EventKind() EventKind

func (*VehicleJourneyUpdateEvent) RawAttributes

func (ue *VehicleJourneyUpdateEvent) RawAttributes() RawAttributes

func (*VehicleJourneyUpdateEvent) References

func (ue *VehicleJourneyUpdateEvent) References() References

type VehicleJourneys

type VehicleJourneys interface {
	ModelManager[VehicleJourneyId, *VehicleJourney]
	CodeHandler[*VehicleJourney]
	Loadable

	FindByLineId(LineId) []*VehicleJourney
	FullVehicleJourneyExistBySubscriptionId(string, VehicleJourneyId) bool
	SetFullVehicleJourneyBySubscriptionId(string, VehicleJourneyId)
	DeleteById(VehicleJourneyId) bool
}

func NewMemoryVehicleJourneys

func NewMemoryVehicleJourneys() VehicleJourneys

type VehicleUpdateEvent

type VehicleUpdateEvent struct {
	SiriXML            *sxml.XMLVehicleActivity
	ValidUntilTime     time.Time
	RecordedAt         time.Time
	Code               Code
	StopAreaCode       Code
	VehicleJourneyCode Code
	Occupancy          string
	DriverRef          string
	Origin             string
	Longitude          float64
	Latitude           float64
	Bearing            float64
	Percentage         float64
	LinkDistance       float64
	NextStopPointOrder int
	// contains filtered or unexported fields
}

func NewVehicleUpdateEvent

func NewVehicleUpdateEvent() *VehicleUpdateEvent

func (*VehicleUpdateEvent) EventKind

func (ue *VehicleUpdateEvent) EventKind() EventKind

func (*VehicleUpdateEvent) RawAttributes

func (ue *VehicleUpdateEvent) RawAttributes() RawAttributes

type Vehicles

type Vehicles interface {
	ModelManager[VehicleId, *Vehicle]
	CodeHandler[*Vehicle]
	Broadcaster[VehicleBroadcastEvent]

	FindByLineId(LineId) []*Vehicle
	FindByVehicleJourneyId(VehicleJourneyId) (*Vehicle, bool)
	FindByNextStopVisitId(StopVisitId) (*Vehicle, bool)
}

func NewMemoryVehicles

func NewMemoryVehicles() Vehicles

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL