from sqlalchemy import select from sqlalchemy.orm import Session from ..models import HeroSlide, VehicleOption from ..serializers import media_model_dict def public_model_dict(item) -> dict: result = media_model_dict(item) result.pop("deptId", None) result.pop("createdById", None) return result def site_config(db: Session, active_only: bool, include_public_extras: bool = True) -> dict: hero_stmt = select(HeroSlide).order_by(HeroSlide.sortOrder.asc()) vehicle_stmt = select(VehicleOption).order_by(VehicleOption.sortOrder.asc()) if active_only: hero_stmt = hero_stmt.where(HeroSlide.isActive.is_(True)) vehicle_stmt = vehicle_stmt.where(VehicleOption.isActive.is_(True)) hero_slides = db.scalars(hero_stmt).all() result = { "heroSlides": [public_model_dict(item) for item in hero_slides], } if include_public_extras: result["vehicleOptions"] = [public_model_dict(item) for item in db.scalars(vehicle_stmt).all()] return result