from typing import Optional

from sqlalchemy import ForeignKey, Identity
from sqlalchemy.orm import Mapped, mapped_column

from db.models.base import Base


class RecyclingParameters(Base):
    __tablename__ = 'recycling_parameters'

    id: Mapped[int] = mapped_column(Identity(start=6, cycle=True),
                                    primary_key=True)

    load_id: Mapped[Optional[int]] = mapped_column(ForeignKey('load_parameters.id', ondelete='SET NULL'))
    recycling_level: Mapped[int]
    co2: Mapped[float]
    n2: Mapped[float]
    h2o: Mapped[float]
    o2: Mapped[float]

    def __repr__(self):
        return f"<RecyclingParameters>"