# generated by datamodel-codegen:
#   filename:  openapi-data-gov-gr.yaml

from __future__ import annotations

from datetime import date, datetime
from typing import Optional

from pydantic import AwareDatetime, BaseModel, EmailStr, Field
from typing_extensions import Annotated


class TrafficViolationData(BaseModel):
    count: Annotated[
        int, Field(description="The number of occurrences of the violation.")
    ]
    violation: Annotated[
        str, Field(description="Description of the traffic violation.")
    ]
    year: Annotated[int, Field(description="The year when the violation was recorded.")]


class TrafficAccidentData(BaseModel):
    deadly_accidents: Annotated[
        int, Field(description="The number of deadly accidents.")
    ]
    deaths: Annotated[
        int, Field(description="The number of deaths in traffic accidents.")
    ]
    jurisdiction: Annotated[
        str, Field(description="The jurisdiction where the accidents occurred.")
    ]
    other_accidents: Annotated[
        int,
        Field(
            description="The number of other (non-deadly and non-serious) accidents."
        ),
    ]
    other_injured: Annotated[
        int, Field(description="The number of people injured in other accidents.")
    ]
    serious_accidents: Annotated[
        int, Field(description="The number of serious accidents.")
    ]
    seriously_injured: Annotated[
        int, Field(description="The number of people seriously injured in accidents.")
    ]
    year: Annotated[
        int, Field(description="The year when the accidents were recorded.")
    ]


class HCGIncidentData(BaseModel):
    domestic: Annotated[int, Field(description="The number of domestic incidents.")]
    incident: Annotated[str, Field(description="Description of the incident.")]
    international: Annotated[
        int, Field(description="The number of international incidents.")
    ]
    year: Annotated[
        int, Field(description="The year when the incidents were recorded.")
    ]


class CrimeData(BaseModel):
    attempted: Annotated[int, Field(description="The number of attempted crimes.")]
    committed: Annotated[int, Field(description="The number of committed crimes.")]
    crime: Annotated[str, Field(description="Description of the crime.")]
    domestic_criminals: Annotated[
        int, Field(description="The number of domestic criminals involved.")
    ]
    foreign_criminals: Annotated[
        int, Field(description="The number of foreign criminals involved.")
    ]
    solved: Annotated[int, Field(description="The number of crimes that were solved.")]
    year: Annotated[int, Field(description="The year when the crimes were recorded.")]


class FinancialCrimeData(BaseModel):
    count: Annotated[
        int, Field(description="The number of occurrences of the financial crime.")
    ]
    crime: Annotated[str, Field(description="Description of the financial crime.")]
    year: Annotated[int, Field(description="The year when the crime was recorded.")]


class LawFirmData(BaseModel):
    active: Annotated[int, Field(description="The number of active law firms.")]
    entrants: Annotated[
        Optional[int],
        Field(None, description="The number of new entrant law firms in the period."),
    ]
    exits: Annotated[
        Optional[int],
        Field(None, description="The number of law firms that exited in the period."),
    ]
    quarter: Annotated[str, Field(description="The quarter of the year.")]
    year: Annotated[int, Field(description="The year of the record.")]


class LawyerData(BaseModel):
    active: Annotated[int, Field(description="The number of active lawyers.")]
    entrants: Annotated[
        int, Field(description="The number of new entrants in the period.")
    ]
    exits: Annotated[
        int, Field(description="The number of lawyers who exited in the period.")
    ]
    quarter: Annotated[str, Field(description="The quarter of the year.")]
    year: Annotated[int, Field(description="The year of the record.")]


class SchoolData(BaseModel):
    area: Annotated[
        str, Field(description="The geographical area where the school is located.")
    ]
    district: Annotated[
        str, Field(description="The district in which the school is situated.")
    ]
    email: Annotated[EmailStr, Field(description="The email address of the school.")]
    fax_number: Annotated[
        Optional[str],
        Field(None, description="The fax number of the school, if available."),
    ]
    lat: Annotated[
        Optional[float],
        Field(None, description="The latitude coordinate of the school's location."),
    ]
    lng: Annotated[
        Optional[float],
        Field(None, description="The longitude coordinate of the school's location."),
    ]
    municipality: Annotated[
        Optional[str],
        Field(None, description="The municipality where the school is located."),
    ]
    municipal_unit: Annotated[
        Optional[str],
        Field(None, description="The municipal unit of the school's location."),
    ]
    phone_number: Annotated[
        Optional[str], Field(None, description="The telephone number of the school.")
    ]
    prefecture: Annotated[
        Optional[str],
        Field(None, description="The prefecture in which the school is located."),
    ]
    regional_unit: Annotated[
        Optional[str],
        Field(None, description="The regional unit or division of the school."),
    ]
    school_code: Annotated[
        Optional[str], Field(None, description="A unique code identifying the school.")
    ]
    school_district: Annotated[
        Optional[str], Field(None, description="The school district, if applicable.")
    ]
    school_name: Annotated[str, Field(description="The official name of the school.")]
    school_subtype: Annotated[
        Optional[str],
        Field(
            None,
            description="The subtype of the school, indicating specific characteristics or focus.",
        ),
    ]
    school_type: Annotated[
        Optional[str],
        Field(None, description="The type of school (e.g., primary, secondary)."),
    ]
    street_address: Annotated[
        Optional[str], Field(None, description="The street address of the school.")
    ]
    zip_code: Annotated[
        Optional[str],
        Field(None, description="The postal code for the school's location."),
    ]


