from django.contrib.auth import views as auth_views
from django.urls import path

from . import views

urlpatterns = [
    path("", views.dashboard, name="dashboard"),                 # task-centric home
    path("analytics/", views.analytics, name="analytics"),       # stats / environmental score
    path("tasks/", views.tasks, name="tasks"),

    # Onboarding — manage → usage → details (name + workspace) → phone → OTP (sign in)
    path("welcome/", views.welcome, name="welcome"),
    path("start/manage/", views.ob_manage, name="ob_manage"),
    path("start/usage/", views.ob_usage, name="ob_usage"),
    path("start/details/", views.ob_details, name="ob_details"),
    path("start/phone/", views.ob_phone, name="ob_phone"),
    path("start/otp/", views.ob_otp, name="ob_otp"),

    # Auth — normal users sign in by phone; staff (admin demo) use the hidden username/password door
    path("login/", views.login_view, name="login"),
    path("staff/login/", auth_views.LoginView.as_view(template_name="trees/staff_login.html"), name="staff_login"),
    path("logout/", auth_views.LogoutView.as_view(), name="logout"),
    path("signup/", views.signup, name="signup"),
    path("profile/", views.profile, name="profile"),

    # Asset ownership selection
    path("trees/add/owner/", views.select_asset_owner, {"asset_type": "tree"}, name="select_tree_owner"),
    path("nurseries/add/owner/", views.select_asset_owner, {"asset_type": "nursery"}, name="select_nursery_owner"),

    # Nurseries
    path("nurseries/", views.nursery_list, name="nursery_list"),
    path("nurseries/add/", views.nursery_create, name="nursery_create"),

    # Trees / assets
    path("trees/", views.tree_list, name="tree_list"),
    path("register/", views.register_tree, name="register_tree"),
    path("register/session/", views.register_session, name="register_session"),
    path("trees/<int:pk>/", views.tree_detail, name="tree_detail"),
    path("trees/<int:pk>/activity/", views.record_activity, name="record_activity"),

    # Monitoring
    path("monitor/", views.monitor_home, name="monitor_home"),
    path("trees/<int:pk>/monitor/", views.monitor_tree, name="monitor_tree"),

    # GIS
    path("map/", views.map_view, name="map"),
    path("api/trees.geojson", views.trees_geojson, name="trees_geojson"),
    path("api/nurseries.geojson", views.nurseries_geojson, name="nurseries_geojson"),

    # Reports
    path("reports/", views.reports, name="reports"),
    path("reports/csv/", views.report_csv, name="report_csv"),
]
