FastAPI + Celery + Next.js + Postgres/Redis app with company monitoring, source collection, LLM-based change analysis, enrichment, and account security (Turnstile, escalating lockout, email verification).
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
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]
|