Files
HartOMat/backend/app/domains/media/schemas.py
T
Hartmut c74e118b98 feat(E): add MediaAsset catalog — model, CRUD API, MediaBrowser UI
Migration 040: media_assets table with RLS (tenant_isolation + admin_bypass).
domains/media/: MediaAsset model, schemas, service, router with ZIP-download.
publish_asset Celery task in rendering/tasks.py.
core/storage.py: download_bytes() method for MinIO + LocalStorage.
frontend: MediaBrowser.tsx (grid/list, multi-select, zip-download, pagination) + api/media.ts.
Route /media (AdminRoute) + sidebar link with Image icon for admin+pm.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 17:11:17 +01:00

27 lines
694 B
Python

import uuid
from datetime import datetime
from pydantic import BaseModel
from app.domains.media.models import MediaAssetType
class MediaAssetOut(BaseModel):
id: uuid.UUID
tenant_id: uuid.UUID | None
product_id: uuid.UUID | None
cad_file_id: uuid.UUID | None
order_line_id: uuid.UUID | None
workflow_run_id: uuid.UUID | None
asset_type: MediaAssetType
storage_key: str
file_size_bytes: int | None
mime_type: str | None
width: int | None
height: int | None
duration_s: float | None
render_config: dict | None
is_archived: bool
created_at: datetime
download_url: str | None = None
model_config = {"from_attributes": True}