| from pydantic import BaseModel, Field |
| from typing import Optional, Dict, Any, List |
| from datetime import datetime |
|
|
| class VideoBase(BaseModel): |
| """Base model for video data.""" |
| original_filename: str |
| |
| class VideoCreate(VideoBase): |
| """Model for creating a new video.""" |
| pass |
|
|
| class VideoMetadata(VideoBase): |
| """Model for video metadata response.""" |
| video_id: str |
| upload_date: str |
| size: int |
| status: str |
| duration: Optional[float] = None |
| video_url: Optional[str] = None |
| |
| class Config: |
| from_attributes = True |
|
|
| class VideoAnalysisResponse(BaseModel): |
| """Model for video analysis response.""" |
| video_id: str |
| transcript: Optional[str] = None |
| emotion_analysis: Optional[Dict[str, Any]] = None |
| overall_summary: Optional[str] = None |
| transcript_analysis: Optional[Dict[str, Any]] = None |
| recommendations: Optional[Dict[str, Any]] = None |
| body_language_analysis: Optional[Dict[str, Any]] = None |
| eye_contact_analysis: Optional[Dict[str, Any]] = None |
| face_analysis_data: Optional[Dict[str, Any]] = None |
| |
| class Config: |
| from_attributes = True |