Skip to content

Draft design: Model hierarchy

classDiagram
Entry --|> Item
Entry: str type
Entry --|> File
Entry: dict[type_str, dict[enum["parent", "child", "sibling"]], ObjectId] relationships
class File {
    str file_id
    int | None size
    datetime last_modified
    datetime last_modified_remote
    int version
    str name
    str extension
    str original_name
    str location
    str url_path
    str source
    datetime time_added
    dict metadata
    any representation
    str source_path
    bool is_live
}
class RemoteFilesystem {
    str name
    int last_updated
    str type
    list~dict~ contents
}
Entry --|> RemoteFilesystem
Material --|> Sample
Material --|> StartingMaterial
Item --|> Material
Sample --o `/samples`
Item --* `/search-items`
Sample *-- `/new-sample`
Sample o-- `/delete-sample`
class `/delete-sample`:::route
class `/search-items`:::route
class `/samples`:::route
class `/new-sample`:::route
class `/get-item-data/~item_id~`:::route
Item --o `/get-item-data/~item_id~`
Item: str item_id