68 行
1.5 KiB
Python
68 行
1.5 KiB
Python
from __future__ import annotations
|
|
from pydantic import BaseModel
|
|
from typing import Any
|
|
|
|
|
|
class WinterCampConfigSchema(BaseModel):
|
|
name: str | None = None
|
|
positioning: str | None = None
|
|
days: int | None = None
|
|
nights: int | None = None
|
|
max_families: int | None = None
|
|
total_sessions: int | None = None
|
|
age_range: str | None = None
|
|
deposit: int | None = None
|
|
season: str | None = None
|
|
route: str | None = None
|
|
why_hulunbuir: str | None = None
|
|
closing_note: str | None = None
|
|
photographer: dict | None = None
|
|
winter_clothing: dict | None = None
|
|
camp_advantages: list[str] = []
|
|
service_config: list[str] = []
|
|
camp_essentials: list[str] = []
|
|
|
|
|
|
class WinterCampHotelSchema(BaseModel):
|
|
name: str
|
|
star: str | None = None
|
|
nights: str | None = None
|
|
description: str | None = None
|
|
|
|
|
|
class WinterCampHotelResponse(WinterCampHotelSchema):
|
|
id: int
|
|
sort_order: int = 0
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class WinterCampItinerarySchema(BaseModel):
|
|
day: int
|
|
title: str | None = None
|
|
summary: str | None = None
|
|
highlights: list[str] = []
|
|
hotel: str | None = None
|
|
|
|
|
|
class WinterCampItineraryResponse(WinterCampItinerarySchema):
|
|
id: int
|
|
sort_order: int = 0
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class WinterCampFaqSchema(BaseModel):
|
|
question: str
|
|
answer: str
|
|
|
|
|
|
class WinterCampFaqResponse(WinterCampFaqSchema):
|
|
id: int
|
|
sort_order: int = 0
|
|
|
|
class Config:
|
|
from_attributes = True
|