This repository has been archived by the owner on Nov 29, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jhipster-jdl.jh
176 lines (153 loc) · 3.46 KB
/
jhipster-jdl.jh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
application {
config {
applicationType monolith
authenticationType jwt
baseName RealEstateManagementService
buildTool maven
cacheProvider no
clientFramework angularX
clientPackageManager npm
databaseType sql
devDatabaseType mssql
dtoSuffix DTO
languages [en, es]
nativeLanguage en
packageName realestatemanagementservice
prodDatabaseType mssql
testFrameworks [protractor]
}
entities *
}
DEFAULT_MIN = 0
// State codes should always consist of two letters
STATE_CODE_MIN_LENGTH = 2
STATE_CODE_MAX_LENGTH = 2
ZIP_CODE_MAX = 10
RATING_MIN = 0
RATING_MAX = 5
entity Building {
id Long
name String
purchaseDate LocalDate
propertyNumber String
streetAddress String
city String
stateCode String minlength(STATE_CODE_MIN_LENGTH) maxlength(STATE_CODE_MAX_LENGTH)
zipCode String maxlength(ZIP_CODE_MAX)
}
entity PropertyTax {
id Long
taxYear Integer min(DEFAULT_MIN)
amount BigDecimal
datePaid LocalDate
confirmationNumber String
}
entity Apartment {
id Long
unitNumber String
moveInReady Boolean
}
entity Maintenance {
id Long
description String
notificationDate LocalDate
dateComplete LocalDate
contractorJobNumber String
repairCost BigDecimal
repairPaidOn LocalDate
receiptOfPayment String
}
entity Contractor {
id Long
companyName String
streetAddress String
city String
stateCode String minlength(STATE_CODE_MIN_LENGTH) maxlength(STATE_CODE_MAX_LENGTH)
zipCode String maxlength(ZIP_CODE_MAX)
phoneNumber String
contactPerson String
ratingOfWork Integer min(RATING_MIN) max(RATING_MAX)
ratingOfResponsiveness Integer min(RATING_MIN) max(RATING_MAX)
}
entity JobType {
id Long
name String
}
entity Lease {
id Long
dateSigned LocalDate
moveInDate LocalDate
noticeOfRemovalOrMoveoutDate LocalDate
endDate LocalDate
amount BigDecimal
leaseType String
notes String
}
entity Person {
id Long
firstName String
lastName String
phoneNumber String
emailAddress String
primaryContact Boolean
isMinor Boolean
ssn String
backgroundCheckDate LocalDate
backgroundCheckConfirmationNumber String
employmentVerificationDate LocalDate
employmentVerificationConfirmationNumber String
}
entity Vehicle {
id Long
make String
model String
modelYear Integer min(DEFAULT_MIN)
licensePlateNumber String
licensePlateState String
reservedParkingStallNumber String
}
entity Rent {
id Long
dueDate LocalDate
receivedDate LocalDate
amount BigDecimal
}
entity Pet {
id Long
name String
type String
color String
certifiedAssistanceAnimal Boolean
}
entity Infraction {
id Long
dateOccurred LocalDate
cause String
resolution String
}
relationship OneToMany {
Building to PropertyTax{building(id)}
Building to Apartment{building(id)}
Apartment to Maintenance{Apartment(id)}
Apartment to Lease{Apartment(id)}
Contractor to Maintenance{contractor(id)}
Lease to Rent{lease(id)}
Lease to Infraction{lease(id)}
}
relationship ManyToOne {
Lease{newLease(id)} to Lease
}
relationship ManyToMany {
Contractor{jobType(id)} to JobType{contractor(id)}
Lease{person(id)} to Person{lease(id)}
Lease{vehicle(id)} to Vehicle{lease(id)}
Lease{pet(id)} to Pet{lease(id)}
}
// Set filtering options
filter * except JobType
// Set pagination options
paginate * with pagination except JobType
// Set service options to all except JobType
service * with serviceImpl except JobType
// Use Data Transfer Objects (DTO)
dto * with mapstruct