Spaces:
Running
Running
| 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") |