class AcademicStaffData(BaseModel):
    assistant_professors: Annotated[
        int, Field(description="The number of assistant professors.", examples=[3])
    ]
    associate_professors: Annotated[
        int, Field(description="The number of associate professors.", examples=[4])
    ]
    full_professors: Annotated[
        int, Field(description="The number of full professors.", examples=[0])
    ]
    institution: Annotated[
        str,
        Field(
            description="The name of the educational institution.",
            examples=["ΑΝΩΤΑΤΗ ΕΚΚΛΗΣΙΑΣΤΙΚΗ ΑΚΑΔ"],
        ),
    ]
    lecturers: Annotated[
        int, Field(description="The number of lecturers.", examples=[0])
    ]
    practice_lecturers: Annotated[
        int, Field(description="The number of practice lecturers.", examples=[0])
    ]
    practice_professors: Annotated[
        int, Field(description="The number of practice professors.", examples=[0])
    ]
    year: Annotated[
        int, Field(description="The year when the data was recorded.", examples=[2018])
    ]


class StudentsSchoolData(BaseModel):
    district: Annotated[
        Optional[str],
        Field(
            None,
            description="The district where the school is located.",
            examples=["ΔΙΕΥΘΥΝΣΗ Δ.Ε. Α΄ ΑΘΗΝΑΣ"],
        ),
    ]
    jurisdiction: Annotated[
        Optional[str],
        Field(
            None,
            description="The jurisdiction of the school.",
            examples=["ΣΙΒΙΤΑΝΙΔΕΙΟΣ ΔΗΜΟΣΙΑ ΣΧΟΛΗ ΤΕΧΝΩΝ ΚΑΙ ΕΠΑΓΓΕΛΜΑΤΩΝ"],
        ),
    ]
    registered_students_boys: Annotated[
        Optional[int],
        Field(
            None,
            description="The number of registered boys in the school.",
            examples=[320],
        ),
    ]
    registered_students_girls: Annotated[
        Optional[int],
        Field(
            None,
            description="The number of registered girls in the school.",
            examples=[82],
        ),
    ]
    school_class: Annotated[
        Optional[str],
        Field(
            None,
            description="The class or category of the school.",
            examples=["Επαγγελματικά Λύκεια"],
        ),
    ]
    school_name: Annotated[
        Optional[str],
        Field(
            None,
            description="The name of the school.",
            examples=["2ο ΗΜΕΡΗΣΙΟ ΕΠΑΛ ΣΙΒΙΤΑΝ"],
        ),
    ]


class InstitutionalAffiliationData(BaseModel):
    institution: Annotated[
        str,
        Field(
            description="The name of the institution.", examples=["ΤΕΙ ΠΕΛΟΠΟΝΝΗΣΟΥ"]
        ),
    ]
    ngo: Annotated[
        int,
        Field(
            description="The number of affiliations to non-governmental organizations.",
            examples=[0],
        ),
    ]
    private_sector: Annotated[
        int,
        Field(
            description="The number of affiliations to the private sector.",
            examples=[59],
        ),
    ]
    public_sector: Annotated[
        int,
        Field(
            description="The number of affiliations to the public sector.",
            examples=[45],
        ),
    ]
    year: Annotated[
        int, Field(description="The year when the data was recorded.", examples=[2018])
    ]


class EudoxusData(BaseModel):
    department: Annotated[
        str,
        Field(
            description="The department of the institution.",
            examples=["ΟΙΚΙΑΚΗΣ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΟΙΚΟΛΟΓΙΑΣ"],
        ),
    ]
    institution: Annotated[
        str,
        Field(
            description="The name of the institution.",
            examples=["ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ"],
        ),
    ]
    period: Annotated[
        str,
        Field(
            description="The academic period (e.g., Spring, Fall).", examples=["Εαρινή"]
        ),
    ]
    studentwithdeliveries: Annotated[
        int,
        Field(
            description="The number of students who received deliveries.", examples=[19]
        ),
    ]
    studentwithstatements: Annotated[
        int,
        Field(description="The number of students who made statements.", examples=[60]),
    ]
    year: Annotated[
        int, Field(description="The year when the data was recorded.", examples=[2017])
    ]


