71 lines
1.3 KiB
Plaintext
71 lines
1.3 KiB
Plaintext
filter all
|
|
dto all with mapstruct
|
|
service all with serviceClass
|
|
paginate all with infinite-scroll
|
|
|
|
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}
|
|
}
|
|
|