diff --git a/db/data/sap.capire.flights-Connections.csv b/db/data/sap.capire.flights-FlightConnections.csv similarity index 100% rename from db/data/sap.capire.flights-Connections.csv rename to db/data/sap.capire.flights-FlightConnections.csv diff --git a/db/schema.cds b/db/schema.cds index 992fc83..4dbefb6 100644 --- a/db/schema.cds +++ b/db/schema.cds @@ -2,19 +2,23 @@ using { Currency, Country, cuid, sap.common.CodeList } from '@sap/cds/common'; namespace sap.capire.flights; -entity Airlines : cuid { - name : String; - icon : String; - currency : Currency; -} - -entity Airports : cuid { - name : String; - city : String; - country : Country; +/** + * A scheduled flight on a specific date with a specific aircraft and price. + */ +entity Flights { + key flight : Association to FlightConnections; + key date : Date; + aircraft : String; + price : Price; + currency : Currency; + maximum_seats : Integer; + occupied_seats : Integer; // partly transactional } -entity Connections { +/** + * A flight connection between two airports operated by an airline. + */ +entity FlightConnections { key ID : String(11); // e.g. LH4711 airline : Association to Airlines; origin : Association to Airports; @@ -24,15 +28,17 @@ entity Connections { distance : Integer; // in kilometers } -entity Flights { - key flight : Association to Connections; - key date : Date; - aircraft : String; - price : Price; - currency : Currency; - maximum_seats : Integer; - occupied_seats : Integer; // partly transactional -}; +entity Airlines : cuid { + name : String; + icon : String; + currency : Currency; +} + +entity Airports : cuid { + name : String; + city : String; + country : Country; +} entity Supplements : cuid { type : Association to SupplementTypes; diff --git a/srv/fiori-service.cds b/srv/admin-service.cds similarity index 72% rename from srv/fiori-service.cds rename to srv/admin-service.cds index 61aa52f..cb9a1f5 100644 --- a/srv/fiori-service.cds +++ b/srv/admin-service.cds @@ -1,7 +1,7 @@ using { sap.capire.flights as my } from '../db/schema'; -@fiori service FlightsService { - entity Connections as projection on my.Connections; +@fiori service AdminService { + entity FlightConnections as projection on my.FlightConnections; entity Flights as projection on my.Flights; entity Airlines as projection on my.Airlines; entity Airports as projection on my.Airports; diff --git a/srv/data-service.cds b/srv/data-service.cds index 9fd07dd..f337dd6 100644 --- a/srv/data-service.cds +++ b/srv/data-service.cds @@ -20,8 +20,13 @@ using { sap, sap.capire.flights as my } from '../db/schema'; } -// Additionally serve via @hcql, @rest, and @odata, and add events -@hcql @rest @odata extend service sap.capire.flights.data { +// Alternative protocols to serve the data +annotate sap.capire.flights.data +with @hcql @rest @odata; + + +// Add custom events +extend service sap.capire.flights.data { // inbound and outbound events aspect FlightKeys {