mirror of
https://github.com/bnair123/MusicAnalyser.git
synced 2026-02-25 19:56:06 +00:00
- Created `frontend/` React+Vite app using Ant Design (Dark Theme). - Implemented `App.jsx` to display listening history and calculated "Vibes". - Updated `backend/app/ingest.py` to fix ReccoBeats ID parsing. - Updated `backend/app/schemas.py` to expose audio features to the API. - Updated `README.md` with detailed Docker hosting instructions. - Added `TODO.md` for Phase 3 roadmap. - Cleaned up test scripts.
46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
from pydantic import BaseModel
|
|
from typing import List, Optional
|
|
from datetime import datetime
|
|
|
|
class TrackBase(BaseModel):
|
|
id: str
|
|
name: str
|
|
artist: str
|
|
album: str
|
|
duration_ms: int
|
|
popularity: Optional[int] = None
|
|
lyrics_summary: Optional[str] = None
|
|
genre_tags: Optional[str] = None
|
|
|
|
# Audio Features
|
|
danceability: Optional[float] = None
|
|
energy: Optional[float] = None
|
|
valence: Optional[float] = None
|
|
tempo: Optional[float] = None
|
|
key: Optional[int] = None
|
|
mode: Optional[int] = None
|
|
acousticness: Optional[float] = None
|
|
instrumentalness: Optional[float] = None
|
|
liveness: Optional[float] = None
|
|
speechiness: Optional[float] = None
|
|
loudness: Optional[float] = None
|
|
|
|
class Track(TrackBase):
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
class PlayHistoryBase(BaseModel):
|
|
track_id: str
|
|
played_at: datetime
|
|
context_uri: Optional[str] = None
|
|
|
|
class PlayHistory(PlayHistoryBase):
|
|
id: int
|
|
track: Track
|
|
|
|
class Config:
|
|
from_attributes = True
|