class OAEDUnemploymentData(BaseModel):
    asofdate: Annotated[
        date, Field(description="The date of the data record.", examples=["2020-09-01"])
    ]
    benefits: Annotated[
        int, Field(description="Number of benefits provided.", examples=[143005])
    ]
    unemployed: Annotated[
        int, Field(description="Number of unemployed individuals.", examples=[1036582])
    ]


class ElectionVoterDistributionData(BaseModel):
    election_type: Annotated[
        str,
        Field(
            description="The type of the election.", examples=["τοπικής αυτοδιοίκηςη"]
        ),
    ]
    electoral_district: Annotated[
        str,
        Field(
            description="The electoral district where the election took place.",
            examples=["ΧΑΝΙΩΝ"],
        ),
    ]
    municipality: Annotated[
        str,
        Field(
            description="The municipality where the election took place.",
            examples=["ΚΙΣΣΑΜΟΥ"],
        ),
    ]
    voters_female: Annotated[
        int, Field(description="The number of female voters.", examples=[6546])
    ]
    voters_male: Annotated[
        int, Field(description="The number of male voters.", examples=[6609])
    ]
    year: Annotated[
        int,
        Field(description="The year when the election took place.", examples=[2014]),
    ]


class ElectionVoterAgeDistributionData(BaseModel):
    age_group: Annotated[
        str, Field(description="The age group of the voters.", examples=["71+"])
    ]
    count: Annotated[
        int,
        Field(description="The number of voters in the age group.", examples=[30606]),
    ]
    election_type: Annotated[
        str,
        Field(
            description="The type of the election.", examples=["τοπικής αυτοδιοίκηςη"]
        ),
    ]
    electoral_district: Annotated[
        str,
        Field(
            description="The electoral district where the election took place.",
            examples=["ΧΑΝΙΩΝ"],
        ),
    ]
    year: Annotated[
        int,
        Field(description="The year when the election took place.", examples=[2014]),
    ]


class SailingTrafficData(BaseModel):
    arrivalport: Annotated[
        str, Field(description="Code of the arrival port.", examples=["905"])
    ]
    arrivalportname: Annotated[
        str,
        Field(
            description="Name of the arrival port.", examples=["ΧΡΥΣΟΜΗΛΙΑ (ΦΟΥΡΝΟΙ)"]
        ),
    ]
    date: Annotated[
        date, Field(description="Date of the sailing record.", examples=["2020-08-13"])
    ]
    departureport: Annotated[
        str, Field(description="Code of the departure port.", examples=["KAR"])
    ]
    departureportname: Annotated[
        str,
        Field(description="Name of the departure port.", examples=["Καρλόβασι Σάμου"]),
    ]
    passengercount: Annotated[
        int, Field(description="Count of passengers.", examples=[4])
    ]
    routecode: Annotated[
        str, Field(description="Code of the route.", examples=["KAR905THMFOU"])
    ]
    routecodenames: Annotated[
        str,
        Field(
            description="Names of the ports in the route.",
            examples=["Καρλόβασι Σάμου-ΧΡΥΣΟΜΗΛΙΑ (ΦΟΥΡΝΟΙ)-Θύμαινα-Φούρνοι Κορσεών"],
        ),
    ]
    vehiclecount: Annotated[int, Field(description="Count of vehicles.", examples=[1])]


class RidershipData(BaseModel):
    date_hour: Annotated[
        AwareDatetime,
        Field(
            description="The date and hour of the record.",
            examples=["2020-10-10T19:00:00Z"],
        ),
    ]
    dv_agency: Annotated[str, Field(description="Agency code.", examples=["001"])]
    dv_platenum_station: Annotated[
        str,
        Field(description="Plate number or station identifier.", examples=["YMI 1064"]),
    ]
    dv_route: Annotated[
        Optional[str],
        Field(
            None,
            description="Description of the route.",
            examples=[
                "Β5 - ΣΤ. ΛΑΡΙΣΗΣ - Λ. ΑΛΕΞΑΝΔΡΑΣ - ΑΓ. ΠΑΡΑΣΚΕΥΗ :: ΑΓ. ΠΑΡΑΣΚΕΥΗ - Λ. ΑΛΕΞΑΝΔΡΑΣ - ΣΤ. ΛΑΡΙΣΗΣ"
            ],
        ),
    ]
    dv_validations: Annotated[
        int,
        Field(description="Number of validations for the time period.", examples=[26]),
    ]
    load_dt: Annotated[
        AwareDatetime,
        Field(
            description="The date and time when the data was loaded.",
            examples=["2020-10-11T05:56:22Z"],
        ),
    ]
    routes_per_hour: Annotated[
        Optional[int],
        Field(None, description="Number of routes per hour.", examples=[1]),
    ]


