package darwin

import "encoding/xml"

type RefLocationRef struct {
	TIPLOC string  `xml:"tpl,attr"`
	Name   string  `xml:"locname,attr"`
	CRS    *string `xml:"crs,attr"`
	TOC    *string `xml:"toc,attr"`
}

type RefTOCRef struct {
	TOC  string  `xml:"toc,attr"`
	Name string  `xml:"tocname,attr"`
	URL  *string `xml:"url,attr"`
}

type RefReason struct {
	Code string `xml:"code,attr"`
	Text string `xml:"reasontext,attr"`
}

type RefVia struct {
	AtCRS      string `xml:"at,attr"`
	DestTIPLOC string `xml:"dest,attr"`
	Loc1TIPLOC string `xml:"loc1,attr"`
	Loc2TIPLOC string `xml:"loc2,attr"`
	Text       string `xml:"viatext,attr"`
}

type RefCISSource struct {
	CISCode string `xml:"code,attr"`
	Name    string `xml:"name,attr"`
}

type PushPortReferenceData struct {
	XMLName xml.Name `xml:"PportTimetableRef"`

	Locations           []RefLocationRef `xml:"LocationRef"`
	TOCs                []RefTOCRef      `xml:"TocRef"`
	LateRunningReasons  []RefReason      `xml:"LateRunningReasons>Reason"`
	CancellationReasons []RefReason      `xml:"CancellationReasons>Reason"`
	Via                 []RefVia         `xml:"Via"`
	CISSource           []RefCISSource   `xml:"CISSource"`
}