-
Notifications
You must be signed in to change notification settings - Fork 0
/
EntitiesModel.puml
95 lines (80 loc) · 1.48 KB
/
EntitiesModel.puml
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
@startuml
class User extends UriEntity implements UserDetails {
username : String
password : String
email : String
dni: String
dateOfBirth: String
}
class UriEntity {
uri : String
}
abstract class Pet extends UriEntity {
id: Long
name: String
dateOfBirth: Date
isAdopted: Boolean
colour: String
size: Integer
chip: String
sex: String
race: String
dangerous: Boolean
}
class Dog extends Pet {
barkingLevel: Integer
}
class Cat extends Pet {
meowingLevel: Integer
}
class Shelter extends UriEntity {
id: Long
name: String
email: String
mobile : String
createdAt: DateTime
updatedAt: DateTime
isActive: Boolean
}
class Location {
id: Long
address: String
latitude: Float
longitude: Float
province: String
city: String
postalCode: Integer
}
class ShelterCertificate extends UriEntity {
id: Long
expirationDate: DateTime
}
class Schedule {
id: Long
startTime: Time
endTime: Time
}
class Adoptions {
id: Long
dateOfAdoption: DateTime
}
class Role {
id: Long
name: String
}
class Permission {
id: Long
name: String
}
User "1" --right-- "*" Resource : owner <
Location "1" -> "1" Shelter : has>
Shelter "1" -> "*" User : < pertain
Shelter "1" -> "*" Pet : has >
Shelter "1" -> "1" ShelterCertificate : has >
Shelter "1" -- "*" Adoptions
Schedule "*" -> "1" Shelter :available >
Adoptions "1" -> "1" Pet :adopted >
Adoptions "1" -> "1" User :adopt <
User "*" -> "*" Role
Role "*" -> "*" Permission
@enduml