Spaces:
Running
Running
File size: 1,593 Bytes
a519eb5 14ed572 30d33d5 14ed572 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 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") |