class RoadTrafficData(BaseModel):
    appprocesstime: Annotated[
        AwareDatetime,
        Field(
            description="The time when the data was processed.",
            examples=["2020-11-05T00:00:00Z"],
        ),
    ]
    average_speed: Annotated[
        float,
        Field(description="Average speed of vehicles.", examples=[71.37837837837836]),
    ]
    countedcars: Annotated[
        int, Field(description="Number of cars counted.", examples=[1480])
    ]
    deviceid: Annotated[
        str,
        Field(
            description="Identifier for the traffic monitoring device.",
            examples=["MS1001"],
        ),
    ]
    road_info: Annotated[
        str,
        Field(
            description="Additional information about the road segment.",
            examples=["120 ΜΕΤΡΑ ΠΡΙΝ ΤΟΝ ΚΟΜΒΟ ΜΕ ΚΑΤΕΥΘΥΝΣΗ ΠΡΟΣ ΑΘΗΝΑ"],
        ),
    ]
    road_name: Annotated[
        str, Field(description="Name of the road.", examples=["Λ. ΜΑΡΑΘΩΝΟΣ"])
    ]


class KTMHareaData(BaseModel):
    area: Annotated[
        float, Field(description="The area in square meters.", examples=[2939654.941])
    ]
    date: Annotated[
        date, Field(description="The date of the data record.", examples=["2023-03-01"])
    ]
    ota_full_name: Annotated[
        str,
        Field(description="The full name of the OTA.", examples=["ΑΤΤΙΚΗΣ ΑΧΑΡΝΩΝ"]),
    ]
    ota_id: Annotated[int, Field(description="The ID of the OTA.", examples=[5028])]
    ota_name: Annotated[
        str, Field(description="The name of the OTA.", examples=["ΑΧΑΡΝΩΝ"])
    ]
    ota_name_en: Annotated[
        str, Field(description="The English name of the OTA.", examples=["axarnon"])
    ]


class KTMConfiscationData(BaseModel):
    confiscations: Annotated[
        int, Field(description="The number of confiscations.", examples=[327])
    ]
    date: Annotated[
        date, Field(description="The date of the data record.", examples=["2023-03-02"])
    ]
    ota_full_name: Annotated[
        str,
        Field(
            description="The full name of the OTA.",
            examples=["ΑΙΤΩΛΙΑΣ ΚΑΙ ΑΚΑΡΝΑΝΙΑΣ ΑΓΓΕΛΟΚΑΣΤΡΟΥ"],
        ),
    ]
    ota_id: Annotated[int, Field(description="The ID of the OTA.", examples=[1003])]
    ota_name: Annotated[
        str, Field(description="The name of the OTA.", examples=["ΑΓΓΕΛΟΚΑΣΤΡΟΥ"])
    ]
    ota_name_en: Annotated[
        str, Field(description="The English name of the OTA.", examples=["agelokastro"])
    ]


class KTMLienData(BaseModel):
    date: Annotated[
        date, Field(description="The date of the data record.", examples=["2023-03-23"])
    ]
    liens: Annotated[int, Field(description="The number of liens.", examples=[364])]
    ota_full_name: Annotated[
        str,
        Field(
            description="The full name of the OTA.",
            examples=["ΑΙΤΩΛΙΑΣ ΚΑΙ ΑΚΑΡΝΑΝΙΑΣ ΑΓΓΕΛΟΚΑΣΤΡΟΥ"],
        ),
    ]
    ota_id: Annotated[int, Field(description="The ID of the OTA.", examples=[1003])]
    ota_name: Annotated[
        str, Field(description="The name of the OTA.", examples=["ΑΓΓΕΛΟΚΑΣΤΡΟΥ"])
    ]
    ota_name_en: Annotated[
        str, Field(description="The English name of the OTA.", examples=["agelokastro"])
    ]


class KTMTransactionData(BaseModel):
    date: Annotated[
        date, Field(description="The date of the data record.", examples=["2023-04-28"])
    ]
    ota_full_name: Annotated[
        str,
        Field(
            description="The full name of the OTA.", examples=["ΚΑΒΑΛΑΣ ΑΚΡΟΠΟΤΑΜΟΥ"]
        ),
    ]
    ota_id: Annotated[int, Field(description="The ID of the OTA.", examples=[21005])]
    ota_name: Annotated[
        str, Field(description="The name of the OTA.", examples=["ΑΚΡΟΠΟΤΑΜΟΥ"])
    ]
    ota_name_en: Annotated[
        str, Field(description="The English name of the OTA.", examples=["akropotamo"])
    ]
    transactions: Annotated[
        int, Field(description="The number of transactions.", examples=[10])
    ]


