diff --git a/gdpr/db/data-privacy.cds b/gdpr/db/data-privacy.cds index b9f7eafa..10aa6020 100644 --- a/gdpr/db/data-privacy.cds +++ b/gdpr/db/data-privacy.cds @@ -11,10 +11,18 @@ annotate bookshop.Customers with @PersonalData : { email @PersonalData.IsPotentiallyPersonal; firstName @PersonalData.IsPotentiallyPersonal; lastName @PersonalData.IsPotentiallyPersonal; - creditCardNo @PersonalData.IsPotentiallySensitive; + // creditCardNo @PersonalData.IsPotentiallySensitive; dateOfBirth @PersonalData.IsPotentiallyPersonal; } +annotate bookshop.CustomerBillingData with @PersonalData : { + DataSubjectRole : 'Customer', + EntitySemantics : 'DataSubjectDetails' +} +{ + creditCardNo @PersonalData.IsPotentiallySensitive; +} + annotate bookshop.CustomerPostalAddress with @PersonalData : { DataSubjectRole : 'Customer', EntitySemantics : 'DataSubjectDetails' diff --git a/gdpr/db/data/sap.capire.bookshop-CustomerBillingData.csv b/gdpr/db/data/sap.capire.bookshop-CustomerBillingData.csv new file mode 100644 index 00000000..6cf780e4 --- /dev/null +++ b/gdpr/db/data/sap.capire.bookshop-CustomerBillingData.csv @@ -0,0 +1,3 @@ +ID;modifiedAt;createdAt;createdBy;modifiedBy;Customer_ID;creditCardNo +1e2f2640-6866-4dcf-8f4d-3027aa831cad;2019-04-04;2019-01-31;admin@business.com;admin@business.com;8e2f2640-6866-4dcf-8f4d-3027aa831cad;2222-1111-6666-7777 +24e718c9-ff99-47f1-8ca3-950c850777d4;2019-04-04;2019-01-30;admin@business.com;admin@business.com;74e718c9-ff99-47f1-8ca3-950c850777d4;3333-2222-5555-8888 \ No newline at end of file diff --git a/gdpr/db/data/sap.capire.bookshop-Customers.csv b/gdpr/db/data/sap.capire.bookshop-Customers.csv index c94c4431..4b1a82a8 100644 --- a/gdpr/db/data/sap.capire.bookshop-Customers.csv +++ b/gdpr/db/data/sap.capire.bookshop-Customers.csv @@ -1,3 +1,3 @@ -ID;modifiedAt;createdAt;createdBy;modifiedBy;email;firstName;lastName;creditCardNo;dateOfBirth -8e2f2640-6866-4dcf-8f4d-3027aa831cad;2019-04-04;2019-01-31;admin@business.com;admin@business.com;john.doe@test.com;John;Doe;9977-6655-4433-2211;1970-01-01 -74e718c9-ff99-47f1-8ca3-950c850777d4;2019-04-04;2019-01-30;admin@business.com;admin@business.com;jane.doe@sap.com;Jane;Doe;2211-3344-5566-7788;1980-11-11 \ No newline at end of file +ID;modifiedAt;createdAt;createdBy;modifiedBy;email;firstName;lastName;dateOfBirth +8e2f2640-6866-4dcf-8f4d-3027aa831cad;2019-04-04;2019-01-31;admin@business.com;admin@business.com;john.doe@test.com;John;Doe;1970-01-01 +74e718c9-ff99-47f1-8ca3-950c850777d4;2019-04-04;2019-01-30;admin@business.com;admin@business.com;jane.doe@sap.com;Jane;Doe;1980-11-11 \ No newline at end of file diff --git a/gdpr/db/schema.cds b/gdpr/db/schema.cds index 0db4fa9a..c9b01c08 100644 --- a/gdpr/db/schema.cds +++ b/gdpr/db/schema.cds @@ -15,9 +15,10 @@ entity Customers : cuid, managed { email : String; firstName : String; lastName : String; - creditCardNo : String; + // creditCardNo : String; dateOfBirth : Date; - postalAddress : Association to CustomerPostalAddress on postalAddress.Customer = $self; + billingData : Composition of one CustomerBillingData on billingData.Customer = $self; + postalAddress : Composition of one CustomerPostalAddress on postalAddress.Customer = $self; } entity CustomerPostalAddress : cuid, managed { @@ -27,3 +28,10 @@ entity CustomerPostalAddress : cuid, managed { country : Country; someOtherField : String(128); }; + + +entity CustomerBillingData : cuid, managed { + Customer : Association to one Customers; + creditCardNo : String; +}; + diff --git a/gdpr/srv/pdm-service.cds b/gdpr/srv/pdm-service.cds index e4bfe105..94150d61 100644 --- a/gdpr/srv/pdm-service.cds +++ b/gdpr/srv/pdm-service.cds @@ -8,6 +8,7 @@ service PDMService { entity Customers as projection on db.Customers; entity CustomerPostalAddress as projection on db.CustomerPostalAddress; + entity CustomerBillingData as projection on db.CustomerBillingData; // create view on Orders and Items as flat projection entity OrderItemView as