esta todo ok

This commit is contained in:
2025-11-19 11:33:57 -03:00
parent 4670366ffc
commit 57ad12754f
7 changed files with 550 additions and 8 deletions

View File

@@ -3,6 +3,26 @@ from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from app.core.database import Base
class Role(Base):
__tablename__ = "roles"
id = Column(Integer, primary_key=True, index=True)
name = Column(String(50), unique=True, nullable=False) # administrador, asesor, mecanico
display_name = Column(String(100), nullable=False) # Administrador, Asesor, Mecánico
description = Column(String(255))
# Permisos
can_manage_users = Column(Boolean, default=False)
can_manage_roles = Column(Boolean, default=False)
can_manage_checklists = Column(Boolean, default=False)
can_create_inspections = Column(Boolean, default=False)
can_view_all_inspections = Column(Boolean, default=False)
can_view_reports = Column(Boolean, default=False)
can_deactivate_inspections = Column(Boolean, default=False)
created_at = Column(DateTime(timezone=True), server_default=func.now())
# Relationships
users = relationship("User", back_populates="role_obj")
class User(Base):
__tablename__ = "users"
@@ -10,12 +30,13 @@ class User(Base):
username = Column(String(50), unique=True, index=True, nullable=False)
email = Column(String(100), unique=True, index=True)
password_hash = Column(String(255), nullable=False)
role = Column(String(20), nullable=False) # admin, mechanic
role_id = Column(Integer, ForeignKey("roles.id"), nullable=False)
full_name = Column(String(100))
is_active = Column(Boolean, default=True)
created_at = Column(DateTime(timezone=True), server_default=func.now())
# Relationships
role_obj = relationship("Role", back_populates="users")
checklists_created = relationship("Checklist", back_populates="creator")
inspections = relationship("Inspection", back_populates="mechanic")
api_tokens = relationship("APIToken", back_populates="user", cascade="all, delete-orphan")