Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
612
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. @startuml
  2.  
  3. ContentItem ()-- SummaryListView
  4.  
  5. SummaryOutline --* SummarySourceType
  6. SummaryOutline --* DocumentType
  7. SummaryOutline --o "0..n" ParentalSetting
  8. SummaryOutline --o Rating
  9. SummaryOutline --o "1..n" Author
  10.  
  11. SummaryListView --* SummarySourceType
  12. SummaryListView --* DocumentType
  13. SummaryListView --o Rating
  14. SummaryListView --* "1..n" AuthorListView
  15.  
  16. SummaryDetailView --* SummarySourceType
  17. SummaryDetailView --* DocumentType
  18. SummaryDetailView --o Rating
  19. SummaryDetailView --* "1..n" AuthorListView
  20. SummaryDetailView --o Period
  21. SummaryDetailView --o Genre
  22. SummaryDetailView --o "0..n" SummaryDownloadFormat
  23. SummaryDetailView --o "0..n" QualityListView
  24. SummaryDetailView --o "0..n" SummarySection
  25.  
  26. SummarySection --* SummarySectionType
  27.  
  28. class SummaryOutline <<Entity>> {
  29. int summaryId;
  30. int summarySourceId;
  31. String title;
  32. String subtitle; // For list view
  33. String teaser; // For list view
  34. int languageId;
  35. SummarySourceType sourceType;
  36. DocumentType documentType;
  37. Set<Integer> sumGroupIds;
  38. Set<String> countriesIncluded;
  39. Set<String> countriesExcluded;
  40. Set<ParentalSetting> parentalSettings;
  41. int pushFactor;
  42. Rating rating;
  43. List<Author> authors;
  44. int publisherId;
  45. String publisherFullName; // For list view
  46. String publisherShortName; // For list view
  47. String publisherImprint; // For list view
  48. YearMonth publicationDate;
  49. boolean active;
  50. Instant activatedAt;
  51. boolean audioActive;
  52. Instant audioActivatedAt;
  53.  
  54. // The below properties are only needed to calculate isPreviewAvailable
  55. int internalPriority;
  56. boolean onDemand;
  57. Instant coverModifiedAt;
  58. LocalDate rightsExpireAt;
  59. LocalDate rightsRequestedAt;
  60. boolean publisherApprovalRejected;
  61. boolean noOnlineRights;
  62. __
  63. boolean isPreviewAvailable()
  64. }
  65.  
  66. class Author <<Entity>> {
  67. int authorId;
  68. String firstName;
  69. String middleName;
  70. String lastName;
  71. Gender gender;
  72. }
  73.  
  74. class SummaryListView <<DTO>> {
  75. int summaryId; // aka dataId;
  76. String title;
  77. String subtitle;
  78. String teaser;
  79. int languageId;
  80. SummarySourceType sourceType;
  81. DocumentType documentType;
  82. String canonicalName;
  83. URI coverUri;
  84. Rating rating;
  85. List<AuthorListView> authors;
  86. String publisherName;
  87. YearMonth publicationDate;
  88. boolean active;
  89. Instant activatedAt;
  90. boolean audioActive;
  91. Instant audioActivatedAt;
  92. boolean previewAvailable;
  93. }
  94.  
  95. class SummaryDetailView <<DTO>> {
  96. int summaryId; // aka dataId;
  97. String title;
  98. String subtitle;
  99. String emailSentenceHtml;
  100. int languageId;
  101. SummarySourceType summarySourceType;
  102. int summarySourceId;
  103. String sourceTitle; // aka originalTitle
  104. String sourceSubtitle; // aka originalSubtitle
  105. List<AuthorListView> authors;
  106. String publisherName;
  107. YearMonth publicationDate;
  108. DocumentType documentType;
  109. String canoniclName;
  110. URI coverUri;
  111. boolean audioForthcoming;
  112. Set<SummaryDownloadFormat> formats;
  113. Rating rating;
  114. String specialCopyright;
  115. Instant activatedAt; // TODO remove?
  116. Instant audioActivatedAt; // TODO remove?
  117. Genre genre;
  118. Period period;
  119. List<QualityListView> qualities;
  120. List<SummarySection> summarySections;
  121. }
  122.  
  123. class Rating <<DTO>> {
  124. int ratingValue;
  125. int ratingMax;
  126. }
  127.  
  128. class AuthorListView <<DTO>> {
  129. int authorId;
  130. String firstName;
  131. String middleName;
  132. String lastName;
  133. Gender gender;
  134. }
  135.  
  136. class QualityListView <<DTO>> {
  137. String qualityKey;
  138. boolean extrinsic;
  139. }
  140.  
  141. class SummarySection <<DTO>> {
  142. SummarySectionType sectionType;
  143. String sectionTitle;
  144. String sectionHtml;
  145. }
  146.  
  147. together {
  148. enum SummarySectionType {
  149. RECOMMENDATION,
  150. ABSTRACT,
  151. REVIEW, // instead of abstract for reviews
  152. TAKEAWAYS, // TODO: remove and have separate?
  153. ABOUT_AUTHOR,
  154. ABOUT_TEXT, // For classics
  155. HISTORICAL_BACKGROUND // For classics
  156. }
  157.  
  158. enum Genre {
  159. PHILOSOPHY,
  160. NATURAL_SCIENCES,
  161. EDUCATION,
  162. PSYCHOLOGY...
  163. }
  164.  
  165. enum Period {
  166. ANTIQUITY,
  167. GREEK_ANTIQUITY,
  168. ROMAN_ANTIQUITY,
  169. LATE_ANTIQUITY...
  170. }
  171.  
  172. enum SummaryDownloadFormat {
  173. PDF,
  174. AUDIO,
  175. MOBI,
  176. KINDLE,
  177. EPUB,
  178. MOBILE_APP,
  179. WEB
  180. }
  181.  
  182. enum SummarySourceType {
  183. BOOK,
  184. VIDEO,
  185. ARTICLE,
  186. CHAPTER,
  187. REPORT,
  188. PODCAST
  189. }
  190.  
  191. enum DocumentType {
  192. ABSTRACT,
  193. REVIEW
  194. }
  195.  
  196. enum ParentalSetting {
  197. POLITICAL,
  198. RELIGIOUS,
  199. CRUDE_LANGUAGE
  200. }
  201. }
  202. @enduml
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement