# Generated by ariadne-codegen
# Source: combined.graphql

from datetime import datetime
from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel
from .enums import Element


class Structure(BaseModel):
    structure: Optional["StructureStructure"]


class StructureStructure(BaseModel):
    id: Any
    created_at: datetime = Field(alias="createdAt")
    updated_at: datetime = Field(alias="updatedAt")
    deleted_at: Optional[datetime] = Field(alias="deletedAt")
    data: Optional["StructureStructureData"]
    topology: "StructureStructureTopology"
    tags: List[str]


class StructureStructureData(BaseModel):
    name: str


class StructureStructureTopology(BaseModel):
    symbols: List[Element]
    geometry: List[float]
    connectivity: Optional[List[Any]]
    atom_charges: Optional[List[int]]
    atom_labels: Optional[List[str]]
    partial_charges: Optional[List[float]]
    fragments: Optional[List[List[int]]]
    fragment_charges: Optional[List[int]]
    alts: Optional[List[Any]]


Structure.model_rebuild()
StructureStructure.model_rebuild()
StructureStructureData.model_rebuild()
StructureStructureTopology.model_rebuild()
