45 行
1.0 KiB
Python
45 行
1.0 KiB
Python
from __future__ import annotations
|
|
from pydantic import BaseModel
|
|
from typing import Any
|
|
|
|
|
|
class TrustStatSchema(BaseModel):
|
|
value: str
|
|
unit: str | None = None
|
|
label: str
|
|
|
|
|
|
class DifferentiatorSchema(BaseModel):
|
|
title: str
|
|
description: str | None = None
|
|
|
|
|
|
class BrandSchema(BaseModel):
|
|
name: str
|
|
full_name: str | None = None
|
|
domain: str | None = None
|
|
url: str | None = None
|
|
slogan_emotional: str | None = None
|
|
slogan_functional: str | None = None
|
|
icp_entity: str | None = None
|
|
icp: str | None = None
|
|
icp_url: str | None = None
|
|
e_contract: str | None = None
|
|
cta_buttons: dict[str, Any] | None = None
|
|
conversion_path: list[Any] | None = None
|
|
|
|
|
|
class BrandFullSchema(BrandSchema):
|
|
id: int
|
|
trust_stats: list[TrustStatSchema] = []
|
|
differentiators: list[DifferentiatorSchema] = []
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class BrandUpdateRequest(BaseModel):
|
|
brand: BrandSchema
|
|
trust_stats: list[TrustStatSchema] = []
|
|
differentiators: list[DifferentiatorSchema] = []
|