from src.data.model.schemas.base_schemas import BaseSchemaModel
from typing import List, Optional


class GetArticleColorSize(BaseSchemaModel):
    article_number: str
    partner_id: int
    agent_id: int
    sales_order_type: int


class ArticleSize(BaseSchemaModel):
    size: int
    size_register: int
    price: float
    ean: str
    quantity: int


class ArticleColor(BaseSchemaModel):
    color_code: int
    color_name: str
    picture: str
    sizes: List[ArticleSize]


class ArticleColorSize(BaseSchemaModel):
    article_number: str
    article_name: str
    season: str
    delivery_date_from: str
    delivery_date_to: str
    material: str
    picture: str
    colors: List[ArticleColor]


class Article(BaseSchemaModel):
    name: str
    number: str
    material: str
    brand: str
    picture: str = "https://via.placeholder.com/700x400"

    def __hash__(self):
        return self.number


class Color(BaseSchemaModel):
    code: str
    name: str

    # need for set
    def __hash__(self):
        return self.name.__hash__()


class Size(BaseSchemaModel):
    size: str

    # need for set
    def __hash__(self):
        return self.size.__hash__()
