From 79f59fb3230b277cbb50aea6a6a4499420b3fb9d Mon Sep 17 00:00:00 2001 From: Michael Hoennig Date: Tue, 2 Apr 2019 11:07:19 +0200 Subject: [PATCH] initial customer.jdl --- src/main/jdl/customer.jdl | 66 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/main/jdl/customer.jdl diff --git a/src/main/jdl/customer.jdl b/src/main/jdl/customer.jdl new file mode 100644 index 00000000..0681c42d --- /dev/null +++ b/src/main/jdl/customer.jdl @@ -0,0 +1,66 @@ + +entity Customer { + number Integer required unique min(10000) max(99999), + prefix String required unique pattern(/[a-z][a-z0-9]+/), +} + +entity Contact { + firstName String required maxlength(80), + lastName String required maxlength(80), + email String required maxlength(80) +} + +enum CustomerContactRole { + CONTRACTUAL, + TECHNICAL, + FINANCIAL +} + +entity CustomerContact { + role CustomerContactRole required +} + +entity Membership { + sinceDate LocalDate required, + untilDate LocalDate +} + +enum ShareAction { + SUBSCRIPTION, + CANCELLATION +} + +entity Share { + date LocalDate required, + action ShareAction required, + quantity Integer required, + comment String maxlength(160) +} + +enum AssetAction { + PAYMENT, + HANDOVER, + ADOPTION, + LOSS, + CLEARING, + PAYBACK +} + +entity Asset { + date LocalDate required, + action AssetAction required, + amount BigDecimal required, + comment String maxlength(160) +} + +relationship OneToMany { + Customer to Membership{customer(prefix)}, + Membership to Share{member}, + Membership to Asset{member} +} + +relationship ManyToOne { + CustomerContact{contact(email) required} to Contact{role}, + CustomerContact{customer(prefix) required} to Customer{role} +} +