Object Architecture
Actors: OB-Collector OB-Club OB-Friends
Objects : OB-Collection OB-Object OB-Place OB-Events OB-Origin OB-Note OB-Document OB-Category
Metas: OB-Identificator OB-Characteristics-Sheet
Lists:
Management: OB-User OB-Group OB-Domain
Relationship : OB-Collection contains many OB-Object OB-Object is located in one OB-Place OB-Object has many OB-Events OB-Object has one OB-Orign OB-Object has many OB-Notes OB-Object has many OB-Document
Core class
classDiagram
%% direction LR
%%---------------------------------------------------------
namespace Core {
class UUIDAuditBase {
<<Abstract>>
}
class Generic {
<<Abstract>>
+name: String
+full_name: String
+nickname: String default: None
+description: String default: None
+comments: String default: None
+status_id String~enumStatus~
+object_status: String default : ACTIVE
+version: Optional[String]
+logo* UUID~Document~ default: None
+avatar UUID~Document~
}
class Identificator {
<<Abstract>>
+extra-chars_shema_name : str
+extra-chars_shema_version : str
+extra-chars : JSONB
}
}
UUIDAuditBase <|-- Generic
Generic <|-- Identificator
classDiagram
%% direction LR
%%---------------------------------------------------------
%% note for Domain "This is a note for a class"
namespace Admin {
class User {
<<AuditBase>>
+name: STRING
+description: STRING
+username: STRING
+password: STRING
+email: STRING
// ... autres champs
}
class Group {
<<AuditBase>>
+name: STRING
+description: STRING
// ... autres champs
}
class Domain {
<<AuditBase>>
+name: STRING
+description: STRING
// ... autres champs
}
}
User "1" --> "1..*" Domain : belongs_to
User "1" --> "1..*" Group : belongs_to
User "1" --> "1..*" Item : own
Domain "1" --> "1..*" Item : controls
classDiagram
%% --------------------------------------------------------
%% note for Item "This is a note for a class"
class Item~~ {
<<Identificator>>
+serial_number String
+material_ids List~UUID~
+size List~int~
+state Enum~String~
}
class Note{
<<Identificator>>
+ title: String
+ content: String
}
Item "1" --* "0..*" Note : is_commented_by
Kollection "1" --* "0..*" Note : is_commented_by
Note "1" --* "0..*" Tag : is_characterized_by
class Document{
<<Identificator>>
+ title: String
+ path: URI
+ type: __EnumDocType
}
Item "1" --o "0..*" Document
Document --> __EnumDocType: uses
class Tag{
+ perimeter: private,public,group
+ groups : List~Group~
+ add(name)=id
}
Item "1" --o "0..*" Tag
class Scope{
+ perimeter: private,public,group
+ groups : List~Group~
+ add(name)=id
}
Item "1" --o "0..*" Scope
class Category {
}
Item "0" --o "O-N" Category
class Organization{
<<Abstract>>
+ name
}
class Kollection {
<<Identificator>>
+ theme : str
}
Kollection "1" --o "0..*" Item : contains
Kollection "1 " --o "0..*" Tag : is_qualified_by
Kollection "1" --o "0..1" Category : belongs_to
Kollection "1" --o "0.." Domain : belongs_to
class Event {
<<Identificator>>
}
Event "1" --> "1" Domain
Event "1" --> "1" EventType
Event "1" --> "0..*" Tag
Event "1" --> "0..1" Currency
Event "1" --> "0..1" Place
Event "1" --> "0..1" Stakeholder_role
Event "1" --> "0..1" Person
Event "1" --> "0..1" Organization
Item "1" --> "0..*" Event
Kollection "1" --> "0..*" Event
class Place {
<<Identificator>>
+ site_name : String
+ geo_coordinates : String
+ address : String
+ start_at: Mapped[datetime]
+ end_at: Mapped[datetime]
}
Item "1" --o "0..*" Place
class Manufacturer {
<<Identificator>>
}
Item "*" --o "0..*" Manufacturer
Manufacturer <|-- Identificator
class Brand {
<<Identificator>>
}
Item "*" --o "0..*" Brand
Brand <|-- Identificator