# backend/models.py
from sqlalchemy import Column, Integer, String, Boolean, DECIMAL, ForeignKey
from sqlalchemy.orm import relationship
from .database import Base

class Category(Base):
    __tablename__ = "Categories"
    category_id = Column(Integer, primary_key=True, index=True)
    name = Column(String(100), unique=True, nullable=False)
    materials = relationship("Material", back_populates="category")

class Material(Base):
    __tablename__ = "Materials"
    material_id = Column(Integer, primary_key=True, index=True)
    name = Column(String(100), nullable=False)
    category_id = Column(Integer, ForeignKey("Categories.category_id"))
    category = relationship("Category", back_populates="materials")
    models = relationship("Model", back_populates="material")

class Model(Base):
    __tablename__ = "Models"
    model_id = Column(Integer, primary_key=True, index=True)
    name = Column(String(100), nullable=False)
    material_id = Column(Integer, ForeignKey("Materials.material_id"))
    material = relationship("Material", back_populates="models")
    products = relationship("Product", back_populates="model")

class Product(Base):
    __tablename__ = "Products"
    product_id = Column(Integer, primary_key=True, index=True)
    name = Column(String(255), nullable=False)
    is_active = Column(Boolean, default=True)
    price_tax_included = Column(DECIMAL(20, 6))
    quantity = Column(Integer, default=0)
    reference_code = Column(String(255))
    model_id = Column(Integer, ForeignKey("Models.model_id"))
    model = relationship("Model", back_populates="products")
    # ... dodaj tutaj resztę kolumn z tabeli Products