4.9 KiB
4.9 KiB
Implementation Checklist
Generated: 2025-12-18T15:56:52
Components
- [❌] AudioPlayer (
component_audio_player)- [❌] prop:
currentSong: Song - [❌] prop:
queue: array[Song] - [❌] prop:
autoplay: boolean - [⚠️] event:
onPlay - [⚠️] event:
onPause - [⚠️] event:
onSeek - [⚠️] event:
onVolumeChange - [⚠️] event:
onNext - [⚠️] event:
onPrevious - [⚠️] event:
onShuffle - [⚠️] event:
onRepeat
- [❌] prop:
- [❌] PlayerControls (
component_player_controls)- [✅] prop:
isPlaying: boolean - [❌] prop:
currentTime: number - [❌] prop:
duration: number - [⚠️] event:
onPlay - [⚠️] event:
onPause - [⚠️] event:
onSeek
- [✅] prop:
- [❌] SongCard (
component_song_card)- [❌] prop:
song: Song - [❌] prop:
showArtist: boolean - [❌] prop:
showAlbum: boolean - [✅] event:
onPlay - [⚠️] event:
onAddToPlaylist
- [❌] prop:
- [❌] AlbumCard (
component_album_card)- [❌] prop:
album: Album - [❌] prop:
showArtist: boolean - [✅] event:
onClick
- [❌] prop:
- [❌] ArtistCard (
component_artist_card)- [❌] prop:
artist: Artist - [✅] event:
onClick
- [❌] prop:
- [❌] PlaylistCard (
component_playlist_card)- [❌] prop:
playlist: Playlist - [✅] event:
onClick
- [❌] prop:
- [❌] UploadForm (
component_upload_form)- [✅] prop:
albums: array[Album] - [❌] prop:
genres: array[Genre] - [⚠️] event:
onUpload - [⚠️] event:
onCancel
- [✅] prop:
- [❌] WaveformDisplay (
component_waveform_display)- [❌] prop:
audioUrl: string - [❌] prop:
waveformData: array[number] - [✅] prop:
currentTime: number - [✅] event:
onSeek
- [❌] prop:
- [❌] GenreBadge (
component_genre_badge)- [❌] prop:
genre: Genre - [❌] prop:
clickable: boolean - [✅] event:
onClick
- [❌] prop:
- [❌] TrackList (
component_track_list)- [❌] prop:
songs: array[Song] - [❌] prop:
showTrackNumber: boolean - [❌] prop:
reorderable: boolean - [⚠️] event:
onPlay - [⚠️] event:
onReorder
- [❌] prop:
- [❌] ArtistHeader (
component_artist_header)- [❌] prop:
artist: Artist
- [❌] prop:
- [❌] AlbumHeader (
component_album_header)- [❌] prop:
album: Album - [❌] prop:
artist: Artist - [✅] event:
onPlayAll
- [❌] prop:
- [❌] PlaylistHeader (
component_playlist_header)- [❌] prop:
playlist: Playlist - [✅] prop:
isOwner: boolean - [✅] event:
onPlayAll - [✅] event:
onEdit - [✅] event:
onDelete
- [❌] prop:
- [✅] SocialLinks (
component_social_links)- [✅] prop:
links: object
- [✅] prop:
- [✅] AuthForm (
component_auth_form)- [✅] prop:
mode: enum[login, register, forgot] - [✅] event:
onSubmit
- [✅] prop:
- [✅] SearchBar (
component_search_bar)- [✅] prop:
placeholder: string - [✅] event:
onSearch
- [✅] prop:
- [❌] SearchResults (
component_search_results)- [❌] prop:
results: object
- [❌] prop:
- [⚠️] CreatePlaylistModal (
component_create_playlist_modal)- [✅] prop:
isOpen: boolean - [⚠️] event:
onCreate - [✅] event:
onClose
- [✅] prop:
- [❌] ProfileForm (
component_profile_form)- [❌] prop:
user: User - [⚠️] event:
onSave
- [❌] prop:
- [✅] AvatarUpload (
component_avatar_upload)- [✅] prop:
currentAvatarUrl: string - [✅] event:
onUpload
- [✅] prop:
- [❌] SectionHeader (
component_section_header)- [✅] prop:
title: string - [❌] prop:
actionLabel: string - [⚠️] event:
onActionClick
- [✅] prop:
- [❌] GenreHeader (
component_genre_header)- [❌] prop:
genre: Genre
- [❌] prop:
API Endpoints
- [✅]
POST/api/auth/register - [✅]
POST/api/auth/login - [✅]
POST/api/auth/forgot-password - [✅]
POST/api/auth/reset-password - [✅]
GET/api/users/me - [✅]
PUT/api/users/me - [✅]
POST/api/artists - [✅]
GET/api/artists/:id - [✅]
PUT/api/artists/:id - [✅]
GET/api/artists/:id/songs - [✅]
GET/api/artists/:id/albums - [✅]
POST/api/songs/upload - [✅]
GET/api/songs/:id - [✅]
PUT/api/songs/:id - [✅]
DELETE/api/songs/:id - [✅]
POST/api/songs/:id/play - [✅]
POST/api/albums - [✅]
GET/api/albums/:id - [✅]
PUT/api/albums/:id - [✅]
DELETE/api/albums/:id - [✅]
POST/api/playlists - [✅]
GET/api/playlists - [✅]
GET/api/playlists/:id - [✅]
PUT/api/playlists/:id - [✅]
DELETE/api/playlists/:id - [✅]
POST/api/playlists/:id/songs - [⚠️]
DELETE/api/playlists/:playlistId/songs/:songId - [✅]
PUT/api/playlists/:id/reorder - [✅]
GET/api/discover/trending - [✅]
GET/api/discover/new-releases - [✅]
GET/api/discover/genres - [✅]
GET/api/discover/genres/:slug - [✅]
GET/api/search - [✅]
POST/api/labels - [✅]
GET/api/labels/:id/artists
Data Models
- [⚠️] User (
model_user) - [⚠️] Artist (
model_artist) - [⚠️] Label (
model_label) - [⚠️] Genre (
model_genre) - [⚠️] Album (
model_album) - [⚠️] Song (
model_song) - [⚠️] SongGenre (
model_song_genre) - [⚠️] Playlist (
model_playlist) - [⚠️] PlaylistSong (
model_playlist_song)