from __future__ import annotations from pydantic import BaseModel, Field from app.models.enums import SourceType class DiscoverCompanyRequest(BaseModel): name: str = Field(min_length=1, max_length=200) official_website: str | None = Field(default=None, max_length=500) monitoring_focus: str | None = Field(default=None, max_length=2000) competitor_names: list[str] = Field(default_factory=list, max_length=25) alias_names: list[str] = Field(default_factory=list, max_length=25) class PotentialSource(BaseModel): source_type: SourceType name: str base_url: str | None class DiscoveredCompanyProfile(BaseModel): name: str official_website: str | None description: str | None monitoring_focus: str | None industry: str | None country: str | None region: str | None headquarters: str | None aliases: list[str] competitors: list[str] public_identifiers: dict[str, str] potential_sources: list[PotentialSource] sources_consulted: list[str]