@aiaiai-pt/frankctl 0.5.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,709 @@
1
+ # Git-owned Transdev/AveiroBus Pipeline + BackingDataset bundle (issue #600).
2
+ #
3
+ # Prerequisite: apply the stable Source `cira-transdev-aveirobus-gtfs` from an
4
+ # ignored chmod-0600 manifest containing literal S3 credentials. The non-apply
5
+ # Source shape is documented under dev_docs/examples/sources/. This tracked
6
+ # bundle contains no Source document and is safe to apply only after that Source
7
+ # and its eleven Bronze streams exist.
8
+
9
+ apiVersion: frank.platform/v1
10
+ kind: Pipeline
11
+ metadata:
12
+ name: cira_transdev_gtfs_agency
13
+ spec:
14
+ name: cira_transdev_gtfs_agency
15
+ description: Historical Transdev GTFS agency projection; expected rows 1.
16
+ source_ids:
17
+ - cira-transdev-aveirobus-gtfs
18
+ schedule_config:
19
+ type: manual
20
+ steps:
21
+ - name: gtfs_agency_rows
22
+ kind: custom_sql
23
+ params:
24
+ sql: |-
25
+ SELECT trim(cast(agency_id AS varchar)) external_id,
26
+ nullif(trim(cast(agency_name AS varchar)),'') name,
27
+ nullif(trim(cast(agency_url AS varchar)),'') url,
28
+ nullif(trim(cast(agency_timezone AS varchar)),'') timezone,
29
+ nullif(trim(cast(agency_phone AS varchar)),'') phone,
30
+ nullif(trim(cast(agency_lang AS varchar)),'') language
31
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.agency
32
+ WHERE nullif(trim(cast(agency_id AS varchar)),'') IS NOT NULL
33
+ depends_on: []
34
+ emits_to: backing_dataset
35
+ config:
36
+ output_layer: silver
37
+ ---
38
+ apiVersion: frank.platform/v1
39
+ kind: BackingDataset
40
+ metadata:
41
+ name: cira_transdev_gtfs_agency
42
+ spec:
43
+ entity_type_id: gtfs_agency
44
+ entity_type_name: GTFS Agency
45
+ ontology_tenant_id: cira
46
+ pipeline: cira_transdev_gtfs_agency
47
+ sync_mode: manual
48
+ primary_key_column: external_id
49
+ title_key_column: name
50
+ property_mappings:
51
+ - column: external_id
52
+ property: external_id
53
+ type: varchar
54
+ is_primary_key: true
55
+ - column: name
56
+ property: name
57
+ type: varchar
58
+ - column: url
59
+ property: url
60
+ type: varchar
61
+ - column: timezone
62
+ property: timezone
63
+ type: varchar
64
+ - column: phone
65
+ property: phone
66
+ type: varchar
67
+ - column: language
68
+ property: language
69
+ type: varchar
70
+ ---
71
+ apiVersion: frank.platform/v1
72
+ kind: Pipeline
73
+ metadata:
74
+ name: cira_transdev_gtfs_service
75
+ spec:
76
+ name: cira_transdev_gtfs_service
77
+ description: Historical Transdev GTFS service identities, including exception-only services; expected rows 11.
78
+ source_ids:
79
+ - cira-transdev-aveirobus-gtfs
80
+ schedule_config:
81
+ type: manual
82
+ steps:
83
+ - name: gtfs_service_rows
84
+ kind: custom_sql
85
+ params:
86
+ sql: |-
87
+ WITH service_ids AS (
88
+ SELECT service_id
89
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.calendar
90
+ UNION
91
+ SELECT service_id
92
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.calendar_dates
93
+ )
94
+ SELECT trim(cast(service_id AS varchar)) external_id,
95
+ trim(cast(service_id AS varchar)) name,
96
+ CAST(NULL AS varchar) description
97
+ FROM service_ids
98
+ WHERE nullif(trim(cast(service_id AS varchar)),'') IS NOT NULL
99
+ depends_on: []
100
+ emits_to: backing_dataset
101
+ config:
102
+ output_layer: silver
103
+ ---
104
+ apiVersion: frank.platform/v1
105
+ kind: BackingDataset
106
+ metadata:
107
+ name: cira_transdev_gtfs_service
108
+ spec:
109
+ entity_type_id: gtfs_service
110
+ entity_type_name: GTFS Service
111
+ ontology_tenant_id: cira
112
+ pipeline: cira_transdev_gtfs_service
113
+ sync_mode: manual
114
+ primary_key_column: external_id
115
+ title_key_column: name
116
+ property_mappings:
117
+ - column: external_id
118
+ property: external_id
119
+ type: varchar
120
+ is_primary_key: true
121
+ - column: name
122
+ property: name
123
+ type: varchar
124
+ - column: description
125
+ property: description
126
+ type: varchar
127
+ ---
128
+ apiVersion: frank.platform/v1
129
+ kind: Pipeline
130
+ metadata:
131
+ name: cira_transdev_gtfs_calendar_rule
132
+ spec:
133
+ name: cira_transdev_gtfs_calendar_rule
134
+ description: Historical Transdev weekly service rules; expected rows 10.
135
+ source_ids:
136
+ - cira-transdev-aveirobus-gtfs
137
+ schedule_config:
138
+ type: manual
139
+ steps:
140
+ - name: gtfs_calendar_rule_rows
141
+ kind: custom_sql
142
+ params:
143
+ sql: |-
144
+ SELECT trim(cast(service_id AS varchar)) external_id,
145
+ try_cast(monday AS integer)=1 monday,
146
+ try_cast(tuesday AS integer)=1 tuesday,
147
+ try_cast(wednesday AS integer)=1 wednesday,
148
+ try_cast(thursday AS integer)=1 thursday,
149
+ try_cast(friday AS integer)=1 friday,
150
+ try_cast(saturday AS integer)=1 saturday,
151
+ try_cast(sunday AS integer)=1 sunday,
152
+ CAST(date_parse(cast(cast(start_date AS bigint) AS varchar),'%Y%m%d') AS date) start_date,
153
+ CAST(date_parse(cast(cast(end_date AS bigint) AS varchar),'%Y%m%d') AS date) end_date,
154
+ trim(cast(service_id AS varchar)) service_external_id
155
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.calendar
156
+ WHERE nullif(trim(cast(service_id AS varchar)),'') IS NOT NULL
157
+ depends_on: []
158
+ emits_to: backing_dataset
159
+ config:
160
+ output_layer: silver
161
+ ---
162
+ apiVersion: frank.platform/v1
163
+ kind: BackingDataset
164
+ metadata:
165
+ name: cira_transdev_gtfs_calendar_rule
166
+ dependsOn:
167
+ - entityTypeId: gtfs_service
168
+ ontologyTenantId: cira
169
+ spec:
170
+ entity_type_id: gtfs_calendar_rule
171
+ entity_type_name: GTFS Calendar Rule
172
+ ontology_tenant_id: cira
173
+ pipeline: cira_transdev_gtfs_calendar_rule
174
+ sync_mode: manual
175
+ primary_key_column: external_id
176
+ title_key_column: external_id
177
+ property_mappings:
178
+ - column: external_id
179
+ property: external_id
180
+ type: varchar
181
+ is_primary_key: true
182
+ - column: monday
183
+ property: monday
184
+ type: boolean
185
+ - column: tuesday
186
+ property: tuesday
187
+ type: boolean
188
+ - column: wednesday
189
+ property: wednesday
190
+ type: boolean
191
+ - column: thursday
192
+ property: thursday
193
+ type: boolean
194
+ - column: friday
195
+ property: friday
196
+ type: boolean
197
+ - column: saturday
198
+ property: saturday
199
+ type: boolean
200
+ - column: sunday
201
+ property: sunday
202
+ type: boolean
203
+ - column: start_date
204
+ property: start_date
205
+ type: date
206
+ - column: end_date
207
+ property: end_date
208
+ type: date
209
+ - column: service_external_id
210
+ property: service
211
+ is_relationship: true
212
+ target_type: gtfs_service
213
+ target_key: external_id
214
+ ---
215
+ apiVersion: frank.platform/v1
216
+ kind: Pipeline
217
+ metadata:
218
+ name: cira_transdev_gtfs_calendar_date_rule
219
+ spec:
220
+ name: cira_transdev_gtfs_calendar_date_rule
221
+ description: Historical Transdev service-date exceptions; expected rows 1624.
222
+ source_ids:
223
+ - cira-transdev-aveirobus-gtfs
224
+ schedule_config:
225
+ type: manual
226
+ steps:
227
+ - name: gtfs_calendar_date_rule_rows
228
+ kind: custom_sql
229
+ params:
230
+ sql: |-
231
+ SELECT concat(
232
+ trim(cast(service_id AS varchar)),
233
+ ':',
234
+ trim(cast(date AS varchar))
235
+ ) external_id,
236
+ CAST(date_parse(cast(cast(date AS bigint) AS varchar),'%Y%m%d') AS date) applies_on,
237
+ try_cast(exception_type AS integer) exception_type,
238
+ trim(cast(service_id AS varchar)) service_external_id
239
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.calendar_dates
240
+ WHERE nullif(trim(cast(service_id AS varchar)),'') IS NOT NULL
241
+ AND nullif(trim(cast(date AS varchar)),'') IS NOT NULL
242
+ depends_on: []
243
+ emits_to: backing_dataset
244
+ config:
245
+ output_layer: silver
246
+ ---
247
+ apiVersion: frank.platform/v1
248
+ kind: BackingDataset
249
+ metadata:
250
+ name: cira_transdev_gtfs_calendar_date_rule
251
+ dependsOn:
252
+ - entityTypeId: gtfs_service
253
+ ontologyTenantId: cira
254
+ spec:
255
+ entity_type_id: gtfs_calendar_date_rule
256
+ entity_type_name: GTFS Calendar Date Rule
257
+ ontology_tenant_id: cira
258
+ pipeline: cira_transdev_gtfs_calendar_date_rule
259
+ sync_mode: manual
260
+ primary_key_column: external_id
261
+ title_key_column: external_id
262
+ property_mappings:
263
+ - column: external_id
264
+ property: external_id
265
+ type: varchar
266
+ is_primary_key: true
267
+ - column: applies_on
268
+ property: applies_on
269
+ type: date
270
+ - column: exception_type
271
+ property: exception_type
272
+ type: integer
273
+ - column: service_external_id
274
+ property: service
275
+ is_relationship: true
276
+ target_type: gtfs_service
277
+ target_key: external_id
278
+ ---
279
+ apiVersion: frank.platform/v1
280
+ kind: Pipeline
281
+ metadata:
282
+ name: cira_transdev_gtfs_shape
283
+ spec:
284
+ name: cira_transdev_gtfs_shape
285
+ description: Historical Transdev ordered GTFS shapes; expected rows 56.
286
+ source_ids:
287
+ - cira-transdev-aveirobus-gtfs
288
+ schedule_config:
289
+ type: manual
290
+ steps:
291
+ - name: gtfs_shape_rows
292
+ kind: custom_sql
293
+ params:
294
+ sql: |-
295
+ WITH shape_points AS (
296
+ SELECT trim(cast(shape_id AS varchar)) external_id,
297
+ try_cast(shape_pt_sequence AS bigint) point_sequence,
298
+ try_cast(shape_pt_lon AS double) longitude,
299
+ try_cast(shape_pt_lat AS double) latitude
300
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.shapes
301
+ WHERE nullif(trim(cast(shape_id AS varchar)),'') IS NOT NULL
302
+ )
303
+ SELECT external_id,
304
+ to_geojson_geometry(
305
+ ST_LineString(
306
+ array_agg(ST_Point(longitude,latitude) ORDER BY point_sequence)
307
+ )
308
+ ) geometry_geojson
309
+ FROM shape_points
310
+ WHERE point_sequence IS NOT NULL
311
+ AND longitude BETWEEN -180.0 AND 180.0
312
+ AND latitude BETWEEN -90.0 AND 90.0
313
+ GROUP BY external_id
314
+ HAVING count(*)>=2
315
+ depends_on: []
316
+ emits_to: backing_dataset
317
+ config:
318
+ output_layer: silver
319
+ ---
320
+ apiVersion: frank.platform/v1
321
+ kind: BackingDataset
322
+ metadata:
323
+ name: cira_transdev_gtfs_shape
324
+ spec:
325
+ entity_type_id: gtfs_shape
326
+ entity_type_name: GTFS Shape
327
+ ontology_tenant_id: cira
328
+ pipeline: cira_transdev_gtfs_shape
329
+ sync_mode: manual
330
+ primary_key_column: external_id
331
+ title_key_column: external_id
332
+ property_mappings:
333
+ - column: external_id
334
+ property: external_id
335
+ type: varchar
336
+ is_primary_key: true
337
+ - column: geometry_geojson
338
+ property: geometry
339
+ type: varchar
340
+ sql_transform_id: json_parse
341
+ ---
342
+ apiVersion: frank.platform/v1
343
+ kind: Pipeline
344
+ metadata:
345
+ name: cira_transdev_gtfs_route
346
+ spec:
347
+ name: cira_transdev_gtfs_route
348
+ description: Historical Transdev GTFS routes linked to the single feed agency; expected rows 13.
349
+ source_ids:
350
+ - cira-transdev-aveirobus-gtfs
351
+ schedule_config:
352
+ type: manual
353
+ steps:
354
+ - name: gtfs_route_rows
355
+ kind: custom_sql
356
+ params:
357
+ sql: |-
358
+ WITH only_agency AS (
359
+ SELECT min(trim(cast(agency_id AS varchar))) agency_external_id
360
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.agency
361
+ WHERE nullif(trim(cast(agency_id AS varchar)),'') IS NOT NULL
362
+ )
363
+ SELECT trim(cast(r.route_id AS varchar)) external_id,
364
+ nullif(trim(cast(r.route_short_name AS varchar)),'') short_name,
365
+ nullif(trim(cast(r.route_long_name AS varchar)),'') long_name,
366
+ nullif(trim(cast(r.route_desc AS varchar)),'') description,
367
+ try_cast(r.route_type AS integer) route_type,
368
+ nullif(trim(cast(r.route_url AS varchar)),'') url,
369
+ try_cast(r.route_sort_order AS integer) sort_order,
370
+ nullif(trim(cast(r.route_color AS varchar)),'') color,
371
+ nullif(trim(cast(r.route_text_color AS varchar)),'') text_color,
372
+ coalesce(
373
+ nullif(trim(cast(r.agency_id AS varchar)),''),
374
+ a.agency_external_id
375
+ ) agency_external_id
376
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.routes r
377
+ CROSS JOIN only_agency a
378
+ WHERE nullif(trim(cast(r.route_id AS varchar)),'') IS NOT NULL
379
+ depends_on: []
380
+ emits_to: backing_dataset
381
+ config:
382
+ output_layer: silver
383
+ ---
384
+ apiVersion: frank.platform/v1
385
+ kind: BackingDataset
386
+ metadata:
387
+ name: cira_transdev_gtfs_route
388
+ dependsOn:
389
+ - entityTypeId: gtfs_agency
390
+ ontologyTenantId: cira
391
+ spec:
392
+ entity_type_id: gtfs_route
393
+ entity_type_name: GTFS Route
394
+ ontology_tenant_id: cira
395
+ pipeline: cira_transdev_gtfs_route
396
+ sync_mode: manual
397
+ primary_key_column: external_id
398
+ title_key_column: external_id
399
+ property_mappings:
400
+ - column: external_id
401
+ property: external_id
402
+ type: varchar
403
+ is_primary_key: true
404
+ - column: short_name
405
+ property: short_name
406
+ type: varchar
407
+ - column: long_name
408
+ property: long_name
409
+ type: varchar
410
+ - column: description
411
+ property: description
412
+ type: varchar
413
+ - column: route_type
414
+ property: route_type
415
+ type: integer
416
+ - column: url
417
+ property: url
418
+ type: varchar
419
+ - column: sort_order
420
+ property: sort_order
421
+ type: integer
422
+ - column: color
423
+ property: color
424
+ type: varchar
425
+ - column: text_color
426
+ property: text_color
427
+ type: varchar
428
+ - column: agency_external_id
429
+ property: agency
430
+ is_relationship: true
431
+ target_type: gtfs_agency
432
+ target_key: external_id
433
+ ---
434
+ apiVersion: frank.platform/v1
435
+ kind: Pipeline
436
+ metadata:
437
+ name: cira_transdev_gtfs_stop
438
+ spec:
439
+ name: cira_transdev_gtfs_stop
440
+ description: Historical Transdev ordinary GTFS stops; all 546 source rows have location_type=0.
441
+ source_ids:
442
+ - cira-transdev-aveirobus-gtfs
443
+ schedule_config:
444
+ type: manual
445
+ steps:
446
+ - name: gtfs_stop_rows
447
+ kind: custom_sql
448
+ params:
449
+ sql: |-
450
+ WITH stop_rows AS (
451
+ SELECT trim(cast(stop_id AS varchar)) external_id,
452
+ nullif(trim(cast(stop_code AS varchar)),'') code,
453
+ nullif(trim(cast(stop_name AS varchar)),'') name,
454
+ nullif(trim(cast(stop_desc AS varchar)),'') description,
455
+ nullif(trim(cast(stop_url AS varchar)),'') url,
456
+ try_cast(wheelchair_boarding AS integer) wheelchair_boarding,
457
+ nullif(trim(cast(zone_id AS varchar)),'') fare_zone,
458
+ try_cast(stop_lon AS double) longitude,
459
+ try_cast(stop_lat AS double) latitude,
460
+ coalesce(try_cast(location_type AS integer),0) location_type
461
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.stops
462
+ )
463
+ SELECT external_id,
464
+ code,
465
+ name,
466
+ description,
467
+ url,
468
+ wheelchair_boarding,
469
+ fare_zone,
470
+ CASE
471
+ WHEN longitude BETWEEN -180.0 AND 180.0
472
+ AND latitude BETWEEN -90.0 AND 90.0
473
+ THEN to_geojson_geometry(ST_Point(longitude,latitude))
474
+ END geometry_geojson
475
+ FROM stop_rows
476
+ WHERE external_id IS NOT NULL
477
+ AND location_type=0
478
+ depends_on: []
479
+ emits_to: backing_dataset
480
+ config:
481
+ output_layer: silver
482
+ ---
483
+ apiVersion: frank.platform/v1
484
+ kind: BackingDataset
485
+ metadata:
486
+ name: cira_transdev_gtfs_stop
487
+ spec:
488
+ entity_type_id: gtfs_stop
489
+ entity_type_name: GTFS Stop
490
+ ontology_tenant_id: cira
491
+ pipeline: cira_transdev_gtfs_stop
492
+ sync_mode: manual
493
+ primary_key_column: external_id
494
+ title_key_column: name
495
+ property_mappings:
496
+ - column: external_id
497
+ property: external_id
498
+ type: varchar
499
+ is_primary_key: true
500
+ - column: code
501
+ property: code
502
+ type: varchar
503
+ - column: name
504
+ property: name
505
+ type: varchar
506
+ - column: description
507
+ property: description
508
+ type: varchar
509
+ - column: url
510
+ property: url
511
+ type: varchar
512
+ - column: wheelchair_boarding
513
+ property: wheelchair_boarding
514
+ type: integer
515
+ - column: fare_zone
516
+ property: fare_zone
517
+ type: varchar
518
+ - column: geometry_geojson
519
+ property: geometry
520
+ type: varchar
521
+ sql_transform_id: json_parse
522
+ ---
523
+ apiVersion: frank.platform/v1
524
+ kind: Pipeline
525
+ metadata:
526
+ name: cira_transdev_gtfs_trip
527
+ spec:
528
+ name: cira_transdev_gtfs_trip
529
+ description: Historical Transdev GTFS trips linked to route, service, and optional shape; expected rows 441.
530
+ source_ids:
531
+ - cira-transdev-aveirobus-gtfs
532
+ schedule_config:
533
+ type: manual
534
+ steps:
535
+ - name: gtfs_trip_rows
536
+ kind: custom_sql
537
+ params:
538
+ sql: |-
539
+ SELECT trim(cast(trip_id AS varchar)) external_id,
540
+ nullif(trim(cast(trip_headsign AS varchar)),'') headsign,
541
+ nullif(trim(cast(trip_short_name AS varchar)),'') short_name,
542
+ try_cast(direction_id AS integer) direction,
543
+ nullif(trim(cast(block_id AS varchar)),'') block,
544
+ try_cast(wheelchair_accessible AS integer) wheelchair_accessible,
545
+ try_cast(bikes_allowed AS integer) bikes_allowed,
546
+ trim(cast(route_id AS varchar)) route_external_id,
547
+ trim(cast(service_id AS varchar)) service_external_id,
548
+ nullif(trim(cast(shape_id AS varchar)),'') shape_external_id
549
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.trips
550
+ WHERE nullif(trim(cast(trip_id AS varchar)),'') IS NOT NULL
551
+ depends_on: []
552
+ emits_to: backing_dataset
553
+ config:
554
+ output_layer: silver
555
+ ---
556
+ apiVersion: frank.platform/v1
557
+ kind: BackingDataset
558
+ metadata:
559
+ name: cira_transdev_gtfs_trip
560
+ dependsOn:
561
+ - entityTypeId: gtfs_route
562
+ ontologyTenantId: cira
563
+ - entityTypeId: gtfs_service
564
+ ontologyTenantId: cira
565
+ - entityTypeId: gtfs_shape
566
+ ontologyTenantId: cira
567
+ spec:
568
+ entity_type_id: gtfs_trip
569
+ entity_type_name: GTFS Trip
570
+ ontology_tenant_id: cira
571
+ pipeline: cira_transdev_gtfs_trip
572
+ sync_mode: manual
573
+ primary_key_column: external_id
574
+ title_key_column: headsign
575
+ property_mappings:
576
+ - column: external_id
577
+ property: external_id
578
+ type: varchar
579
+ is_primary_key: true
580
+ - column: headsign
581
+ property: headsign
582
+ type: varchar
583
+ - column: short_name
584
+ property: short_name
585
+ type: varchar
586
+ - column: direction
587
+ property: direction
588
+ type: integer
589
+ - column: block
590
+ property: block
591
+ type: varchar
592
+ - column: wheelchair_accessible
593
+ property: wheelchair_accessible
594
+ type: integer
595
+ - column: bikes_allowed
596
+ property: bikes_allowed
597
+ type: integer
598
+ - column: route_external_id
599
+ property: route
600
+ is_relationship: true
601
+ target_type: gtfs_route
602
+ target_key: external_id
603
+ - column: service_external_id
604
+ property: service
605
+ is_relationship: true
606
+ target_type: gtfs_service
607
+ target_key: external_id
608
+ - column: shape_external_id
609
+ property: shape
610
+ is_relationship: true
611
+ target_type: gtfs_shape
612
+ target_key: external_id
613
+ ---
614
+ apiVersion: frank.platform/v1
615
+ kind: Pipeline
616
+ metadata:
617
+ name: cira_transdev_gtfs_stop_time
618
+ spec:
619
+ name: cira_transdev_gtfs_stop_time
620
+ description: Historical Transdev GTFS stop times; service-day times can exceed 24:00:00 and remain strings; expected rows 16511.
621
+ source_ids:
622
+ - cira-transdev-aveirobus-gtfs
623
+ schedule_config:
624
+ type: manual
625
+ steps:
626
+ - name: gtfs_stop_time_rows
627
+ kind: custom_sql
628
+ params:
629
+ sql: |-
630
+ SELECT concat(
631
+ trim(cast(trip_id AS varchar)),
632
+ ':',
633
+ cast(try_cast(stop_sequence AS bigint) AS varchar)
634
+ ) external_id,
635
+ nullif(trim(cast(arrival_time AS varchar)),'') arrival_time,
636
+ nullif(trim(cast(departure_time AS varchar)),'') departure_time,
637
+ try_cast(stop_sequence AS integer) stop_sequence,
638
+ nullif(trim(cast(stop_headsign AS varchar)),'') stop_headsign,
639
+ try_cast(pickup_type AS integer) pickup_type,
640
+ try_cast(drop_off_type AS integer) drop_off_type,
641
+ try_cast(shape_dist_traveled AS double) shape_dist_traveled,
642
+ try_cast(timepoint AS integer) timepoint,
643
+ trim(cast(trip_id AS varchar)) trip_external_id,
644
+ trim(cast(stop_id AS varchar)) stop_external_id
645
+ FROM tenant_00000000_cira_transdev_aveirobus_gtfs.stop_times
646
+ WHERE nullif(trim(cast(trip_id AS varchar)),'') IS NOT NULL
647
+ AND try_cast(stop_sequence AS bigint) IS NOT NULL
648
+ AND nullif(trim(cast(stop_id AS varchar)),'') IS NOT NULL
649
+ depends_on: []
650
+ emits_to: backing_dataset
651
+ config:
652
+ output_layer: silver
653
+ ---
654
+ apiVersion: frank.platform/v1
655
+ kind: BackingDataset
656
+ metadata:
657
+ name: cira_transdev_gtfs_stop_time
658
+ dependsOn:
659
+ - entityTypeId: gtfs_trip
660
+ ontologyTenantId: cira
661
+ - entityTypeId: gtfs_stop
662
+ ontologyTenantId: cira
663
+ spec:
664
+ entity_type_id: gtfs_stop_time
665
+ entity_type_name: GTFS Stop Time
666
+ ontology_tenant_id: cira
667
+ pipeline: cira_transdev_gtfs_stop_time
668
+ sync_mode: manual
669
+ primary_key_column: external_id
670
+ title_key_column: external_id
671
+ property_mappings:
672
+ - column: external_id
673
+ property: external_id
674
+ type: varchar
675
+ is_primary_key: true
676
+ - column: arrival_time
677
+ property: arrival_time
678
+ type: varchar
679
+ - column: departure_time
680
+ property: departure_time
681
+ type: varchar
682
+ - column: stop_sequence
683
+ property: stop_sequence
684
+ type: integer
685
+ - column: stop_headsign
686
+ property: stop_headsign
687
+ type: varchar
688
+ - column: pickup_type
689
+ property: pickup_type
690
+ type: integer
691
+ - column: drop_off_type
692
+ property: drop_off_type
693
+ type: integer
694
+ - column: shape_dist_traveled
695
+ property: shape_dist_traveled
696
+ type: double
697
+ - column: timepoint
698
+ property: timepoint
699
+ type: integer
700
+ - column: trip_external_id
701
+ property: trip
702
+ is_relationship: true
703
+ target_type: gtfs_trip
704
+ target_key: external_id
705
+ - column: stop_external_id
706
+ property: stop
707
+ is_relationship: true
708
+ target_type: gtfs_stop
709
+ target_key: external_id