forked from arnaugarcia/sallefy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsallefy-jdl.jh
executable file
·102 lines (81 loc) · 1.88 KB
/
sallefy-jdl.jh
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
entity Track {
name String,
rating Double,
url String,
popularity String,
rating String,
thumbnail String,
createdAt ZonedDateTime,
released ZonedDateTime,
duration Integer,
color String
}
entity Playlist {
name String,
collaborative Boolean,
description TextBlob,
primaryColor String,
cover String,
thumbnail String,
publicAccessible Boolean,
numberSongs Integer,
followers Integer,
rating Double
}
entity Album {
title String,
year Integer,
thumbnail String,
totalTracks Integer
}
entity LikeTrack {
liked Boolean,
date ZonedDateTime
}
entity FollowUser {
date ZonedDateTime
}
entity FollowPlaylist {
date ZonedDateTime
}
entity LikeAlbum {
liked Boolean,
date ZonedDateTime
}
entity Genre {
name String,
popularity Integer
}
entity Playback {
ip String,
latitude Double,
longitude Double,
agent AgentType,
date ZonedDateTime
}
enum AgentType {
MOBILE, WEB, OTHER
}
relationship ManyToOne {
Playlist{user(login) required} to User,
Album{user(login) required} to User,
Track{user(login) required} to User,
FollowUser{followed(login) required} to User,
FollowUser{user(login) required} to User,
LikeTrack{user(login) required} to User,
LikeAlbum {user(login) required} to User,
Playback{user(login) required} to User,
Playback{track(name) required} to Track,
LikeTrack{track(name) required} to Track,
LikeAlbum{album(title) required} to Album,
FollowPlaylist{user(login) required} to User,
FollowPlaylist{playlist(name) required} to Playlist
}
relationship ManyToMany {
Playlist{track(name)} to Track{playlist(name)},
Album{track(name)} to Track{album(title)},
Track{genre(name)} to Genre{track(name)}
}
// Use Data Transfer Objects (DTO)
dto * with mapstruct
service Album, Track, Playlist with serviceImpl