A decentralized music tracking and discovery platform built on AT Protocol 馃幍
rocksky.app
spotify
atproto
lastfm
musicbrainz
scrobbling
listenbrainz
1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, sqlx::FromRow, Serialize, Deserialize, Clone)]
5pub struct Track {
6 pub xata_id: String,
7 pub title: String,
8 pub artist: String,
9 pub album_artist: String,
10 pub album_art: Option<String>,
11 pub album: String,
12 pub track_number: i32,
13 pub duration: i32,
14 pub mb_id: Option<String>,
15 pub youtube_link: Option<String>,
16 pub spotify_link: Option<String>,
17 pub tidal_link: Option<String>,
18 pub apple_music_link: Option<String>,
19 pub sha256: String,
20 pub lyrics: Option<String>,
21 pub composer: Option<String>,
22 pub genre: Option<String>,
23 pub disc_number: i32,
24 pub copyright_message: Option<String>,
25 pub label: Option<String>,
26 pub uri: Option<String>,
27 pub artist_uri: Option<String>,
28 pub album_uri: Option<String>,
29 #[serde(with = "chrono::serde::ts_seconds")]
30 pub xata_createdat: DateTime<Utc>,
31}