from dataclasses import dataclass
from datetime import datetime
from typing import Any


@dataclass
class Salary:
    from_: int | None = None
    to: int | None = None
    currency_code: str | None = None
    gross: bool | None = None
    per_mode_from: int | None = None
    per_mode_to: int | None = None
    mode: str | None = None
    frequency: str | None = None
    no_compensation: Any = None


@dataclass
class SimilarIds:
    company_id: int | None = None
    vacancy_id: int | None = None


@dataclass(kw_only=True)
class DataSetLine:
    company_id: int | None = None
    vacancy_id: int
    company_nm: str
    vacancy_nm: str
    experience: str
    schedule: str | None
    work_hours: str | None
    publication_dt: datetime
    salary: Salary
    location: str
    vacancy_description: str
    key_skills: list[Any]
    accept_temporary: bool
    similar_ids: list[SimilarIds]
    current_view_count: int
    scraped_timestamp: int
    metro_line_nm: str | None
    metro_station_nm: str | None
    location_lat: float | None
    location_lon: float | None
    profession_id: int
    accept_incomplete_resumes: bool
