Skip to content

Latest commit

 

History

History
226 lines (200 loc) · 3.98 KB

MODELS.md

File metadata and controls

226 lines (200 loc) · 3.98 KB
classDiagram
  direction TB

  %% Relationships
  Api ..> Board
  Api ..> Organization
  Board ..> BoardMember
  Board ..> Connector
  Board ..> Item
  Board ..> Tag
  Board ..> AppCardItem
  Board ..> CardItem
  Board ..> DocumentItem
  Board ..> EmbedItem
  Board ..> FrameItem
  Board ..> ImageItem
  Board ..> ShapeItem
  Board ..> StickyNoteItem
  Board ..> TextItem
  AppCardItem ..> Tag
  CardItem ..> Tag
  DocumentItem ..> Tag
  EmbedItem ..> Tag
  FrameItem ..> Tag
  ImageItem ..> Tag
  Item ..> Tag
  Item ..> Connector
  ShapeItem ..> Tag
  StickyNoteItem ..> Tag
  Tag ..> Item
  Team ..> Board
  Team ..> TeamMember
  TextItem ..> Tag
  Organization ..> Team

  %% Items extend generic item
  Item <|--  AppCardItem
  Item <|--  CardItem
  Item <|--  DocumentItem
  Item <|--  EmbedItem
  Item <|--  ImageItem
  Item <|--  ShapeItem
  Item <|--  StickyNoteItem
  Item <|--  TextItem

  %% MUST
  class Api {
    createBoard() Board
    getBoard() Board
    getOrganization() Organization
    getAllBoards() Board[]
  }

  %% MUST
  class Organization {
    createTeam() Team
    getTeam() Team
    getAllTeams() Team[]
  }

  %% NICE
  class Organization {
    getDataClassification() DataClassification
    getDefaultTeamSettings() TeamSettings
    getOrganizationMember() OrganizationMember
    getOrganizationMembers() OrganizationMember[]
  }

  %% MUST
  class Team {
    updateTeam() void
    inviteTeamMember() void
    deleteTeam() void
    deleteTeamMember() void
    getTeamMember() TeamMember
    getAllTeamMembers() TeamMember[]
  }

  %% NICE
  class Team {
    getBoardDataClassification() BoardDataClassification
    setBoardDataClassification() void
    setBoardDataClassificationBulk() void
    getDataClassification() DataClassification
    setDataClassification() void
    getTeamSettings() TeamSettings
    updateTeamSettings() void
  }

  %% NICE
  class TeamMember {
    update() void
  }

  %% MUST
  class Board {
    createAppCard() AppCardItem
    createCard() CardItem
    createConnector() Connector
    createDocument() DocumentItem
    createEmbed() EmbedItem
    createFrame() FrameItem
    createImage() ImageItem
    createShape() ShapeItem
    createStickyNote() StickyNoteItem
    createText() TextItem
    getAppCard() AppCardItem
    getCard() CardItem
    getConnector() Connector
    getAllConnectors() Connector[]
    getDocument() DocumentItem
    getEmbed() EmbedItem
    getFrame() FrameItem
    getImage() ImageItem
    getShape() ShapeItem
    getStickyNote() StickyNoteItem
    getText() TextItem
    getItem() Item
  }

  %% NICE
  class Board {
    createTag() Tag
    getTag() Tag
    getAllTags() Tag[]
    getAllItems() Item[]
    getMember() BoardMember
    getAllMembers() BoardMember[]
    copy() Board
    share() void
    update() void
    delete() void
    removeMember() void
    removeTag() void
    findItem() Item
  }

  %% NICE
  class BoardMember {
    update() void
  }

  %% MUST
  class Item {
    update() void
    delete() void
  }

  %% NICE
  class Item {
    connectTo() Connector
  }

  %% MUST
  class AppCardItem {
    getAllTags() Tag[]
    removeTag() void
    attachTag() void
  }

  %% MUST
  class CardItem {
    getAllTags() Tag[]
    removeTag() void
    attachTag() void
  }

  %% MUST
  class DocumentItem {
  }

  %% MUST
  class EmbedItem {
  }

  %% MUST
  class FrameItem {
  }

  %% NICE
  class FrameItem {
    createAppCard() AppCardItem
    createCard() CardItem
    createDocument() DocumentItem
    createEmbed() EmbedItem
    createImage() ImageItem
    createShape() ShapeItem
    createStickyNote() StickyNoteItem
    createText() TextItem

    getAllItems() Item[]
  }

  %% MUST
  class ImageItem {
  }

  %% MUST
  class ShapeItem {
  }

  %% MUST
  class StickyNoteItem {
    getAllTags() Tag[]
    removeTag() void
    attachTag() void
  }

  %% MUST
  class TextItem {
  }

  %% MUST
  class Connector {
    update() void
    delete() void
  }

  %% NICE
  class Tag {
    update() void
    delete() void
    getAllTaggedItems() Item[]
  }