info:
  name: Register Admin User
  type: http
  seq: 4
http:
  method: POST
  url: '{{base_url}}/api/auth/register'
  auth: inherit
  body:
    type: json
    data: |-
      {
        "email": "admin@example.com",
        "username": "admin",
        "password": "Admin@Pass123!",
        "first_name": "Admin",
        "last_name": "User",
        "role": "admin"
      }

docs: |-
  ## Register Admin User
    
    Creates a new admin user account with role-based restrictions.
    
    **Method:** POST
    
    **Endpoint:** /api/auth/register
    
     **Request Body:**
     - `email` (string): Email address
     - `username` (string): Username
     - `password` (string): Password
     - `first_name` (string, optional): First name
     - `last_name` (string, optional): Last name
     - `role` (string): Must be "admin"
    
    **Response:**
     - `token` (string): JWT token with admin role
      - `user` (object): User details
         - `id` (string): User ID
         - `email` (string): Email
         - `username` (string): Username
     - `theme` (string): User theme preference
         - `first_name` (string, optional): First name
         - `last_name` (string, optional): Last name
         - `role` (string): User role ("admin")
    
    **Status Codes:**
     - 201: Created
     - 400: Invalid input data
     - 403: Forbidden - admin creation restrictions apply
     - 409: User exists
    
    **Role Restrictions:**
     - **First User**: Anyone can create first admin (auto-assigned)
     - **Existing Admins Present**: Only authenticated admins can create new admin accounts
     - **Unauthenticated Users**: Cannot create admin accounts if any admin exists
     - **Security**: Requires admin authentication for subsequent admin creation
    
    **Usage Notes:**
     - Use this request only when specifically creating admin accounts
     - For regular user creation, use "Register User" request
     - Admin token will have elevated privileges for administrative operations
