Add new fields to event theme model for asset handling
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

Added `background_image_url`, `foreground_image_url`, and `asset_image_urls` fields to enhance theme customization. Updated `asset_image_urls` to use `MutableDict` with a default empty dictionary and ensured consistency in the model and migration script.
This commit is contained in:
2025-03-12 16:14:07 +01:00
parent b94d88bcf6
commit efb1dfd2a4
2 changed files with 12 additions and 1 deletions

View File

@@ -24,7 +24,10 @@ def upgrade() -> None:
sa.Column('name', sa.String(), nullable=False),
sa.Column('description', sa.String(), nullable=True),
sa.Column('preview_image_url', sa.String(), nullable=True),
sa.Column('color_palette', sa.JSON(), nullable=False),
sa.Column('background_image_url', sa.String(), nullable=True),
sa.Column('foreground_image_url', sa.String(), nullable=True),
sa.Column('color_palette', sa.JSON(), nullable=False, default=dict),
sa.Column('asset_image_urls', sa.JSON(), nullable=False, default=dict),
sa.Column('fonts', sa.JSON(), nullable=False),
sa.Column('id', sa.UUID(), nullable=False),
sa.Column('is_active', sa.Boolean(), nullable=False),

View File

@@ -1,4 +1,7 @@
from typing import Dict
from sqlalchemy import Column, String, JSON, Boolean
from sqlalchemy.ext.mutable import MutableDict
from sqlalchemy.orm import relationship
from .base import Base, TimestampMixin, UUIDMixin
@@ -9,9 +12,14 @@ class EventTheme(Base, UUIDMixin, TimestampMixin):
name = Column(String, nullable=False)
description = Column(String)
preview_image_url = Column(String)
background_image_url = Column(String, nullable=True)
foreground_image_url = Column(String, nullable=True)
asset_image_urls: Dict[str, str] = Column(MutableDict.as_mutable(JSON), default=dict)
color_palette = Column(JSON, nullable=False)
fonts = Column(JSON, nullable=False)
is_active = Column(Boolean, default=True, nullable=False)
# Relationship with Event
events = relationship("Event", back_populates="theme")