paths:
  /statistics/overview:
    get:
      tags:
        - Statistics
      summary: Get an overview of car statistics
      description: Retrieve an overview of statistics including total users, cars, available cars, active bookings, and total revenue.
      responses:
        200:
          description: Overview of car statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalUsers:
                    type: integer
                  totalCars:
                    type: integer
                  availableCars:
                    type: integer
                  activeBookings:
                    type: integer
                  totalRevenue:
                    type: number
                    format: float

  /statistics/monthly:
    get:
      tags:
        - Statistics
      summary: Get monthly car booking statistics
      description: Retrieve monthly statistics for car bookings, including the number of bookings and revenue per month.
      responses:
        200:
          description: Monthly car booking statistics
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    month:
                      type: integer
                      description: Month of the year (1-12)
                    count:
                      type: integer
                      description: Number of bookings
                    revenue:
                      type: number
                      format: float
                      description: Total revenue for the month

  /statistics/popular-cars:
    get:
      tags:
        - Statistics
      summary: Get the most popular cars
      description: Retrieve a list of the most popular cars based on the number of bookings.
      responses:
        200:
          description: List of popular cars
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    brand:
                      type: string
                    model:
                      type: string
                    bookingCount:
                      type: integer
                      description: Number of bookings for the car

  /statistics/users:
    get:
      tags:
        - Statistics
      summary: Get user statistics
      description: Retrieve statistics about users, including the number of new users this month and users grouped by role.
      responses:
        200:
          description: User statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  newUsersThisMonth:
                    type: integer
                  usersByRole:
                    type: array
                    items:
                      type: object
                      properties:
                        role:
                          type: string
                        count:
                          type: integer

  /statistics/housing/overview:
    get:
      tags:
        - Statistics
      summary: Get an overview of housing statistics
      description: Retrieve an overview of housing statistics including total users, houses, available houses, active bookings, and total revenue.
      responses:
        200:
          description: Overview of housing statistics
          content:
            application/json:
              schema:
                type: object
                properties:
                  totalUsers:
                    type: integer
                  totalHouses:
                    type: integer
                  availableHouses:
                    type: integer
                  activeBookings:
                    type: integer
                  totalRevenue:
                    type: number
                    format: float

  /statistics/housing/monthly:
    get:
      tags:
        - Statistics
      summary: Get monthly housing booking statistics
      description: Retrieve monthly statistics for housing bookings, including the number of bookings and revenue per month.
      responses:
        200:
          description: Monthly housing booking statistics
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    month:
                      type: integer
                      description: Month of the year (1-12)
                    count:
                      type: integer
                      description: Number of bookings
                    revenue:
                      type: number
                      format: float
                      description: Total revenue for the month

  /statistics/popular-houses:
    get:
      tags:
        - Statistics
      summary: Get the most popular houses
      description: Retrieve a list of the most popular houses based on the number of bookings.
      responses:
        200:
          description: List of popular houses
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    name:
                      type: string
                    city:
                      type: string
                    bookingCount:
                      type: integer
                      description: Number of bookings for the house