"""Schemata für Firmen und Zahlungsempfänger.""" from datetime import datetime from pydantic import Field from app.models.enums import LogoSource, LogoStatus from app.schemas.common import ApiModel, HexColor, InputModel class MerchantCreate(InputModel): name: str = Field(min_length=1, max_length=160, examples=["Netflix"]) domain: str | None = Field( default=None, max_length=255, examples=["netflix.com"], description="Verbessert die Trefferquote der Logosuche erheblich.", ) aliases: list[str] = Field( default_factory=list, description="Weitere Schreibweisen, etwa aus Kontoauszügen." ) brand_color: HexColor | None = None brand_color_dark: HexColor | None = None class MerchantUpdate(InputModel): name: str | None = Field(default=None, min_length=1, max_length=160) domain: str | None = Field(default=None, max_length=255) aliases: list[str] | None = None brand_color: HexColor | None = None brand_color_dark: HexColor | None = None class MerchantOut(ApiModel): id: int name: str normalized_name: str domain: str | None aliases: list[str] logo_asset_id: int | None = Field( description="Wenn gesetzt, ist das Logo unter /api/logos/{id} abrufbar." ) brand_color: str | None brand_color_dark: str | None logo_source: LogoSource | None logo_status: LogoStatus created_at: datetime