# Wille - Calimero
###### tags: `wille`
## Domenski model
```plantuml
PartialComplaintResponse "*" --> "1" ComplaintReason : complaintReason
Complaint "1" --> "*" PartialComplaintResponse : partialCOmplaintResponses
Complaint "*" --> "1" Court: complainTo
Complaint "*" --> "1" Court: createdBy
Complaint "1" --> "*" Post: posts
ComplaintCase "*" --> "1" Court: complainOn
ComplaintCase "1" <-left- "*" Complaint
Complaint "*" --> "1" ProcedureRole : procedureRole
Complaint "*" --> "1" NaturalPerson: complainantNp
Complaint "*" --> "0..1" LegalPerson: complainantLp
ResourceLink ..> "from" ComplaintCase
ResourceLink ..> "to" ComplaintCase
Complaint "1" <-- "*" ComplaintDocument
ComplaintDocument "1" --> "*" Post
ComplaintDocument "*" --> "1" Court: from
ComplaintDocument "*" --> "1" Court: to
class ComplaintCase {
uuid: String
number: String
courtCaseNumber: String
}
class Complaint {
number: String
creationMethod: ComplaintCreationMethod
state: ComplaintCaseState
text: String
closeDate: Date
response: ComplaintResponse
}
class PartialComplaintResponse {
response: ComplaintResponse
}
class ComplaintReason {
uuid: String
name: String
}
class ProcedureRole {
uuid: String
name: String
}
class ResourceLink {
}
class ComplaintDocument {
uuid: String
name: String
}
enum ComplaintCreationMethod {
SYSTEM,
PERSONALLY,
MAIL,
POST_OFFICE
}
enum ComplaintState {
NEW,
IN_PROGRESS,
REJECTED,
CLOSED
}
enum ComplaintResponse {
}
'FROM CORE
SystemUserProfile o--> SystemUser
SystemRole "*" -right-> "*" SystemAuthority
SystemUserProfile "*" --> "*" SystemRole
SystemUserProfile "*" --> "*" SystemAuthority
NaturalPerson -up-|> BusinessEntity
Institution -left-|> BusinessEntity
Court --|> Institution
Court "*" --> "0..1" Court : parent
WilleUser "*" -up-> "0..1" Institution
WilleUser "1" -down-> "1" SystemUserProfile
NaturalPerson "1" <-- "*" WilleUser
class BusinessEntity {
identificationNumber: string
contacts: Set<string>
emails: Set<string>
details: Map
}
class Institution {
name: String
taxNumber: String
address: String
}
class NaturalPerson {
firstname: string
lastname: string
fatherName: String
city: string
street: string
streetNumber: string
}
class SystemUserProfile {
uuid: String
image: byte[]
details: Map
ownerUuid: string
}
class SystemUser {
uuid: String
firstname: String
lastname: String
email: String,
username: String,
password: String
}
class Court {
}
class WilleUser {
status: WilleUserStatus
representative: Boolean
authPoaNumber:String
email:String
contact: String
}
enum WilleUserStatus {
ACTIVE,
AWAITING_APPROVAL,
UNREGISTERED,
INACTIVE,
UNKNOWN
}
'CORE CLOSE
class Post {
}
```
## Spisak veb notifikacija i email obaveštenja