from sqlalchemy import Column, String, Integer, DateTime, Text
from sqlalchemy.orm import relationship
from datetime import datetime
import uuid
from utils.utils import Base


class Calculationsession(Base):
    __tablename__ = "calculation_sessions"

    id = Column(String(36), primary_key=True, default=lambda: str(uuid.uuid4()))
    session_id = Column(String(255), nullable=False, unique=True, index=True)
    calculation_count = Column(Integer, nullable=False, default=0)
    user_agent = Column(Text, nullable=True)
    last_activity_at = Column(DateTime, nullable=False, default=datetime.utcnow)
    created_at = Column(DateTime, nullable=False, default=datetime.utcnow)
    updated_at = Column(DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)

    loan_calculations = relationship("Loancalculation", back_populates="calculation_session")