Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @startuml
- ContentItem ()-- SummaryListView
- SummaryOutline --* SummarySourceType
- SummaryOutline --* DocumentType
- SummaryOutline --o "0..n" ParentalSetting
- SummaryOutline --o Rating
- SummaryOutline --o "1..n" Author
- SummaryListView --* SummarySourceType
- SummaryListView --* DocumentType
- SummaryListView --o Rating
- SummaryListView --* "1..n" AuthorListView
- SummaryDetailView --* SummarySourceType
- SummaryDetailView --* DocumentType
- SummaryDetailView --o Rating
- SummaryDetailView --* "1..n" AuthorListView
- SummaryDetailView --o Period
- SummaryDetailView --o Genre
- SummaryDetailView --o "0..n" SummaryDownloadFormat
- SummaryDetailView --o "0..n" QualityListView
- SummaryDetailView --o "0..n" SummarySection
- SummarySection --* SummarySectionType
- class SummaryOutline <<Entity>> {
- int summaryId;
- int summarySourceId;
- String title;
- String subtitle; // For list view
- String teaser; // For list view
- int languageId;
- SummarySourceType sourceType;
- DocumentType documentType;
- Set<Integer> sumGroupIds;
- Set<String> countriesIncluded;
- Set<String> countriesExcluded;
- Set<ParentalSetting> parentalSettings;
- int pushFactor;
- Rating rating;
- List<Author> authors;
- int publisherId;
- String publisherFullName; // For list view
- String publisherShortName; // For list view
- String publisherImprint; // For list view
- YearMonth publicationDate;
- boolean active;
- Instant activatedAt;
- boolean audioActive;
- Instant audioActivatedAt;
- // The below properties are only needed to calculate isPreviewAvailable
- int internalPriority;
- boolean onDemand;
- Instant coverModifiedAt;
- LocalDate rightsExpireAt;
- LocalDate rightsRequestedAt;
- boolean publisherApprovalRejected;
- boolean noOnlineRights;
- __
- boolean isPreviewAvailable()
- }
- class Author <<Entity>> {
- int authorId;
- String firstName;
- String middleName;
- String lastName;
- Gender gender;
- }
- class SummaryListView <<DTO>> {
- int summaryId; // aka dataId;
- String title;
- String subtitle;
- String teaser;
- int languageId;
- SummarySourceType sourceType;
- DocumentType documentType;
- String canonicalName;
- URI coverUri;
- Rating rating;
- List<AuthorListView> authors;
- String publisherName;
- YearMonth publicationDate;
- boolean active;
- Instant activatedAt;
- boolean audioActive;
- Instant audioActivatedAt;
- boolean previewAvailable;
- }
- class SummaryDetailView <<DTO>> {
- int summaryId; // aka dataId;
- String title;
- String subtitle;
- String emailSentenceHtml;
- int languageId;
- SummarySourceType summarySourceType;
- int summarySourceId;
- String sourceTitle; // aka originalTitle
- String sourceSubtitle; // aka originalSubtitle
- List<AuthorListView> authors;
- String publisherName;
- YearMonth publicationDate;
- DocumentType documentType;
- String canoniclName;
- URI coverUri;
- boolean audioForthcoming;
- Set<SummaryDownloadFormat> formats;
- Rating rating;
- String specialCopyright;
- Instant activatedAt; // TODO remove?
- Instant audioActivatedAt; // TODO remove?
- Genre genre;
- Period period;
- List<QualityListView> qualities;
- List<SummarySection> summarySections;
- }
- class Rating <<DTO>> {
- int ratingValue;
- int ratingMax;
- }
- class AuthorListView <<DTO>> {
- int authorId;
- String firstName;
- String middleName;
- String lastName;
- Gender gender;
- }
- class QualityListView <<DTO>> {
- String qualityKey;
- boolean extrinsic;
- }
- class SummarySection <<DTO>> {
- SummarySectionType sectionType;
- String sectionTitle;
- String sectionHtml;
- }
- together {
- enum SummarySectionType {
- RECOMMENDATION,
- ABSTRACT,
- REVIEW, // instead of abstract for reviews
- TAKEAWAYS, // TODO: remove and have separate?
- ABOUT_AUTHOR,
- ABOUT_TEXT, // For classics
- HISTORICAL_BACKGROUND // For classics
- }
- enum Genre {
- PHILOSOPHY,
- NATURAL_SCIENCES,
- EDUCATION,
- PSYCHOLOGY...
- }
- enum Period {
- ANTIQUITY,
- GREEK_ANTIQUITY,
- ROMAN_ANTIQUITY,
- LATE_ANTIQUITY...
- }
- enum SummaryDownloadFormat {
- PDF,
- AUDIO,
- MOBI,
- KINDLE,
- EPUB,
- MOBILE_APP,
- WEB
- }
- enum SummarySourceType {
- BOOK,
- VIDEO,
- ARTICLE,
- CHAPTER,
- REPORT,
- PODCAST
- }
- enum DocumentType {
- ABSTRACT,
- REVIEW
- }
- enum ParentalSetting {
- POLITICAL,
- RELIGIOUS,
- CRUDE_LANGUAGE
- }
- }
- @enduml
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement