forge/backend/app/schemas/job.py
DJP 7a804e896d Initial commit - FORGE AI unified platform
Features:
- Image generation (OpenAI, Gemini, Leonardo, Bria, Stability, Flux)
- Nano Banana iterative editing
- Video generation and upscaling
- Audio TTS, STT, sound effects (ElevenLabs)
- Text prompt studio and alt text
- User authentication with JWT/cookies
- Admin panel with voice management
- Job queue with Celery
- PostgreSQL + Redis backend
- Next.js 15 + FastAPI architecture

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
2025-12-09 20:39:00 -05:00

48 lines
1.3 KiB
Python

"""Job Schemas"""
from pydantic import BaseModel
from typing import Optional, List, Dict, Any
from datetime import datetime
from uuid import UUID
class JobBase(BaseModel):
module: str
action: str
priority: int = 5
input_data: Dict[str, Any]
class JobCreate(JobBase):
user_id: Optional[UUID] = None
project_id: Optional[UUID] = None
input_asset_ids: Optional[List[UUID]] = None
class JobUpdate(BaseModel):
status: Optional[str] = None
progress: Optional[int] = None
output_data: Optional[Dict[str, Any]] = None
output_asset_ids: Optional[List[UUID]] = None
error_message: Optional[str] = None
class JobResponse(JobBase):
id: UUID
user_id: Optional[UUID] = None
project_id: Optional[UUID] = None
status: str
progress: int
output_data: Optional[Dict[str, Any]] = None
input_asset_ids: Optional[List[UUID]] = None
output_asset_ids: Optional[List[UUID]] = None
error_message: Optional[str] = None
api_provider: Optional[str] = None
api_model: Optional[str] = None
queued_at: Optional[datetime] = None
started_at: Optional[datetime] = None
completed_at: Optional[datetime] = None
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True