first set of adjustments
This commit is contained in:
@@ -1,23 +1,28 @@
|
||||
using { managed, cuid, sap.common.CodeList } from '@sap/cds/common';
|
||||
using {
|
||||
managed,
|
||||
cuid,
|
||||
sap.common.CodeList
|
||||
} from '@sap/cds/common';
|
||||
|
||||
namespace sap.capire.auditLog;
|
||||
|
||||
entity AuditLogStore : cuid {
|
||||
|
||||
Action : String enum{DataAccess; DataModification};
|
||||
Action : String enum {
|
||||
DataAccess;
|
||||
DataModification
|
||||
};
|
||||
|
||||
User : String;
|
||||
Timestamp : Timestamp;
|
||||
Tenant : String;
|
||||
Channel : String;
|
||||
User : String;
|
||||
Timestamp : Timestamp;
|
||||
Tenant : String;
|
||||
Channel : String;
|
||||
DataSubjectType : String; // Bussiness Partner
|
||||
DataSubjectRole : String; // Customer // Employee // ...
|
||||
DataSubjectID : LargeString; // key value pair as JSON
|
||||
ObjectType : String; // like SalesOrder
|
||||
ObjectKey : LargeString; // key value pair as JSON
|
||||
|
||||
Blob : LargeString; // Payload: DataModification or Data Access as BLOB
|
||||
|
||||
DataSubjectType : String; // Bussiness Partner
|
||||
DataSubjectRole : String; // Customer // Employee // ...
|
||||
DataSubjectID : LargeString; // key value pair as JSON
|
||||
ObjectType : String; // like SalesOrder
|
||||
ObjectKey : LargeString; // key value pair as JSON
|
||||
|
||||
Blob : LargeString; // Payload: DataModification or Data Access as BLOB
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,65 +2,37 @@
|
||||
using {sap.capire.bookshop} from './schema';
|
||||
|
||||
// annotations for Data Privacy
|
||||
annotate bookshop.Customers with @PersonalData : {
|
||||
DataSubjectRole : 'Customer',
|
||||
EntitySemantics : 'DataSubject'
|
||||
}
|
||||
{
|
||||
ID @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
email @PersonalData.IsPotentiallyPersonal;
|
||||
firstName @PersonalData.IsPotentiallyPersonal;
|
||||
lastName @PersonalData.IsPotentiallyPersonal;
|
||||
// creditCardNo @PersonalData.IsPotentiallySensitive;
|
||||
dateOfBirth @PersonalData.IsPotentiallyPersonal;
|
||||
annotate bookshop.Customers with @PersonalData: {
|
||||
DataSubjectRole: 'Customer',
|
||||
EntitySemantics: 'DataSubject'
|
||||
} {
|
||||
ID @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
email @PersonalData.IsPotentiallyPersonal;
|
||||
firstName @PersonalData.IsPotentiallyPersonal;
|
||||
lastName @PersonalData.IsPotentiallyPersonal;
|
||||
dateOfBirth @PersonalData.IsPotentiallyPersonal;
|
||||
}
|
||||
|
||||
annotate bookshop.CustomerBillingData with @PersonalData : {
|
||||
DataSubjectRole : 'Customer',
|
||||
EntitySemantics : 'DataSubjectDetails'
|
||||
}
|
||||
{
|
||||
annotate bookshop.BillingData with @PersonalData: {
|
||||
DataSubjectRole: 'Customer',
|
||||
EntitySemantics: 'DataSubjectDetails'
|
||||
} {
|
||||
customer @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
creditCardNo @PersonalData.IsPotentiallySensitive;
|
||||
}
|
||||
|
||||
annotate bookshop.CustomerPostalAddress with @PersonalData : {
|
||||
DataSubjectRole : 'Customer',
|
||||
EntitySemantics : 'DataSubjectDetails'
|
||||
}
|
||||
{
|
||||
Customer @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
annotate bookshop.Addresses with @PersonalData: {
|
||||
DataSubjectRole: 'Customer',
|
||||
EntitySemantics: 'DataSubjectDetails'
|
||||
} {
|
||||
customer @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
street @PersonalData.IsPotentiallyPersonal;
|
||||
town @PersonalData.IsPotentiallyPersonal;
|
||||
country @PersonalData.IsPotentiallyPersonal;
|
||||
}
|
||||
|
||||
annotate bookshop.Orders with @PersonalData.EntitySemantics : 'Other'
|
||||
{
|
||||
ID @PersonalData.FieldSemantics : 'ContractRelatedID';
|
||||
Customer @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
annotate bookshop.Orders with @PersonalData.EntitySemantics: 'Other' {
|
||||
ID @PersonalData.FieldSemantics : 'ContractRelatedID';
|
||||
customer @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
personalComment @PersonalData.IsPotentiallyPersonal;
|
||||
}
|
||||
|
||||
// annotations for Audit Log
|
||||
annotate bookshop.Customers with @AuditLog.Operation : {
|
||||
Read : true,
|
||||
Insert : true,
|
||||
Update : true,
|
||||
Delete : true
|
||||
};
|
||||
|
||||
// annotations for Audit Log
|
||||
annotate bookshop.CustomerPostalAddress with @AuditLog.Operation : {
|
||||
Read : true,
|
||||
Insert : true,
|
||||
Update : true,
|
||||
Delete : true
|
||||
};
|
||||
|
||||
// annotations for Audit Log
|
||||
annotate bookshop.Orders with @AuditLog.Operation : {
|
||||
Read : true,
|
||||
Insert : true,
|
||||
Update : true,
|
||||
Delete : true
|
||||
};
|
||||
|
||||
@@ -1,37 +1,41 @@
|
||||
// Proxy for importing schema from bookshop sample
|
||||
using { sap.capire.bookshop.Books } from '../../bookshop/db/schema';
|
||||
using { sap.capire.orders.Orders } from '../../orders/db/schema';
|
||||
using { sap.capire.orders.OrderItems } from '../../orders/db/schema';
|
||||
using { Country, managed, cuid } from '@sap/cds/common';
|
||||
using {sap.capire.bookshop.Books} from '../../bookshop/db/schema';
|
||||
using {sap.capire.orders.Orders} from '../../orders/db/schema';
|
||||
using {sap.capire.orders.OrderItems} from '../../orders/db/schema';
|
||||
using {
|
||||
Country,
|
||||
managed,
|
||||
cuid
|
||||
} from '@sap/cds/common';
|
||||
|
||||
namespace sap.capire.bookshop;
|
||||
|
||||
extend Orders with {
|
||||
Customer : Association to Customers;
|
||||
extend Orders with {
|
||||
customer : Association to Customers;
|
||||
personalComment : String;
|
||||
}
|
||||
|
||||
entity Customers : cuid, managed {
|
||||
email : String;
|
||||
firstName : String;
|
||||
lastName : String;
|
||||
// creditCardNo : String;
|
||||
dateOfBirth : Date;
|
||||
billingData : Composition of one CustomerBillingData on billingData.Customer = $self;
|
||||
postalAddress : Composition of one CustomerPostalAddress on postalAddress.Customer = $self;
|
||||
}
|
||||
|
||||
entity CustomerPostalAddress : cuid, managed {
|
||||
Customer : Association to one Customers;
|
||||
entity Customers : cuid, managed {
|
||||
email : String;
|
||||
firstName : String;
|
||||
lastName : String;
|
||||
dateOfBirth : Date;
|
||||
billingData : Composition of BillingData
|
||||
on billingData.customer = $self;
|
||||
addresses : Composition of Addresses
|
||||
on addresses.customer = $self;
|
||||
}
|
||||
|
||||
entity Addresses : cuid, managed {
|
||||
customer : Association to one Customers;
|
||||
street : String(128);
|
||||
town : String(128);
|
||||
country : Country;
|
||||
country : Country;
|
||||
someOtherField : String(128);
|
||||
};
|
||||
|
||||
|
||||
entity CustomerBillingData : cuid, managed {
|
||||
Customer : Association to one Customers;
|
||||
creditCardNo : String;
|
||||
entity BillingData : cuid, managed {
|
||||
customer : Association to one Customers;
|
||||
creditCardNo : String;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user