"""
API URL configuration for base app.
"""
from django.urls import path
from rest_framework.routers import DefaultRouter
from rest_framework_simplejwt.views import TokenRefreshView
from .views import (
    BotViewSet,
    ForexPairViewSet,
    LessonViewSet,
    SignalViewSet,
    NewsViewSet,
    TestimonialViewSet,
    LeaderboardViewSet,
    ContentBlockViewSet,
    SiteSettingsViewSet,
    NavigationItemViewSet,
    health_view,
    live_news_proxy,
    RegisterView,
    CustomTokenObtainPairView,
    GoogleLoginView,
    LogoutView,
    me_view,
    cms_summary,
    cms_logo_asset,
)

router = DefaultRouter()

# Register all viewsets
router.register(r'bots',         BotViewSet,         basename='bot')
router.register(r'forex',        ForexPairViewSet,   basename='forex')
router.register(r'lessons',      LessonViewSet,      basename='lesson')
router.register(r'signals',      SignalViewSet,       basename='signal')
router.register(r'news',         NewsViewSet,         basename='news')
router.register(r'testimonials', TestimonialViewSet,  basename='testimonial')
router.register(r'leaderboard',  LeaderboardViewSet,  basename='leaderboard')
router.register(r'content',      ContentBlockViewSet, basename='content')
router.register(r'site-settings', SiteSettingsViewSet, basename='site-settings')
router.register(r'navigation', NavigationItemViewSet, basename='navigation')

urlpatterns = router.urls + [
    path('health/', health_view, name='health'),

    # Live news proxy — fetches from Marketaux, falls back to internal DB
    path('news/live/', live_news_proxy, name='live-news'),

    # Auth endpoints
    path('auth/register/', RegisterView.as_view(),             name='auth-register'),
    path('auth/login/',    CustomTokenObtainPairView.as_view(), name='auth-login'),
    path('auth/google/',   GoogleLoginView.as_view(),           name='auth-google'),
    path('auth/refresh/',  TokenRefreshView.as_view(),          name='auth-token-refresh'),
    path('auth/logout/',   LogoutView.as_view(),                name='auth-logout'),
    path('auth/me/',       me_view,                             name='auth-me'),
    path('cms/summary/',   cms_summary,                         name='cms-summary'),
    path('assets/logo/<str:filename>', cms_logo_asset,          name='cms-logo-asset'),
]
