Files
orion/app/modules/cms/schemas/__init__.py
Samir Boulahtit 2250054ba2 feat: consolidate media service, add merchant users page, fix metrics overlap
- Merge ImageService into MediaService with WebP variant generation,
  DB-backed storage stats, and module-driven media usage discovery
  via new MediaUsageProviderProtocol
- Add merchant users admin page with scoped user listing, stats
  endpoint, template, JS, and i18n strings (de/en/fr/lb)
- Fix merchant user metrics so Owners and Team Members are mutually
  exclusive (filter team_members on user_type="member" and exclude
  owner IDs) ensuring stat cards add up correctly
- Update billing and monitoring services to use media_service
- Update subscription-billing and feature-gating docs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 21:17:11 +01:00

125 lines
2.8 KiB
Python

# app/modules/cms/schemas/__init__.py
"""
CMS module Pydantic schemas for API request/response validation.
"""
from app.modules.cms.schemas.content_page import (
# Admin schemas
ContentPageCreate,
ContentPageUpdate,
ContentPageResponse,
HomepageSectionsResponse as ContentPageHomepageSectionsResponse,
SectionUpdateResponse,
# Store schemas
StoreContentPageCreate,
StoreContentPageUpdate,
CMSUsageResponse,
# Public/Shop schemas
PublicContentPageResponse,
ContentPageListItem,
)
from app.modules.cms.schemas.homepage_sections import (
# Translatable text
TranslatableText,
# Section components
HeroButton,
HeroSection,
FeatureCard,
FeaturesSection,
PricingSection,
CTASection,
# Main structure
HomepageSections,
# API schemas
SectionUpdateRequest,
HomepageSectionsResponse,
)
# Media schemas
from app.modules.cms.schemas.media import (
FailedFileInfo,
MediaDetailResponse,
MediaItemResponse,
MediaListResponse,
MediaMetadataUpdate,
MediaUploadResponse,
MediaUsageItem,
MediaUsageResponse,
MessageResponse,
MultipleUploadResponse,
OptimizationResultResponse,
UploadedFileInfo,
)
# Image schemas
from app.modules.cms.schemas.image import (
ImageStorageStats,
)
# Theme schemas
from app.modules.cms.schemas.store_theme import (
ThemeDeleteResponse,
ThemePresetListResponse,
ThemePresetPreview,
ThemePresetResponse,
StoreThemeBranding,
StoreThemeColors,
StoreThemeFonts,
StoreThemeLayout,
StoreThemeResponse,
StoreThemeUpdate,
)
__all__ = [
# Content Page - Admin
"ContentPageCreate",
"ContentPageUpdate",
"ContentPageResponse",
"ContentPageHomepageSectionsResponse",
"SectionUpdateResponse",
# Content Page - Store
"StoreContentPageCreate",
"StoreContentPageUpdate",
"CMSUsageResponse",
# Content Page - Public
"PublicContentPageResponse",
"ContentPageListItem",
# Homepage Sections
"TranslatableText",
"HeroButton",
"HeroSection",
"FeatureCard",
"FeaturesSection",
"PricingSection",
"CTASection",
"HomepageSections",
"SectionUpdateRequest",
"HomepageSectionsResponse",
# Media
"FailedFileInfo",
"MediaDetailResponse",
"MediaItemResponse",
"MediaListResponse",
"MediaMetadataUpdate",
"MediaUploadResponse",
"MediaUsageResponse",
"MessageResponse",
"MultipleUploadResponse",
"OptimizationResultResponse",
"MediaUsageItem",
"UploadedFileInfo",
# Image
"ImageStorageStats",
# Theme
"ThemeDeleteResponse",
"ThemePresetListResponse",
"ThemePresetPreview",
"ThemePresetResponse",
"StoreThemeBranding",
"StoreThemeColors",
"StoreThemeFonts",
"StoreThemeLayout",
"StoreThemeResponse",
"StoreThemeUpdate",
]