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

from typing import Any, List, Optional

from .base_model import BaseModel


class GetProductVariants(BaseModel):
    product: Optional["GetProductVariantsProduct"]


class GetProductVariantsProduct(BaseModel):
    id: str
    variants: "GetProductVariantsProductVariants"


class GetProductVariantsProductVariants(BaseModel):
    edges: List["GetProductVariantsProductVariantsEdges"]
    pageInfo: "GetProductVariantsProductVariantsPageInfo"


class GetProductVariantsProductVariantsEdges(BaseModel):
    node: "GetProductVariantsProductVariantsEdgesNode"


class GetProductVariantsProductVariantsEdgesNode(BaseModel):
    id: str
    title: str
    price: Any
    compareAtPrice: Optional[Any]
    sku: Optional[str]
    barcode: Optional[str]
    selectedOptions: List["GetProductVariantsProductVariantsEdgesNodeSelectedOptions"]
    position: int
    createdAt: Any
    updatedAt: Any


class GetProductVariantsProductVariantsEdgesNodeSelectedOptions(BaseModel):
    name: str
    value: str


class GetProductVariantsProductVariantsPageInfo(BaseModel):
    hasNextPage: bool
    hasPreviousPage: bool
    startCursor: Optional[str]
    endCursor: Optional[str]


GetProductVariants.model_rebuild()
GetProductVariantsProduct.model_rebuild()
GetProductVariantsProductVariants.model_rebuild()
GetProductVariantsProductVariantsEdges.model_rebuild()
GetProductVariantsProductVariantsEdgesNode.model_rebuild()
