"""
URL Configuration for Business APIs
"""

from django.urls import path, include
from . import views
from . import views_admin
from . import views_owner

urlpatterns = [
    # Dashboard
    path('dashboard/', views.dashboard_view, name='dashboard'),

    # Section Details (View More)
    path('section/<str:section_type>/', views.section_detail_view, name='section-detail'),

    # Category Businesses
    path('category/<int:category_id>/', views.category_businesses_view, name='category-businesses'),

    # Sub-Category Endpoints
    path('sub-categories/', views.get_sub_categories, name='get-sub-categories'),
    path('sub-category/<int:sub_category_id>/', views.sub_category_businesses_view, name='sub-category-businesses'),

    # Business List & CRUD
    path('businesses/', views.list_businesses, name='list-businesses'),  # List with filters
    path('create/', views.create_business, name='create-business'),
    path('<int:business_id>/', views.business_detail_view, name='business-detail'),
    path('<int:business_id>/images/', views.add_business_images, name='add-business-images'),  # Upload images
    path('share/<slug:slug>/', views.business_detail_by_slug, name='business-detail-by-slug'),  # Shareable link
    path('render/<slug:slug>/', views.business_detail_html, name='business-detail-html'),  # Server-rendered snapshot for crawlers/link-preview bots — see user-app's vite.config.js
    path('render/product/<slug:slug>/', views.product_detail_html, name='product-detail-html'),
    path('render/category/<slug:slug>/', views.category_detail_html, name='category-detail-html'),
    path('listing/<slug:slug>/', views.get_listing_by_slug, name='listing-detail'),  # Product/service detail page

    # Offers
    path('offers/', views.list_offers, name='list-offers'),

    # Suggested businesses (similar-to-X, or personalized from lead history)
    path('suggested/', views.suggested_businesses, name='suggested-businesses'),

    # Newsletter
    path('newsletter/subscribe/', views.newsletter_subscribe, name='newsletter-subscribe'),
    path('newsletter/unsubscribe/<uuid:token>/', views.newsletter_unsubscribe, name='newsletter-unsubscribe'),
    path('platform-status/', views.platform_status, name='platform-status'),

    # Search
    path('search/', views.search_businesses, name='search-businesses'),
    path('explore/', views.explore_home, name='explore-home'),

    # Lead tracking (CTA clicks: WhatsApp, call, website, directions, booking, buy)
    path('<int:business_id>/lead/', views.track_lead_event, name='track-lead-event'),

    # Report a business (spam/closed/inappropriate/etc.)
    path('<int:business_id>/report/', views.report_business, name='report-business'),

    # Reviews
    path('review/create/', views.create_review, name='create-review'),

    # Categories
    path('categories/', views.get_categories, name='get-categories'),

    # Feedback
    path('feedback/', views.submit_feedback, name='submit-feedback'),
    path('feedback/history/', views.feedback_history, name='feedback-history'),

    # Contact / sales inquiries (pricing page, plan upgrade requests)
    path('contact/', views.submit_contact_request, name='submit-contact-request'),

    # Business-owner dashboard (products, offers, posts, team, locations, leads, stats)
    path('owner/<int:business_id>/stats/', views_owner.business_stats, name='owner-stats'),
    path('owner/<int:business_id>/services/', views_owner.owner_services, name='owner-services'),
    path('owner/services/<int:service_id>/', views_owner.owner_service_detail, name='owner-service-detail'),
    path('owner/<int:business_id>/offers/', views_owner.owner_offers, name='owner-offers'),
    path('owner/offers/<int:offer_id>/', views_owner.owner_offer_detail, name='owner-offer-detail'),
    path('owner/<int:business_id>/posts/', views_owner.owner_posts, name='owner-posts'),
    path('owner/posts/<int:post_id>/', views_owner.owner_post_detail, name='owner-post-detail'),
    path('owner/<int:business_id>/employees/', views_owner.owner_employees, name='owner-employees'),
    path('owner/employees/<int:employee_id>/', views_owner.owner_employee_detail, name='owner-employee-detail'),
    path('owner/<int:business_id>/branches/', views_owner.owner_branches, name='owner-branches'),
    path('owner/branches/<int:branch_id>/', views_owner.owner_branch_detail, name='owner-branch-detail'),
    path('owner/<int:business_id>/leads/', views_owner.owner_leads, name='owner-leads'),
    path('owner/leads/<int:lead_id>/', views_owner.owner_lead_detail, name='owner-lead-detail'),
    path('owner/<int:business_id>/reviews/', views_owner.owner_reviews, name='owner-reviews'),
    path('owner/reviews/<int:review_id>/respond/', views_owner.owner_respond_to_review, name='owner-respond-to-review'),
    path('owner/<int:business_id>/team-access/', views_owner.owner_team_access, name='owner-team-access'),
    path('owner/<int:business_id>/team-access/invite/', views_owner.owner_invite_team_member, name='owner-invite-team-member'),
    path('owner/team-access/<int:membership_id>/remove/', views_owner.owner_remove_team_access, name='owner-remove-team-access'),
    path('owner/<int:business_id>/requests/', views_owner.owner_requests, name='owner-requests'),
    path('owner/<int:business_id>/requests/<int:request_id>/respond/', views_owner.owner_respond_to_request, name='owner-respond-to-request'),
    path('owner/<int:business_id>/campaigns/', views_owner.owner_campaigns, name='owner-campaigns'),
    path('owner/campaigns/<int:campaign_id>/', views_owner.owner_campaign_detail, name='owner-campaign-detail'),
    path('owner/campaigns/<int:campaign_id>/toggle/', views_owner.owner_toggle_campaign, name='owner-toggle-campaign'),
    path('owner/campaigns/<int:campaign_id>/checkout/', views_owner.owner_campaign_checkout, name='owner-campaign-checkout'),

    # Billing / Plans
    path('plans/', views_owner.list_plans, name='list-plans'),
    path('owner/<int:business_id>/subscription/', views_owner.owner_subscription, name='owner-subscription'),
    path('owner/<int:business_id>/payments/', views_owner.owner_payment_history, name='owner-payment-history'),
    path('owner/<int:business_id>/billing/checkout/', views_owner.owner_billing_checkout, name='owner-billing-checkout'),
    path('owner/billing/verify/', views_owner.owner_billing_verify, name='owner-billing-verify'),
    path('owner/payments/<int:payment_id>/invoice/', views_owner.owner_payment_invoice, name='owner-payment-invoice'),
    path('webhooks/flutterwave/', views_owner.flutterwave_webhook, name='flutterwave-webhook'),
    path('owner/<int:business_id>/export/', views_owner.owner_export_data, name='owner-export-data'),

    # Admin console (staff-only)
    path('admin/stats/', views_admin.admin_stats, name='admin-stats'),
    path('admin/businesses/', views_admin.admin_list_businesses, name='admin-list-businesses'),
    path('admin/businesses/<int:business_id>/', views_admin.admin_business_detail, name='admin-business-detail'),
    path('admin/businesses/<int:business_id>/action/', views_admin.admin_business_action, name='admin-business-action'),
    path('admin/users/', views_admin.admin_list_users, name='admin-list-users'),
    path('admin/users/<int:user_id>/action/', views_admin.admin_user_action, name='admin-user-action'),
    path('admin/users/<int:user_id>/reset-password/', views_admin.admin_reset_user_password, name='admin-reset-user-password'),
    path('admin/users/<int:user_id>/impersonate/', views_admin.admin_impersonate_user, name='admin-impersonate-user'),
    path('admin/users/<int:user_id>/role/', views_admin.admin_set_user_role, name='admin-set-user-role'),
    path('admin/contact-requests/', views_admin.admin_list_contact_requests, name='admin-list-contact-requests'),
    path('admin/contact-requests/<int:request_id>/action/', views_admin.admin_contact_request_action, name='admin-contact-request-action'),
    path('admin/reviews/', views_admin.admin_list_reviews, name='admin-list-reviews'),
    path('admin/reviews/<int:review_id>/action/', views_admin.admin_review_action, name='admin-review-action'),
    path('admin/categories/', views_admin.admin_categories, name='admin-categories'),
    path('admin/categories/<int:category_id>/', views_admin.admin_category_detail, name='admin-category-detail'),
    path('admin/sub-categories/', views_admin.admin_sub_categories, name='admin-sub-categories'),
    path('admin/sub-categories/<int:sub_category_id>/', views_admin.admin_sub_category_detail, name='admin-sub-category-detail'),
    path('admin/reports/', views_admin.admin_list_reports, name='admin-list-reports'),
    path('admin/reports/<int:report_id>/action/', views_admin.admin_report_action, name='admin-report-action'),
    path('admin/campaigns/', views_admin.admin_list_campaigns, name='admin-list-campaigns'),
    path('admin/campaigns/<int:campaign_id>/action/', views_admin.admin_campaign_action, name='admin-campaign-action'),
    path('admin/subscriptions/', views_admin.admin_list_subscriptions, name='admin-list-subscriptions'),
    path('admin/subscriptions/<int:subscription_id>/action/', views_admin.admin_set_subscription, name='admin-set-subscription'),
    path('admin/plans/<int:plan_id>/', views_admin.admin_update_plan, name='admin-update-plan'),
    path('admin/payments/<int:payment_id>/refund/', views_admin.admin_refund_payment, name='admin-refund-payment'),
    path('admin/audit-logs/', views_admin.admin_list_audit_logs, name='admin-list-audit-logs'),
    path('admin/settings/', views_admin.admin_settings, name='admin-settings'),
    path('admin/analytics/', views_admin.admin_reports, name='admin-analytics'),

    # Extended URLs (Reviews, Favorites, Chat, Notifications)
    path('', include('business.urls_extended')),
]