class KTMOwnersData(BaseModel):
    date: Annotated[
        date, Field(description="The date of the data record.", examples=["2023-03-01"])
    ]
    ota_full_name: Annotated[
        str,
        Field(
            description="The full name of the OTA.",
            examples=["ΑΙΤΩΛΙΑΣ ΚΑΙ ΑΚΑΡΝΑΝΙΑΣ ΑΓΓΕΛΟΚΑΣΤΡΟΥ"],
        ),
    ]
    ota_id: Annotated[int, Field(description="The ID of the OTA.", examples=[1003])]
    ota_name: Annotated[
        str, Field(description="The name of the OTA.", examples=["ΑΓΓΕΛΟΚΑΣΤΡΟΥ"])
    ]
    ota_name_en: Annotated[
        str, Field(description="The English name of the OTA.", examples=["agelokastro"])
    ]
    owners: Annotated[
        int, Field(description="The number of property owners.", examples=[1627])
    ]


class KTMHPlotsData(BaseModel):
    date: Annotated[
        date, Field(description="The date of the data record.", examples=["2023-03-02"])
    ]
    ota_full_name: Annotated[
        str,
        Field(description="The full name of the OTA.", examples=["ΑΤΤΙΚΗΣ ΑΧΑΡΝΩΝ"]),
    ]
    ota_id: Annotated[int, Field(description="The ID of the OTA.", examples=[5028])]
    ota_name: Annotated[
        str, Field(description="The name of the OTA.", examples=["ΑΧΑΡΝΩΝ"])
    ]
    ota_name_en: Annotated[
        str, Field(description="The English name of the OTA.", examples=["axarnon"])
    ]
    plots: Annotated[
        int, Field(description="The number of housing plots.", examples=[46920])
    ]


class KTMStatusData(BaseModel):
    date: Annotated[
        date, Field(description="The date of the data record.", examples=["2023-03-01"])
    ]
    ota_full_name: Annotated[
        str,
        Field(description="The full name of the OTA.", examples=["ΑΡΚΑΔΙΑΣ ΣΤΕΝΟΥ"]),
    ]
    ota_id: Annotated[int, Field(description="The ID of the OTA.", examples=[3218])]
    ota_name: Annotated[
        str, Field(description="The name of the OTA.", examples=["ΣΤΕΝΟΥ"])
    ]
    ota_name_en: Annotated[
        str, Field(description="The English name of the OTA.", examples=["steno"])
    ]
    status: Annotated[
        str, Field(description="The status of the OTA.", examples=["ΑΝΑΡΤΗΣΗ"])
    ]


class ADMIESCADAData(BaseModel):
    date: Annotated[
        AwareDatetime,
        Field(
            description="The date and time of the data record in ISO 8601 format.",
            examples=["2023-03-01T00:00:00Z"],
        ),
    ]
    energy_mwh: Annotated[
        int,
        Field(description="The amount of energy in megawatt-hours.", examples=[886]),
    ]


class ADMIEDailyEnergyBalanceData(BaseModel):
    date: Annotated[
        AwareDatetime,
        Field(
            description="The date of the data record in ISO 8601 format.",
            examples=["2023-03-01T00:00:00Z"],
        ),
    ]
    energy_mwh: Annotated[
        int,
        Field(description="The amount of energy in megawatt-hours.", examples=[15284]),
    ]
    fuel: Annotated[str, Field(description="Type of fuel used.", examples=["ΛΙΓΝΙΤΗΣ"])]
    percentage: Annotated[
        float,
        Field(
            description="The percentage contribution of the fuel to the total energy.",
            examples=[0.1316065923846591],
        ),
    ]


class CadastreNaturaPlotData(BaseModel):
    area: Annotated[
        float,
        Field(
            description="The area of the plot in square meters.",
            examples=[1894778.3375080035],
        ),
    ]
    date: Annotated[
        AwareDatetime,
        Field(
            description="The date of the data record in ISO 8601 format.",
            examples=["2021-03-02T00:00:00Z"],
        ),
    ]
    local_authority_id: Annotated[
        str, Field(description="The ID of the local authority.", examples=["1003"])
    ]
    plot_number: Annotated[int, Field(description="The plot number.", examples=[390])]


class CadastrePlotData(BaseModel):
    avg_area: Annotated[
        float,
        Field(
            description="The average area of the plots in square meters.",
            examples=[7061.933960425182],
        ),
    ]
    date: Annotated[
        AwareDatetime,
        Field(
            description="The date of the data record in ISO 8601 format.",
            examples=["2021-03-02T00:00:00Z"],
        ),
    ]
    local_authority_id: Annotated[
        str, Field(description="The ID of the local authority.", examples=["1003"])
    ]
    plot_number: Annotated[
        int, Field(description="The number of plots.", examples=[4523])
    ]


