67 lines
1.2 KiB
Plaintext
67 lines
1.2 KiB
Plaintext
|
|
||
|
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}
|
||
|
}
|
||
|
|