ReciclA / modelsProyecto.py
YellowAlberto's picture
Update modelsProyecto.py
30d33d5 verified
from sqlalchemy import Column, Integer, String, ForeignKey, Boolean, DateTime, Float, Text
from sqlalchemy.orm import relationship
from databaseProyecto import Base
from datetime import datetime
from pydantic import BaseModel
class Usuario(Base):
__tablename__ = "usuarios"
id = Column(Integer, primary_key=True, index=True)
username = Column(String, unique=True, index=True)
password_hash = Column(String)
es_admin = Column(Boolean, default=False)
imagenes = relationship("Imagen", back_populates="usuario", cascade="all, delete-orphan")
historial = relationship("HistorialChat", back_populates="usuario")
class UsuarioSchema(BaseModel):
username: str
es_admin: bool = False
class Imagen(Base):
__tablename__ = "imagenes"
id = Column(Integer, primary_key=True, index=True)
name = Column(String, unique=True, index=True)
ruta = Column(String, unique=True)
fecha_subida = Column(DateTime, default=datetime.utcnow)
prediccion = Column(String, nullable=True)
confianza = Column(Float, nullable=True)
usuario_id = Column(Integer, ForeignKey("usuarios.id"), nullable=False)
usuario = relationship("Usuario", back_populates="imagenes")
class HistorialChat(Base):
__tablename__ = "historial_chat"
id = Column(Integer, primary_key=True, index=True)
usuario_id = Column(Integer, ForeignKey("usuarios.id"))
mensaje_usuario = Column(Text)
respuesta_agente = Column(Text)
fecha = Column(DateTime, default=datetime.utcnow)
usuario = relationship("Usuario", back_populates="historial")