class KtmPlotData(BaseModel):
    date: Annotated[
        AwareDatetime,
        Field(
            description="The date of the data record in ISO 8601 format.",
            examples=["2020-12-30"],
        ),
    ]
    ota_id: Annotated[int, Field(description="The ID of the OTA.", examples=[5133])]
    ota_name: Annotated[
        str,
        Field(description="The name of the OTA in Greek.", examples=["ΣΠΑΤΩΝ-ΛΟΥΤΣΑΣ"]),
    ]
    ota_name_en: Annotated[
        str,
        Field(
            description="The name of the OTA in English.", examples=["spaton-lotsas"]
        ),
    ]
    plots: Annotated[int, Field(description="The number of plots.", examples=[39161])]


class ElectricityConsumptionData(BaseModel):
    area: Annotated[
        str,
        Field(
            description="The geographical area of the data record.", examples=["ΚΡΗΤΗ"]
        ),
    ]
    date: Annotated[
        AwareDatetime,
        Field(
            description="The date and time of the data record in ISO 8601 format.",
            examples=["2020-08-09T00:00:00Z"],
        ),
    ]
    energy_mwh: Annotated[
        float,
        Field(
            description="The amount of electricity consumed in megawatt-hours.",
            examples=[9539.66],
        ),
    ]


class UrbanIncidentData(BaseModel):
    accident_type: Annotated[
        Optional[str], Field(None, description="Type of the accident, if applicable.")
    ]
    burns: Annotated[
        Optional[int], Field(None, description="Number of people who suffered burns.")
    ]
    damages: Annotated[
        Optional[int], Field(None, description="The extent of damages caused.")
    ]
    deaths: Annotated[
        Optional[int], Field(None, description="Number of deaths, if any.")
    ]
    end_time: Annotated[
        AwareDatetime, Field(description="The end time of the incident.")
    ]
    firefighters: Annotated[int, Field(description="Number of firefighters involved.")]
    fire_station: Annotated[
        str, Field(description="Name of the fire station involved.")
    ]
    fire_trucks: Annotated[int, Field(description="Number of fire trucks used.")]
    fire_vessels: Annotated[
        Optional[int], Field(None, description="Number of fire vessels used, if any.")
    ]
    incident: Annotated[str, Field(description="Brief description of the incident.")]
    incident_detail: Annotated[
        Optional[str], Field(None, description="Detailed description of the incident.")
    ]
    injuries: Annotated[
        Optional[int], Field(None, description="Number of injuries reported.")
    ]
    location_description: Annotated[
        str, Field(description="Description of the incident location.")
    ]
    municipality: Annotated[
        Optional[str],
        Field(
            None, description="Name of the municipality where the incident occurred."
        ),
    ]
    people_involved: Annotated[
        Optional[int],
        Field(None, description="Number of people involved in the incident."),
    ]
    prefecture: Annotated[
        Optional[str],
        Field(None, description="Name of the prefecture where the incident occurred."),
    ]
    start_time: Annotated[
        Optional[AwareDatetime],
        Field(None, description="The start time of the incident."),
    ]
    village: Annotated[
        Optional[str],
        Field(None, description="Name of the village where the incident occurred."),
    ]


class ForestFireData(BaseModel):
    address: Annotated[
        Optional[str],
        Field(None, description="Address or location of the forest fire."),
    ]
    agricultural_area_burned: Annotated[
        Optional[float],
        Field(None, description="Area of agricultural land burned (in hectares)."),
    ]
    airplanes_cl215: Annotated[
        Optional[int], Field(None, description="Number of CL-215 airplanes used.")
    ]
    airplanes_cl415: Annotated[
        Optional[int], Field(None, description="Number of CL-415 airplanes used.")
    ]
    airplanes_gru: Annotated[
        Optional[int], Field(None, description="Number of GRU airplanes used.")
    ]
    airplanes_pzl: Annotated[
        Optional[int], Field(None, description="Number of PZL airplanes used.")
    ]
    army: Annotated[
        Optional[int], Field(None, description="Number of army personnel involved.")
    ]
    crop_residue_area_burned: Annotated[
        Optional[float],
        Field(None, description="Area of crop residue burned (in hectares)."),
    ]
    dumping_ground_area_burned: Annotated[
        Optional[float],
        Field(None, description="Area of dumping ground burned (in hectares)."),
    ]
    end_time: Annotated[
        Optional[AwareDatetime],
        Field(None, description="The end time of the forest fire"),
    ]


