from enum import Enum as PyEnum from sqlalchemy import Column, Integer, ForeignKey, Float, Enum, Boolean from sqlalchemy.orm import relationship from app.domain.models.base import BaseModel from app.settings import settings class SideEnum(PyEnum): LEFT = 'левая' RIGHT = 'правая' class Lens(BaseModel): __tablename__ = 'lens' __table_args__ = {"schema": settings.SCHEMA} tor = Column(Float, nullable=False) trial = Column(Float, nullable=False) esa = Column(Float, nullable=False) fvc = Column(Float, nullable=False) # ПЦК preset_refraction = Column(Float, nullable=False) diameter = Column(Float, nullable=False) periphery_toricity = Column(Float, nullable=False) # Торичность перефирии side = Column(Enum(SideEnum), nullable=False) issued = Column(Boolean, nullable=False, default=False) type_id = Column(Integer, ForeignKey(f'{settings.SCHEMA}.lens_types.id', ondelete='CASCADE'), nullable=False) type = relationship('LensType', back_populates='lenses') lens_issues = relationship('LensIssue', back_populates='lens', cascade="all, delete")