71 lines
1.8 KiB
Plaintext
71 lines
1.8 KiB
Plaintext
using {
|
|
cuid,
|
|
managed,
|
|
sap.common.CodeList
|
|
} from '@sap/cds/common';
|
|
|
|
namespace sap.capire.incidents;
|
|
|
|
/**
|
|
* Incidents created by Customers.
|
|
*/
|
|
entity Incidents : cuid, managed {
|
|
customer : Association to Customers;
|
|
title : String @title: 'Title';
|
|
urgency : Association to Urgency default 'M';
|
|
status : Association to Status default 'N';
|
|
conversation : Composition of many {
|
|
key ID : UUID;
|
|
timestamp : type of managed : createdAt;
|
|
author : type of managed : createdBy;
|
|
message : String;
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Customers entitled to create support Incidents.
|
|
*/
|
|
entity Customers : managed {
|
|
key ID : String;
|
|
firstName : String;
|
|
lastName : String;
|
|
name : String = trim(firstName || ' ' || lastName);
|
|
email : EMailAddress;
|
|
phone : PhoneNumber;
|
|
incidents : Association to many Incidents
|
|
on incidents.customer = $self;
|
|
creditCardNo : String(16) @assert.format: '^[1-9]\d{15}$';
|
|
addresses : Composition of many Addresses
|
|
on addresses.customer = $self;
|
|
}
|
|
|
|
entity Addresses : cuid, managed {
|
|
customer : Association to Customers;
|
|
city : String;
|
|
postCode : String;
|
|
streetAddress : String;
|
|
}
|
|
|
|
entity Status : CodeList {
|
|
key code : String enum {
|
|
new = 'N';
|
|
assigned = 'A';
|
|
in_process = 'I';
|
|
on_hold = 'H';
|
|
resolved = 'R';
|
|
closed = 'C';
|
|
};
|
|
criticality : Integer;
|
|
}
|
|
|
|
entity Urgency : CodeList {
|
|
key code : String enum {
|
|
high = 'H';
|
|
medium = 'M';
|
|
low = 'L';
|
|
};
|
|
}
|
|
|
|
type EMailAddress : String;
|
|
type PhoneNumber : String;
|