Skip to content

Latest commit

 

History

History
110 lines (90 loc) · 1.38 KB

models.md

File metadata and controls

110 lines (90 loc) · 1.38 KB

Models

classDiagram

class Language {
    <<value>>
    +code
    +name
}

class VerseNumber {
    <<value>>
    +sections
}

class Collection {
    <<entity>>
    +name
}

class Book {
    <<entity>>
    +language
    +title
    +description
}

class Synonym {
    <<value>>
    +word
    +translation
}

class Verse {
    <<aggregate>>
    +language
    +book
    +number
    +text
    +translation
    +synonyms
}

class Text {
    <<value>>
    +lines[]
}

class Translation {
    <<value>>
}

class InboxCardType {
    <<enumeration>>
    Text,
    Translation,
    Word
}

class ReviewCardType {
    <<enumeration>>
    NumberToTranslation,
    NumberToText,
    TextToTranslation,
    TranslationToText
}

class ICard {
    +verse
}

class InboxCard {
    <<aggregate>>
    +type
    +addedAt
    +remember()
}

class ReviewCard {
    <<aggregate>>
    +type
    +progress
    +review(mark)
}

class CardProgress {
    <<value>>
    +due
}

Book --> Language : written in

Verse --> Language : has translation in
Verse --> VerseNumber : has
Verse --> Book : belongs to
Verse --> Synonym : has many
Verse --> Text : has
Verse --> Translation : has
Verse --> "M" Collection : belongs to

ICard --> Verse : created from

ReviewCard <|-- ICard
ReviewCard "1" <-- "1" CardProgress : keeps
ReviewCard --> ReviewCardType : of type

InboxCard <|-- ICard
InboxCard --> InboxCardType : of type
Loading