Customer Statistics

Статистика по клієнту: історія уроків, улюблений інструктор, загальні години.

Endpoint

GET /api/v1/reports/{customer_id}/customer-stats/

Authentication

Required: Yes (Token Authentication)

Path Parameters

Parameter Type Required Description
customer_id integer Yes ID клієнта

Response

Success Response (200 OK)

{
  "customer_id": 456,
  "name": "Іван Петренко",
  "phone_number": "+380501234567",
  "email": "ivan@example.com",
  "total_lessons": 12,
  "total_hours": 36.0,
  "last_lesson_date": "2025-11-05",
  "favorite_instructor": "Петро Іванович",
  "total_skipasses_used": 15,
  "lessons_history": [
    {
      "lesson_id": 123,
      "booking_number": "HMS-12345",
      "date": "2025-11-05",
      "duration_hours": 6.0,
      "skipasses_used": 2,
      "instructor": "Петро Іванович",
      "location": "Буковель-1"
    },
    {
      "lesson_id": 115,
      "booking_number": "HMS-11234",
      "date": "2025-10-28",
      "duration_hours": 3.0,
      "skipasses_used": 1,
      "instructor": "Ольга Сергіївна",
      "location": "Буковель-2"
    }
  ]
}

Error Response (404 NOT FOUND)

{
  "error": "Customer not found"
}

Response Fields

Field Type Description
customer_id integer ID клієнта
name string Повне ім'я
phone_number string Номер телефону
email string Email адреса
total_lessons integer Загальна кількість відвіданих уроків
total_hours float Загальна кількість годин катання
last_lesson_date string Дата останнього уроку (YYYY-MM-DD)
favorite_instructor string Найчастіший інструктор
total_skipasses_used integer Загальна кількість використаних скіпасів
lessons_history array Історія всіх уроків

Lesson History Item

Field Type Description
lesson_id integer ID уроку
booking_number string Номер бронювання
date string Дата уроку (YYYY-MM-DD)
duration_hours float Тривалість уроку (години)
skipasses_used integer Кількість скіпасів використано
instructor string Ім'я інструктора
location string Локація проведення

Use Cases

CRM аналітика

Використовується для персоналізованого обслуговування VIP клієнтів.

Програми лояльності

Визначення активних клієнтів для бонусних програм.

Призначення інструкторів

Автоматичне призначення улюбленого інструктора при наступному бронюванні.

Example cURL

# Get customer statistics
curl -X GET "https://bukovelvipentry.breport.site/api/v1/reports/456/customer-stats/" \
  -H "Authorization: Token YOUR_TOKEN"

Notes

  • Статистика розраховується по всіх уроках клієнта (незалежно від статусу)
  • favorite_instructor визначається як інструктор з найбільшою кількістю уроків
  • total_hours розраховується як сума тривалості всіх уроків
  • Історія уроків сортується за датою (новіші зверху)
  • Використовується для CRM систем та аналітики клієнтів