العملاء
نقاط النهاية لإدارة ملف تعريف العميل المصادق عليه ونقاطه.
GET
/api/v1/cliente/perfil/
يحصل على ملف تعريف العميل المصادق عليه.
يتطلب JWTمثال على الطلب
cURL
curl -X GET "https://app.salonbookit.com/api/v1/cliente/perfil/" \
-H "X-API-Key: hh_pub_live_abc123..." \
-H "Authorization: Bearer eyJhbG..."
الاستجابة (200 OK)
JSON
{
"success": true,
"data": {
"id": 456,
"nombre": "Juan Pérez",
"email": "juan@email.com",
"telefono": "+34612345678",
"fecha_nacimiento": "1990-05-15",
"genero": "masculino",
"idioma_preferido": "es",
"avatar_url": null,
"direccion": {
"calle": "Calle Mayor 10",
"ciudad": "Alicante",
"codigo_postal": "03001"
},
"preferencias": {
"recordatorios_email": true,
"recordatorios_sms": true,
"ofertas_email": true
},
"estadisticas": {
"total_reservas": 15,
"reservas_completadas": 12,
"gasto_total": 350.00,
"puntos_actuales": 250,
"miembro_desde": "2023-06-01"
},
"profesional_favorito": {
"id": 5,
"nombre": "Carlos García"
}
}
}
PUT
/api/v1/cliente/perfil/
يحدث ملف تعريف العميل.
يتطلب JWTمعلمات الجسم
| المعامل | النوع | الوصف |
|---|---|---|
nombre |
string | الاسم الكامل |
telefono |
string | الهاتف بالتنسيق الدولي |
fecha_nacimiento |
string | التاريخ (YYYY-MM-DD) |
genero |
string | ذكر، أنثى، آخر |
idioma_preferido |
string | es, en, ar |
preferencias |
object | تفضيلات الإشعارات |
مثال على الطلب
cURL
curl -X PUT "https://app.salonbookit.com/api/v1/cliente/perfil/" \
-H "X-API-Key: hh_pub_live_abc123..." \
-H "Authorization: Bearer eyJhbG..." \
-H "Content-Type: application/json" \
-d '{
"nombre": "Juan Pérez García",
"telefono": "+34612345678",
"preferencias": {
"recordatorios_sms": false
}
}'
GET
/api/v1/cliente/puntos/
يحصل على رصيد النقاط وحركات العميل.
يتطلب JWTالاستجابة (200 OK)
JSON
{
"success": true,
"data": {
"saldo_actual": 250,
"puntos_pendientes": 25,
"total_ganado": 500,
"total_canjeado": 250,
"nivel": {
"nombre": "Oro",
"puntos_siguiente_nivel": 500,
"beneficios": ["10% descuento", "Reserva prioritaria"]
},
"movimientos_recientes": [
{
"id": 100,
"tipo": "ganado",
"puntos": 25,
"concepto": "Reserva #12345 - Corte Clásico",
"fecha": "2024-01-20T11:00:00Z"
},
{
"id": 99,
"tipo": "canjeado",
"puntos": -100,
"concepto": "Descuento en reserva #12340",
"fecha": "2024-01-15T10:00:00Z"
}
],
"canjeables": [
{
"servicio_id": 15,
"servicio_nombre": "Corte Clásico",
"puntos_necesarios": 250,
"puede_canjear": true
},
{
"servicio_id": 16,
"servicio_nombre": "Afeitado Clásico",
"puntos_necesarios": 150,
"puede_canjear": true
}
]
}
}
GET
/api/v1/puntos/paquetes/
يسرد حزم النقاط المتاحة للشراء.
الاستجابة (200 OK)
JSON
{
"success": true,
"data": {
"paquetes": [
{
"id": 1,
"nombre": "Paquete Básico",
"puntos": 100,
"precio": 10.00,
"bonus": 0,
"descripcion": "100 puntos para empezar"
},
{
"id": 2,
"nombre": "Paquete Plus",
"puntos": 250,
"precio": 20.00,
"bonus": 25,
"descripcion": "250 puntos + 25 de bonus"
},
{
"id": 3,
"nombre": "Paquete Premium",
"puntos": 500,
"precio": 35.00,
"bonus": 75,
"descripcion": "500 puntos + 75 de bonus"
}
],
"moneda": "EUR"
}
}
POST
/api/v1/puntos/canjear/
يستبدل النقاط بخدمة أو خصم.
يتطلب JWTمعلمات الجسم
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
reserva_id |
integer | نعم | معرف الحجز للتطبيق |
servicio_id |
integer | نعم | معرف الخدمة للاستبدال |
الاستجابة (200 OK)
JSON
{
"success": true,
"data": {
"canje_id": 50,
"puntos_usados": 250,
"saldo_restante": 0,
"servicio_canjeado": "Corte Clásico",
"aplicado_a_reserva": 12345
}
}