...
This commit is contained in:
28
_packages/common-contacts/db/code-lists.cds
Normal file
28
_packages/common-contacts/db/code-lists.cds
Normal file
@@ -0,0 +1,28 @@
|
||||
using { sap } from '@sap/cds/common';
|
||||
namespace sap.common;
|
||||
|
||||
/**
|
||||
* The Code Lists below are designed as optional extensions to
|
||||
* the base schema. Switch them on by adding an Association to
|
||||
* one of the code list entities in your models or by:
|
||||
* annotate sap.common.Countries with @cds.persistence.skip:false;
|
||||
*/
|
||||
|
||||
extend sap.common.Countries {
|
||||
regions : Composition of many Regions on regions._parent = $self.code;
|
||||
}
|
||||
entity Regions : sap.common.CodeList {
|
||||
key code : String(5); // ISO 3166-2 alpha5 codes, e.g. DE-BW
|
||||
children : Composition of many Regions on children._parent = $self.code;
|
||||
cities : Composition of many Cities on cities.region = $self;
|
||||
_parent : String(11);
|
||||
}
|
||||
entity Cities : sap.common.CodeList {
|
||||
key code : String(11);
|
||||
region : Association to Regions;
|
||||
districts : Composition of many Districts on districts.city = $self;
|
||||
}
|
||||
entity Districts : sap.common.CodeList {
|
||||
key code : String(11);
|
||||
city : Association to Cities;
|
||||
}
|
||||
58
_packages/common-contacts/db/schema.cds
Normal file
58
_packages/common-contacts/db/schema.cds
Normal file
@@ -0,0 +1,58 @@
|
||||
namespace sap.capire.contacts;
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Aspects
|
||||
|
||||
|
||||
aspect Organization {
|
||||
orgname : String(111);
|
||||
}
|
||||
|
||||
aspect Person {
|
||||
firstname : String(111);
|
||||
lastname : String(111);
|
||||
prefix : String(11);
|
||||
suffix : String(11);
|
||||
middle : String(11);
|
||||
dateOfBirth : Date; placeOfBirth : String;
|
||||
dateOfDeath : Date; placeOfDeath : String;
|
||||
}
|
||||
|
||||
aspect PostalAddress {
|
||||
street : String(222) @multiline;
|
||||
postCode : String(11);
|
||||
district : String(111);
|
||||
city : String(111);
|
||||
region : String(111);
|
||||
country : String(111);
|
||||
}
|
||||
|
||||
aspect ContactOptions {
|
||||
email : String @JSON:[{ kind:String, address: EmailAddress }];
|
||||
phone : String @JSON:[{ kind:String, number: PhoneNumber }];
|
||||
// phone : array of { kind:String; number: PhoneNumber };
|
||||
// addresses : Composition of many PostalAddress;
|
||||
}
|
||||
|
||||
type EmailAddress : String;
|
||||
type PhoneNumber : String;
|
||||
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Entities
|
||||
|
||||
@cds.persistence.skip:'if-unused'
|
||||
entity Contacts : Person, Organization, ContactOptions {
|
||||
key ID : UUID;
|
||||
isOrg : Boolean;
|
||||
addresses : Composition of many PostalAddresses on addresses.contact = $self;
|
||||
}
|
||||
|
||||
@cds.persistence.skip:'if-unused'
|
||||
entity PostalAddresses : PostalAddress {
|
||||
contact : Association to Contacts;
|
||||
kind : String;
|
||||
key ID : UUID;
|
||||
}
|
||||
Reference in New Issue
Block a user