34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
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")
|