Files
eventspace/backend/app/schemas/event_themes.py
Felipe Cardoso 288e09202d
All checks were successful
Build and Push Docker Images / changes (push) Successful in 4s
Build and Push Docker Images / build-backend (push) Successful in 50s
Build and Push Docker Images / build-frontend (push) Has been skipped
Add background and foreground image URLs to event themes
Extended the event theme schema to include `background_image_url`
2025-03-12 16:20:12 +01:00

55 lines
1.6 KiB
Python

# app/schemas/event_themes.py
from typing import Dict, Optional
from uuid import UUID # Add this import
from pydantic import BaseModel, Field, validator, field_validator
class EventThemeBase(BaseModel):
name: str = Field(..., min_length=1) # Ensures name is not empty
description: Optional[str] = None
preview_image_url: Optional[str] = None
background_image_url: Optional[str] = None
foreground_image_url: Optional[str] = None
color_palette: Dict[str, str] = Field(..., min_items=1) # Ensures at least one color
asset_image_urls: Optional[Dict[str, str]] = None
fonts: Dict[str, str] = Field(..., min_items=1) # Ensures at least one font
is_active: bool = True
@field_validator('color_palette')
def validate_color_palette(cls, v):
if not v:
raise ValueError("color_palette cannot be empty")
return v
@field_validator('fonts')
def validate_fonts(cls, v):
if not v:
raise ValueError("fonts cannot be empty")
return v
class EventThemeCreate(EventThemeBase):
pass
class EventThemeUpdate(EventThemeBase):
name: Optional[str] = None
color_palette: Optional[Dict[str, str]] = None
fonts: Optional[Dict[str, str]] = None
# Move EventThemeInDBBase before EventThemeResponse
class EventThemeInDBBase(EventThemeBase):
id: UUID # Changed from str to UUID to match the model
class Config:
from_attributes = True
# Now EventThemeResponse can properly inherit from EventThemeInDBBase
class EventThemeResponse(EventThemeInDBBase):
pass
class EventTheme(EventThemeInDBBase):
pass