# Struktura rozkładu jazdy dla pojazdów
```plantuml
interface ElementZone {
+element: "zone"
+name: string
}
interface ElementRide {
+element: "ride"
+type: string
}
interface ElementStreet {
+element: "street"
+id: string
+name: string
}
interface ElementPlace {
+element: "place"
+id: string
+special_id: string
+special_name: string
+name: string
+name_eng: string
+type: "urban" | "suburban"
}
interface ElementStop {
+element: "stop"
+id: string
+gps_x: number
+gps_y: number
+latitude: number
+longitude: number
+pictogram: string
+name_eng: string
+name: string
+stake_id: string
+arc_id: number
+rj_stop_id: string
+type: TypeStop
+flags: FlagsStop
+zone_border: boolean
+distance: number
+time: number
+time_string: string
+time_type: "departure" | "arrival"
}
interface Element extends ElementStop, ElementPlace, ElementStreet, ElementRide, ElementZone {}
interface Route {
+route_name: string
+route_type: string
+route_types: string[]
+line: string
+direction: string
+manually_set: ManualRoute
+departure_at: string
+arrival_at: string
+elements: Element[]
+variant_from: string
+variant_through: string
+variant_to: string
+variant_type: string
}
interface Sched {
+line: string
+line_type: string[]
+line_kind: string
+multilanguage: boolean
+brigade: string
+daytype: string
+valid_since: string
+routes: Route[]
+route_types: string[]
}
Sched --> "*" Route
Route --> "*" Element
@enduml
```
## Sched
### Wartości biznesowe
1. dostarcza informacje o nazwie brygady
2. dostarcza informacje o nazwie lini
3. dostarcza informacje o typie lini
4. dostarcza listę tras
## Route
### Wartości biznesowe
1. dostarcza informacje o kierunku
2. dostarcza informacje o typie trasy
3. dostarcza infromacje dla kierowcy o nazwie trasy
4. dostarcza elementy trasy
## ElementStop
### Wartości biznesowe
1. dostarcza informacje gdzie pasażerowie mogą wsiąść i wysiąść do pojazdu
2. dostarcza informacje o nazwie przystanku w języku natywnym i języku angielskim
3. dostarcza informacje o czasie, kiedy pojazd pojawi się na danym przystanku
4. dostarcza informacje o piktogramie, jaki ma być użyty gdy pojazd jedzie na dany przystanek
5. dostarcza informacje o typie i flagach
6. dostarcza informacje o dystansie jaki jest do pokonania od poprzedniego przystanku
## ElementZone
### Wartości biznesowe
1. określa strefy biletowe
```json
elements: [
{
element: 'zone',
id: '3902',
name: 'STREFA 2',
name_eng: 'ZONE 2'
},
{
element: 'stop',
id: '4221',
gps_x: null,
gps_y: null,
latitude: 52.190379,
longitude: 20.861991,
pictogram: null,
name_eng: 'URSUS-NIEDŹWIADEK',
stake_id: '04',
arc_id: null,
rj_stop_id: '634e6d1d44416_401_DP_6_TZ-URN7_22.55_4221_04_22:55',
name: 'URSUS-NIEDŹWIADEK',
type: 'getting_on',
flags: '',
zone_border: false,
distance: 226,
time: 0,
time_string: '22:55',
time_type: 'departure'
},
{
element: 'zone',
id: '3901',
name: 'STREFA 1',
name_eng: 'ZONE 1'
},
{
element: 'stop',
id: '4207',
gps_x: null,
gps_y: null,
latitude: 52.190944,
longitude: 20.865595,
pictogram: null,
name_eng: 'ORLĄT LWOWSKICH',
stake_id: '01',
arc_id: null,
rj_stop_id: '634e6d1d44416_401_DP_6_TZ-URN7_22.56_4207_01_22:55',
name: 'ORLĄT LWOWSKICH',
type: 'permanent',
flags: '',
zone_border: false,
distance: 274,
time: 1,
time_string: '22:56',
time_type: 'departure'
}
]
```
## ElementRide
### Wartości biznesowe
1. określa zmianę na trasie. np oznaczenie trasy zmienionej, nowej itp.
```json
elements: [
{
element: 'ride',
type: 'detour',
},
{
element: 'stop',
id: '4221',
gps_x: null,
gps_y: null,
latitude: 52.190379,
longitude: 20.861991,
pictogram: null,
name_eng: 'URSUS-NIEDŹWIADEK',
stake_id: '04',
arc_id: null,
rj_stop_id: '634e6d1d44416_401_DP_6_TZ-URN7_22.55_4221_04_22:55',
name: 'URSUS-NIEDŹWIADEK',
type: 'getting_on',
flags: '',
zone_border: false,
distance: 226,
time: 0,
time_string: '22:55',
time_type: 'departure'
},
{
element: 'ride',
type: 'regular',
},
{
element: 'stop',
id: '4207',
gps_x: null,
gps_y: null,
latitude: 52.190944,
longitude: 20.865595,
pictogram: null,
name_eng: 'ORLĄT LWOWSKICH',
stake_id: '01',
arc_id: null,
rj_stop_id: '634e6d1d44416_401_DP_6_TZ-URN7_22.56_4207_01_22:55',
name: 'ORLĄT LWOWSKICH',
type: 'permanent',
flags: '',
zone_border: false,
distance: 274,
time: 1,
time_string: '22:56',
time_type: 'departure'
}
]
```
## ElementStreet
### Wartości biznesowe
1. dostarcza informacji o ulicach do wyświetlania na lcd bocznym
```json
elements: [
{
element: 'street',
id: '1723',
name: 'ORLĄT LWOWSKICH'
},
{
element: 'place',
id: '45',
special_id: '3026',
special_name: '------- WARSZAWA -------',
name: 'URSUS',
name_eng: '',
type: 'urban'
},
{
element: 'stop',
id: '4221',
gps_x: null,
gps_y: null,
latitude: 52.190379,
longitude: 20.861991,
pictogram: null,
name_eng: 'URSUS-NIEDŹWIADEK',
stake_id: '04',
arc_id: null,
rj_stop_id: '634e6d1d44416_401_DP_6_TZ-URN7_22.55_4221_04_22:55',
name: 'URSUS-NIEDŹWIADEK',
type: 'getting_on',
flags: '',
zone_border: false,
distance: 226,
time: 0,
time_string: '22:55',
time_type: 'departure'
},
{
element: 'stop',
id: '4207',
gps_x: null,
gps_y: null,
latitude: 52.190944,
longitude: 20.865595,
pictogram: null,
name_eng: 'ORLĄT LWOWSKICH',
stake_id: '01',
arc_id: null,
rj_stop_id: '634e6d1d44416_401_DP_6_TZ-URN7_22.56_4207_01_22:55',
name: 'ORLĄT LWOWSKICH',
type: 'permanent',
flags: '',
zone_border: false,
distance: 274,
time: 1,
time_string: '22:56',
time_type: 'departure'
},
{
element: 'street',
id: '1243',
name: 'KENIGA'
}
]
```
## ElementPlace
### Wartości biznesowe
1. dostarcza informacji o dzielnicach do wyświetlania na lcd bocznym