Corin1998's picture
Create app/schemas.py
cb163eb verified
from __future__ import annotations
from pydantic import BaseModel, Field
from typing import List, Optional, Dict, Any
class CampaingCreate(BaseModel):
campaing_id: str
strbrand: str
product: str
target_audience: str
tone: str ="信頼感・エビデンス重視"
language: str = "ja"
contraints: Optional[Dict[str, Any]] = None
k_variant: int = 5
value_per_conversion: float = 1.0
class AdVariant(BaseModel):
variant_id: str
text: str
status: str
rejection_reason: Optional[str] = None
class GenerateAdsRequest(CampaingCreate):
pass
class GenerateAdsResponse(BaseModel):
campaing_id: str
variants: List[AdVariant]
class ServerRequest(BaseModel):
campaing_id: str
context: Optional[Dict[str, Any]] = None
class ServeResponse(BaseModel):
campaing_id: str
variant_id: str
text: str
class FeedbackEvent(BaseModel):
campaing_id: str
variant_id: str
event_type: str
ts: Optional[str] = None
value: Optional[float] = None
class ReportRequest(BaseModel):
campaing_id: str
class VariantReport(BaseModel):
variant_id: str
impressions: int
clicks: int
conversions: int
ctr: float
cvr: float
expected_value: float
class ReportResponse(BaseModel):
campaing_id:str
variant:List[VariantReport]