class VaccinationData(BaseModel):
    area: Annotated[
        str, Field(description="Name of the area where vaccinations are reported.")
    ]
    areaid: Annotated[int, Field(description="Unique identifier for the area.")]
    dailydose1: Annotated[
        int,
        Field(description="Number of first doses administered on the reported day."),
    ]
    dailydose2: Annotated[
        int,
        Field(description="Number of second doses administered on the reported day."),
    ]
    dailydose3: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of third doses administered on the reported day, if applicable.",
        ),
    ]
    daydiff: Annotated[
        Optional[int],
        Field(
            None, description="Difference in total vaccinations from the previous day."
        ),
    ]
    daytotal: Annotated[
        int,
        Field(
            description="Total number of vaccinations administered on the reported day."
        ),
    ]
    referencedate: Annotated[
        AwareDatetime,
        Field(description="The reference date for the data in ISO 8601 format."),
    ]
    totaldistinctpersons: Annotated[
        int,
        Field(
            description="Total number of distinct individuals who have received at least one dose."
        ),
    ]
    totaldose1: Annotated[
        int,
        Field(
            description="Total number of first doses administered up to the reference date."
        ),
    ]
    totaldose2: Annotated[
        int,
        Field(
            description="Total number of second doses administered up to the reference date."
        ),
    ]
    totaldose3: Annotated[
        Optional[int],
        Field(
            None,
            description="Total number of third doses administered up to the reference date, if applicable.",
        ),
    ]
    totalvaccinations: Annotated[
        int,
        Field(
            description="Total number of vaccinations administered up to the reference date."
        ),
    ]


class WeeklyVaccinationData(BaseModel):
    area: Annotated[
        str, Field(description="Name of the area where vaccinations are reported.")
    ]
    areaid: Annotated[int, Field(description="Unique identifier for the area.")]
    totaldistinctpersons: Annotated[
        int,
        Field(
            description="Total number of distinct individuals who have received at least one dose up to the week reference date."
        ),
    ]
    totaldose1: Annotated[
        int,
        Field(
            description="Total number of first doses administered up to the week reference date."
        ),
    ]
    totaldose2: Annotated[
        int,
        Field(
            description="Total number of second doses administered up to the week reference date."
        ),
    ]
    totaldose3: Annotated[
        Optional[int],
        Field(
            None,
            description="Total number of third doses administered up to the week reference date, if applicable.",
        ),
    ]
    totalvaccinations: Annotated[
        int,
        Field(
            description="Total number of vaccinations administered up to the week reference date."
        ),
    ]
    weekdiff: Annotated[
        int,
        Field(description="Difference in total vaccinations from the previous week."),
    ]
    weeklydose1: Annotated[
        int, Field(description="Number of first doses administered during the week.")
    ]
    weeklydose2: Annotated[
        int, Field(description="Number of second doses administered during the week.")
    ]
    weeklydose3: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of third doses administered during the week, if applicable.",
        ),
    ]
    weekreferencedate: Annotated[
        AwareDatetime,
        Field(description="The reference date for the weekly data in ISO 8601 format."),
    ]
    weektotal: Annotated[
        int,
        Field(description="Total number of vaccinations administered during the week."),
    ]


class EfetInspectionsData(BaseModel):
    inspections: Annotated[
        Optional[int],
        Field(None, description="Number of inspections conducted in the given year."),
    ]
    penalties: Annotated[
        float, Field(description="Total amount of penalties imposed in Euros.")
    ]
    violating_organizations: Annotated[
        int,
        Field(description="Number of organizations found to be violating regulations."),
    ]
    violations: Annotated[
        Optional[int], Field(None, description="Number of violations recorded.")
    ]
    year: Annotated[int, Field(description="Year in which the data was recorded.")]


class PharmacistsData(BaseModel):
    active: Annotated[int, Field(description="Number of active pharmacists.")]
    entrants: Annotated[
        Optional[int],
        Field(None, description="Number of new entrants to the profession."),
    ]
    exits: Annotated[
        int, Field(description="Number of pharmacists who exited the profession.")
    ]
    quarter: Annotated[str, Field(description="Quarter of the year for the data.")]
    year: Annotated[int, Field(description="Year of the data record.")]


class PharmacyData(BaseModel):
    active: Annotated[
        int, Field(description="Number of active pharmacies.", examples=[10223])
    ]
    entrants: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of new entrants in the pharmacy sector.",
            examples=[156],
        ),
    ]
    exits: Annotated[
        Optional[int],
        Field(
            None, description="Number of exits from the pharmacy sector.", examples=[51]
        ),
    ]
    quarter: Annotated[
        str, Field(description="Fiscal quarter of the data record.", examples=["Q1"])
    ]
    year: Annotated[int, Field(description="Year of the data record.", examples=[2012])]


class DentistData(BaseModel):
    active: Annotated[
        int, Field(description="Number of active dentists.", examples=[15818])
    ]
    entrants: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of new entrants in the dental sector.",
            examples=[81],
        ),
    ]
    exits: Annotated[
        Optional[int],
        Field(
            None, description="Number of exits from the dental sector.", examples=[6]
        ),
    ]
    quarter: Annotated[
        str, Field(description="Fiscal quarter of the data record.", examples=["Q1"])
    ]
    year: Annotated[int, Field(description="Year of the data record.", examples=[2012])]


