Files
cloud-cap-samples/db/extension.cds
Wolfgang Koch 36346533bb Z Namespace
2021-05-07 17:45:39 +02:00

59 lines
1.7 KiB
Plaintext

using {sap.capire.bookshop} from '_base/db/schema';
using {sap.capire.orders} from '_base/db/schema';
using from '_base/db/capire_common';
using {
cuid, managed, Country
} from '@sap/cds/common';
namespace Z_bookshop.extension;
// extend existing entity
extend orders.Orders with {
Z_Customer : Association to one Z_Customers;
Z_Remarks : Composition of many Z_Remarks on Z_Remarks.Z_parent = $self;
Z_priority : String @assert.range enum {high; medium; low} default 'medium';
}
// new entity - as association target
entity Z_Customers // : cuid, managed
{
key Z_ID : UUID; // workaround
Z_email : String;
Z_firstName : String;
Z_lastName : String;
Z_creditCardNo : String;
Z_dateOfBirth : Date;
Z_status : String @assert.range enum {platinum; gold; silver; bronze} default 'bronze';
Z_creditScore : Decimal @assert.range: [ 1.0, 100.0 ] default 50.0;
Z_PostalAddresses : Composition of many Z_CustomerPostalAddresses on Z_PostalAddresses.Z_Customer = $self;
}
// new unique constraint (secondary index)
annotate Z_Customers with @assert.unique: { Z_email: [ Z_email ] }
{
Z_email @mandatory; // mandatory check
}
// new entity - as composition target
entity Z_CustomerPostalAddresses // :
{
key Z_ID : UUID; // workaround
Z_Customer : Association to one Z_Customers;
Z_description : String;
Z_street : String;
Z_town : String;
Z_country : Country;
};
// new entity - as composition target
entity Z_Remarks // : cuid, managed
{
key Z_ID : UUID; // workaround
Z_parent : Association to one orders.Orders;
Z_number : Integer;
Z_remarksLine : String;
}