Modelo de Clases - vhcontre/inventario-2025 GitHub Wiki

classDiagram
    class Usuario {
        +int id
        +string username
        +string email
        +string hashed_password
        +bool is_active
        +List~Rol~ roles
        +List~Movimiento~ movimientos
    }

    class Rol {
        +int id
        +string nombre
        +List~Usuario~ usuarios
    }

    class UsuarioRol {
        +int usuario_id
        +int rol_id
    }

    class Producto {
        +int id
        +string nombre
        +string sku
        +string descripcion
        +int stock
        +List~Movimiento~ movimientos
    }

    class Deposito {
        +int id
        +string nombre
        +string ubicacion
        +List~Movimiento~ movimientos_origen
        +List~Movimiento~ movimientos_destino
    }

    class Movimiento {
        +int id
        +int producto_id
        +int deposito_origen_id
        +int deposito_destino_id
        +int usuario_id
        +int cantidad
        +datetime fecha
        +enum tipo
        +Producto producto
        +Deposito deposito_origen
        +Deposito deposito_destino
        +Usuario usuario
    }

    Usuario "1" -- "0..*" Movimiento : realiza
    Usuario "1" -- "0..*" UsuarioRol : tiene
    Rol "1" -- "0..*" UsuarioRol : asigna
    UsuarioRol "*" -- "*" Usuario : asigna
    UsuarioRol "*" -- "*" Rol : asigna

    Producto "1" -- "0..*" Movimiento : registra
    Deposito "1" -- "0..*" Movimiento : origen
    Deposito "1" -- "0..*" Movimiento : destino