class DoctorData(BaseModel):
    active: Annotated[
        int, Field(description="Number of active doctors.", examples=[76438])
    ]
    entrants: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of new entrants in the medical sector.",
            examples=[317],
        ),
    ]
    exits: Annotated[
        Optional[int],
        Field(
            None, description="Number of exits from the medical sector.", examples=[7]
        ),
    ]
    quarter: Annotated[
        str, Field(description="Fiscal quarter of the data record.", examples=["Q1"])
    ]
    year: Annotated[int, Field(description="Year of the data record.", examples=[2012])]


class TourismAgenciesData(BaseModel):
    active: Annotated[
        int, Field(description="Number of active tourism agencies.", examples=[4105])
    ]
    entrants: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of new entrants in the tourism sector.",
            examples=[300],
        ),
    ]
    exits: Annotated[
        Optional[int],
        Field(
            None, description="Number of exits from the tourism sector.", examples=[355]
        ),
    ]
    quarter: Annotated[
        str, Field(description="Fiscal quarter of the data record.", examples=["Q4"])
    ]
    year: Annotated[int, Field(description="Year of the data record.", examples=[2011])]


class RealtorsData(BaseModel):
    active: Annotated[
        int, Field(description="Number of active realtors.", examples=[5050])
    ]
    entrants: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of new entrants in the real estate sector.",
            examples=[212],
        ),
    ]
    exits: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of exits from the real estate sector.",
            examples=[193],
        ),
    ]
    quarter: Annotated[
        str, Field(description="Fiscal quarter of the data record.", examples=["Q4"])
    ]
    year: Annotated[int, Field(description="Year of the data record.", examples=[2011])]


class EnvironmentalInspectorsData(BaseModel):
    active: Annotated[
        int,
        Field(
            description="Number of active environmental inspectors.", examples=[5364]
        ),
    ]
    entrants: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of new entrants in the environmental inspection sector.",
            examples=[4953],
        ),
    ]
    exits: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of exits from the environmental inspection sector.",
            examples=[2],
        ),
    ]
    quarter: Annotated[
        str, Field(description="Fiscal quarter of the data record.", examples=["Q4"])
    ]
    year: Annotated[int, Field(description="Year of the data record.", examples=[2011])]


class ELTEAuditorsData(BaseModel):
    active: Annotated[
        int, Field(description="Number of active auditors.", examples=[974])
    ]
    entrants: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of new entrants in the auditing sector.",
            examples=[66],
        ),
    ]
    exits: Annotated[
        Optional[int],
        Field(
            None, description="Number of exits from the auditing sector.", examples=[0]
        ),
    ]
    firms: Annotated[int, Field(description="Number of auditing firms.", examples=[39])]
    quarter: Annotated[
        str, Field(description="Fiscal quarter of the data record.", examples=["Q1"])
    ]
    year: Annotated[int, Field(description="Year of the data record.", examples=[2012])]


class OEEAccountantsData(BaseModel):
    active: Annotated[
        int, Field(description="Number of active accountants.", examples=[66072])
    ]
    entrants: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of new entrants in the accounting sector.",
            examples=[2386],
        ),
    ]
    exits: Annotated[
        Optional[int],
        Field(
            None,
            description="Number of exits from the accounting sector.",
            examples=[246],
        ),
    ]
    quarter: Annotated[
        str, Field(description="Fiscal quarter of the data record.", examples=["Q4"])
    ]


class EEEPcasinoTicketsData(BaseModel):
    tickets: Annotated[
        int, Field(description="Number of casino tickets issued.", examples=[3307711])
    ]
    year: Annotated[int, Field(description="Year of the data record.", examples=[2009])]


class EETTTelecomIndicator(BaseModel):
    category: Annotated[
        str,
        Field(
            description="The category of the telecom indicator.",
            examples=["Βroadband_Penetration"],
        ),
    ]
    indicator: Annotated[
        str,
        Field(
            description="The specific indicator within the category.",
            examples=["Ελλάδα"],
        ),
    ]
    value: Annotated[
        float,
        Field(description="The value of the indicator.", examples=[0.3523131307067245]),
    ]
    year: Annotated[
        int, Field(description="The year of the data record.", examples=[2017])
    ]


class InternetTrafficData(BaseModel):
    avg_in: Annotated[int, Field(description="Average inbound traffic.")]
    avg_out: Annotated[int, Field(description="Average outbound traffic.")]
    date: Annotated[
        AwareDatetime, Field(description="The date and time of the record.")
    ]
    max_in: Annotated[int, Field(description="Maximum inbound traffic.")]
    max_out: Annotated[int, Field(description="Maximum outbound traffic.")]
