petcare-api / api /urls.py
Sameer669
Initial PawCare Django backend with JWT auth, RBAC, audit logging, and HF storage
4f01198
"""
API URL Configuration
All routes prefixed with /api/ from the root urls.py
"""
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from rest_framework_simplejwt.views import TokenRefreshView
from api.views import (
LoginView, RegisterView, LogoutView, MeView, ChangePasswordView,
ServiceListView,
CaregiverViewSet,
PetViewSet,
BookingViewSet,
ConversationViewSet, MessageViewSet,
ImageUploadView,
DashboardStatsView,
)
router = DefaultRouter()
router.register(r'caregivers', CaregiverViewSet, basename='caregiver')
router.register(r'pets', PetViewSet, basename='pet')
router.register(r'bookings', BookingViewSet, basename='booking')
router.register(r'conversations', ConversationViewSet, basename='conversation')
router.register(
r'conversations/(?P<conversation_pk>[^/.]+)/messages',
MessageViewSet,
basename='message',
)
urlpatterns = [
# ── Auth ──────────────────────────────────────────────────────────────────
path('auth/login/', LoginView.as_view(), name='auth-login'),
path('auth/register/', RegisterView.as_view(), name='auth-register'),
path('auth/logout/', LogoutView.as_view(), name='auth-logout'),
path('auth/refresh/', TokenRefreshView.as_view(), name='auth-refresh'),
path('auth/me/', MeView.as_view(), name='auth-me'),
path('auth/change-password/', ChangePasswordView.as_view(), name='auth-change-password'),
# ── Services ──────────────────────────────────────────────────────────────
path('services/', ServiceListView.as_view(), name='service-list'),
# ── Image Upload ──────────────────────────────────────────────────────────
path('upload-image/', ImageUploadView.as_view(), name='image-upload'),
# ── Admin Dashboard ───────────────────────────────────────────────────────
path('admin/stats/', DashboardStatsView.as_view(), name='admin-stats'),
# ── Viewset Routes ────────────────────────────────────────────────────────
path('', include(router.urls)),
]