-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdatamodel.puml
106 lines (82 loc) · 1.58 KB
/
datamodel.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
@startuml
title Data model
class Book {
String: title
String?: summary
Date?: releaseDate
String?: language
Int?: ageRating
String?: ISBN
}
class Series {
String: title
String?: titleSort
}
class SeriesIssue {
String?: issueNumber
Float?: issueNumberSort
}
class Publisher {
String: name
}
enum ReadingDirection {
LTR
RTL
Vertical
}
class Author {
String: name
}
class Work {
String: role
}
class BookCollection {
String: name
String?: nameSort
Bool?: ended
}
class BookCollectionEntry {
String?: number
String?: numberSort
}
class SeriesCollectionEntry {
String?: number
String?: numberSort
}
class SeriesCollection {
String: name
String?: nameSort
Bool?: ended
}
class Genre {
String: value
}
class Tag {
String: value
}
class ExternalId {
String: url
String: id
String?: referential
}
enum SeriesStatus {
ONGOING
ENDED
ABANDONED
HIATUS
}
Book "0..*" - "0..1" Series: > part of
(Book, Series) .. SeriesIssue
Book "0..*" -up- "0..1" Publisher: > published by
Book "0..*" -up-o "0..*" Genre: > has genres
Book "0..*" -up-o "0..*" Tag: > has tags
Book "1" -up- "0..*" ExternalId: > has externalIds
Book -up- "0..1" ReadingDirection: > read as
Book "0..*" -- "0..*" Author: < wrote
(Book, Author) .. Work
Book "0..*" -- "0..*" BookCollection: > part of
(Book, BookCollection) .. BookCollectionEntry
Series -up- "0..1" SeriesStatus: > status
Series "0..*" - "0..*" SeriesCollection: > part of
(Series, SeriesCollection) .. SeriesCollectionEntry
@enduml