"""Define ICSD-specific enums."""

from enum import Enum


class IcsdSubset(Enum):
    EXPERIMENTAL_INORGANIC = "experimental_inorganic"
    EXPERIMENTAL_METALORGANIC = "experimental_metalorganic"
    THERORETICAL_STRUCTURES = "theoretical"


class IcsdAdvancedSearchKeys(Enum):

    AUTHORS = "authors"
    ARTICLE = "article"
    DOI = "doi"
    PUBLICATIONYEAR = "publication_year"
    PAGEFIRST = "page_first"
    JOURNAL = "journal"
    VOLUME = "volume"
    ABSTRACT = "abstract"
    KEYWORDS = "keywords"
    CELLVOLUME = "cell_volume"
    CALCDENSITY = "calc_density"
    CELLPARAMETERS = "cell_parameters"
    SEARCH = "search"
    STRUCTUREDFORMULA = "structured_formula"
    CHEMICALNAME = "chemical_name"
    MINERALNAME = "mineral_name"
    MINERALNAMEIMA = "mineral_name_ima"
    MINERALGROUP = "mineral_group"
    ZVALUECHEMISTRY = "z_value_chemistry"
    ANXFORMULA = "anx_formula"
    ABFORMULA = "ab_formula"
    FORMULAWEIGHT = "formula_weight"
    NUMBEROFELEMENTS = "number_of_elements"
    COMPOSITION = "composition"
    COLLECTIONCODE = "collection_code"
    PDFNUMBER = "pdf_number"
    RELEASE = "release"
    RECORDINGDATE = "recording_date"
    MODIFICATIONDATE = "modification_date"
    COMMENT = "comment"
    RVALUE = "r_value"
    TEMPERATURE = "temperature"
    PRESSURE = "pressure"
    SAMPLETYPE = "sample_type"
    RADIATIONTYPE = "radiation_type"
    STRUCTURETYPE = "structure_type"
    SPACEGROUPSYMBOL = "space_group_symbol"
    SPACEGROUPNUMBER = "space_group_number"
    BRAVAISLATTICE = "bravais_lattice"
    CRYSTALSYSTEM = "crystal_system"
    CRYSTALCLASS = "crystal_class"
    LAUECLASS = "laue_class"
    WYCKOFFSEQUENCE = "wyckoff_sequence"
    PEARSONSYMBOL = "pearson_symbol"
    INVERSIONCENTER = "inversion_center"
    POLARAXIS = "polaraxis"


class IcsdDataFields(Enum):

    CollectionCode = "collection_code"
    CcdcNo = "ccdc_no"
    HMS = "h_m_s"
    StructuredFormula = "structured_formula"
    StructureType = "structure_type"
    Title = "title"
    Authors = "authors"
    Reference = "reference"
    CellParameter = "cell_parameter"
    ReducedCellParameter = "reduced_cell_parameter"
    StandardisedCellParameter = "standardised_cell_parameter"
    CellVolume = "cell_volume"
    FormulaUnitsPerCell = "formula_units_per_cell"
    FormulaWeight = "formula_weight"
    Temperature = "temperature"
    Pressure = "pressure"
    RValue = "r_value"
    SumFormula = "sum_formula"
    ANXFormula = "a_n_x_formula"
    ABFormula = "a_b_formula"
    ChemicalName = "chemical_name"
    MineralName = "mineral_name"
    MineralNameIma = "mineral_name_ima"
    MineralGroup = "mineral_group"
    MineralSeries = "mineral_series"
    MineralRootGroup = "mineral_root_group"
    MineralSubGroup = "mineral_sub_group"
    MineralSuperGroup = "mineral_super_group"
    MineralSubClass = "mineral_sub_class"
    MineralClass = "mineral_class"
    CalculatedDensity = "calculated_density"
    MeasuredDensity = "measured_density"
    PearsonSymbol = "pearson_symbol"
    WyckoffSequence = "wyckoff_sequence"
    Journal = "journal"
    Volume = "volume"
    PublicationYear = "publication_year"
    Page = "page"
    Quality = "quality"
    Keywords = "keywords"
    Ccdc = "ccdc"
    Pdf = "pdf"
