feat: local storage logic & endpoints

This commit is contained in:
Senko-san
2026-06-07 15:34:06 +03:00
parent dfd512a13f
commit 81ea93c371
23 changed files with 945 additions and 18 deletions
+3 -1
View File
@@ -1,5 +1,7 @@
"""Domain entities and value objects — pure, framework-free."""
from app.domain.entities.storage import ObjectStat
from app.domain.entities.track import Artist, Track
from app.domain.entities.user import Credentials, User
__all__ = ["Credentials", "User"]
__all__ = ["Artist", "Credentials", "ObjectStat", "Track", "User"]
+9
View File
@@ -0,0 +1,9 @@
"""Value objects for file storage."""
from dataclasses import dataclass
@dataclass(frozen=True, slots=True)
class ObjectStat:
size: int
content_type: str | None
+29
View File
@@ -0,0 +1,29 @@
"""Track and Artist domain entities."""
import datetime as dt
import uuid
from dataclasses import dataclass
@dataclass(frozen=True, slots=True)
class Artist:
id: uuid.UUID
name: str
created_at: dt.datetime
updated_at: dt.datetime
@dataclass(frozen=True, slots=True)
class Track:
id: uuid.UUID
title: str
artist_id: uuid.UUID
file_path: str
file_format: str
file_size: int
source: str
source_id: str
duration_seconds: int | None
metadata_status: str
created_at: dt.datetime
updated_at: dt.datetime