Skip to content

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