# generated by datamodel-codegen:
#   filename:  company.json
#   timestamp: 2025-02-09T20:28:24+00:00

from __future__ import annotations

from typing import Optional

from pendulum import Date
from pydantic import AnyUrl, BaseModel, EmailStr, Field


class Contact(BaseModel):
    phone: Optional[str] = None
    contact_type: Optional[str] = Field(None, alias="contactType")
    email: Optional[EmailStr] = None


class Headquarters(BaseModel):
    street: Optional[str] = None
    city: Optional[str] = None
    region: Optional[str] = None
    postal: Optional[str] = None
    country: Optional[str] = None
    country_code: Optional[str] = Field(None, alias="countryCode")


class SocialProfile(BaseModel):
    platform: Optional[str] = None
    profile_url: Optional[AnyUrl] = Field(None, alias="profileUrl")
    username: Optional[str] = None
    follower_count: Optional[int] = Field(None, alias="followerCount")
    bio: Optional[str] = None
    profile_image: Optional[AnyUrl] = Field(None, alias="profileImage")


class EmployeeCount(BaseModel):
    min: Optional[int] = None
    max: Optional[int] = None


class Company(BaseModel):
    name: Optional[str] = None
    url: Optional[AnyUrl] = None
    logo: Optional[AnyUrl] = None
    description: Optional[str] = None
    founding_date: Optional[Date] = Field(None, alias="foundingDate")
    industry: Optional[str] = None
    is_public: Optional[bool] = Field(None, alias="isPublic")
    ticker_symbol: Optional[str] = Field(None, alias="tickerSymbol")
    contact: Optional[Contact] = None
    headquarters: Optional[Headquarters] = None
    social_profiles: Optional[list[SocialProfile]] = Field(None, alias="socialProfiles")
    duns: Optional[str] = None
    lei: Optional[str] = None
    employee_count: Optional[EmployeeCount] = Field(None, alias="employeeCount")
    mission: Optional[str] = None
    vision: Optional[str] = None
