music_player_graphql/schema/objects/
folder.rs1use async_graphql::*;
2use music_player_entity::folder::Model;
3
4use super::playlist::Playlist;
5
6#[derive(Default, Clone)]
7pub struct Folder {
8 pub id: ID,
9 pub name: String,
10 pub playlists: Vec<Playlist>,
11}
12
13#[Object]
14impl Folder {
15 async fn id(&self) -> &str {
16 &self.id
17 }
18
19 async fn name(&self) -> &str {
20 &self.name
21 }
22
23 async fn playlists(&self) -> Vec<Playlist> {
24 self.playlists.clone()
25 }
26}
27
28impl From<Model> for Folder {
29 fn from(model: Model) -> Self {
30 Self {
31 id: ID(model.id),
32 name: model.name,
33 playlists: model.playlists.into_iter().map(Playlist::from).collect(),
34 }
35 }
36}