Files
MusicAnalyser/backend/app/schemas.py
google-labs-jules[bot] 6e80e97960 Implement Phase 2 Frontend with Ant Design and verify Data Ingestion
- 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.
2025-12-24 22:51:53 +00:00

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