> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/Braian551/viax/llms.txt
> Use this file to discover all available pages before exploring further.

# Admin Panel Overview

> Introduction to Viax administrative panel capabilities and access control

## Introduction

The Viax Admin Panel provides comprehensive tools for managing and monitoring your ride-sharing platform. Administrators can oversee users, drivers, companies, trips, and configure system-wide settings.

<Info>
  Admin access is role-based. Different admin roles have different permission levels: **Super Admin**, **Admin**, and **Moderator**.
</Info>

## Admin Roles

Viax supports three distinct admin roles, each with specific permissions:

<CardGroup cols={3}>
  <Card title="Super Admin" icon="crown">
    Full system access with all administrative privileges including user management, system configuration, and financial oversight.
  </Card>

  <Card title="Admin" icon="user-gear">
    Standard administrative access for day-to-day operations including user management, driver approval, and reporting.
  </Card>

  <Card title="Moderador" icon="user-shield">
    Limited access focused on content moderation and basic user support tasks.
  </Card>
</CardGroup>

## Admin Entity Structure

The admin entity in Viax follows Clean Architecture principles:

```dart admin/domain/entities/admin.dart theme={null}
class Admin {
  final int id;
  final String nombre;
  final String email;
  final AdminRole role;
  final bool activo;

  const Admin({
    required this.id,
    required this.nombre,
    required this.email,
    required this.role,
    required this.activo,
  });
}

enum AdminRole {
  superAdmin('Super Admin'),
  admin('Admin'),
  moderador('Moderador');

  final String displayName;
  const AdminRole(this.displayName);
}
```

## Panel Navigation Structure

The admin panel is organized into four main tabs for efficient navigation:

<Steps>
  <Step title="Dashboard">
    Real-time metrics, KPIs, and recent activity feed
  </Step>

  <Step title="Management">
    User, driver, and company administration tools
  </Step>

  <Step title="Statistics">
    Detailed analytics, charts, and reports
  </Step>

  <Step title="Profile">
    Admin account settings and preferences
  </Step>
</Steps>

## Key Capabilities

### User Management

* View and search all users (clients, drivers, companies)
* Activate/deactivate user accounts
* Edit user profiles and assign companies
* Filter by user type and status

### Driver Verification

* Review driver documents (license, vehicle, insurance)
* Approve or reject driver applications
* Monitor document expiration dates
* Verify SOAT, technomechanical inspection, and insurance

### Company Management

* Create and manage transport companies
* Assign drivers to companies
* Track company performance metrics
* Configure commission rates

### Trip Monitoring

* View all trip requests in real-time
* Monitor active trips
* Access complete trip history
* Handle disputes and issues

### System Configuration

* Configure pricing by vehicle type
* Define service areas
* Manage vehicle categories
* Set surge pricing and promotions

### Audit & Compliance

* Complete audit log of all admin actions
* Track user activity and system events
* Export reports for compliance
* Monitor platform earnings

## Accessing the Admin Panel

<Warning>
  Admin credentials are separate from regular user accounts. Contact your system administrator to obtain admin access.
</Warning>

<Steps>
  <Step title="Login with Admin Credentials">
    Use your admin email and password to access the system
  </Step>

  <Step title="Navigate to Admin Panel">
    The admin interface loads automatically after authentication
  </Step>

  <Step title="Select Tab">
    Use the bottom navigation to switch between Dashboard, Management, Statistics, and Profile
  </Step>
</Steps>

## System Statistics Entity

The admin panel displays real-time system statistics:

```dart admin/domain/entities/admin.dart theme={null}
class SystemStats {
  final int totalUsuarios;
  final int totalConductores;
  final int conductoresPendientes;
  final int viajesHoy;
  final int viajesTotal;
  final double gananciaHoy;
  final double gananciaTotal;

  const SystemStats({
    required this.totalUsuarios,
    required this.totalConductores,
    required this.conductoresPendientes,
    required this.viajesHoy,
    required this.viajesTotal,
    required this.gananciaHoy,
    required this.gananciaTotal,
  });
}
```

## Security Features

<CardGroup cols={2}>
  <Card title="Role-Based Access" icon="lock">
    Permissions enforced at the API level based on admin role
  </Card>

  <Card title="Audit Logging" icon="list-check">
    All administrative actions are logged with timestamps and user IDs
  </Card>

  <Card title="Session Management" icon="clock">
    Automatic session timeout for security
  </Card>

  <Card title="IP Tracking" icon="location-dot">
    Admin actions tracked with IP address and user agent
  </Card>
</CardGroup>

## Use Cases

The admin domain implements key use cases:

<Tabs>
  <Tab title="Get System Stats">
    ```dart admin/domain/usecases/get_system_stats.dart theme={null}
    class GetSystemStats {
      final AdminRepository repository;

      GetSystemStats(this.repository);

      Future<Result<SystemStats>> call() async {
        return await repository.getSystemStats();
      }
    }
    ```
  </Tab>

  <Tab title="Approve Driver">
    ```dart admin/domain/usecases/approve_driver.dart theme={null}
    class ApproveDriver {
      final AdminRepository repository;

      ApproveDriver(this.repository);

      Future<Result<void>> call(int conductorId) async {
        if (conductorId <= 0) {
          return Error(ValidationFailure('ID de conductor inválido'));
        }
        return await repository.approveDriver(conductorId);
      }
    }
    ```
  </Tab>

  <Tab title="Manage Users">
    ```dart admin/domain/usecases/manage_user_usecase.dart theme={null}
    class ManageUserUseCase {
      Future<Result<bool>> updateUser({
        required int adminId,
        required int userId,
        String? nombre,
        String? apellido,
        String? telefono,
        bool? esActivo,
        String? tipoUsuario,
        int? empresaId,
      });
    }
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="Dashboard & Analytics" icon="chart-line" href="/admin/dashboard-analytics">
    Explore real-time metrics and KPIs
  </Card>

  <Card title="User Management" icon="users" href="/admin/user-management">
    Learn how to manage platform users
  </Card>

  <Card title="Driver Management" icon="id-card" href="/admin/driver-management">
    Review and approve driver applications
  </Card>

  <Card title="Audit Logs" icon="clipboard-list" href="/admin/audit-logs">
    Track all system activities
  </Card>
</CardGroup>
