from typing import Optional

from sqlalchemy import ForeignKey

from db.models.base import Base, int_pk_incr
from sqlalchemy.orm import Mapped, mapped_column

class ExperimentParameters(Base):
    __tablename__ = 'experiment_parameters'

    id: Mapped[int_pk_incr]
    outer_blades_count: Mapped[int]
    outer_blades_length: Mapped[float]
    outer_blades_angle: Mapped[float]
    middle_blades_count: Mapped[int]
    load_id: Mapped[Optional[int]] = mapped_column(ForeignKey('load_parameters.id', ondelete='SET NULL'))
    recycling_id: Mapped[Optional[int]] = mapped_column(ForeignKey('recycling_parameters.id', ondelete='SET NULL'))
    experiment_hash: Mapped[str]

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