from django.urls import path

from apps.mel.tracking import views

app_name = "mel_tracking"

urlpatterns = [
    path("", views.EventLogView.as_view(), name="event_log"),
    path("milestones/", views.MilestoneListView.as_view(), name="milestone_list"),
    path(
        "dashboard/",
        views.CrossModuleTrackingDashboardView.as_view(),
        name="tracking_dashboard",
    ),
    path(
        "dashboard/participants/",
        views.ParticipantDirectoryView.as_view(),
        name="participant_directory",
    ),
    path(
        "participants/<int:pk>/",
        views.ParticipantRecordView.as_view(),
        name="participant_record",
    ),
    path(
        "participants/<int:pk>/timeline/",
        views.TimelineFragmentView.as_view(),
        name="participant_timeline_fragment",
    ),
    path("smehub/", views.SMEHubPortfolioView.as_view(), name="smehub_portfolio"),
    path(
        "smehub/dashboard/",
        views.SMEHubIndicatorDashboardView.as_view(),
        name="smehub_indicator_dashboard",
    ),
    path("smehub/stalled/", views.SMEHubStalledView.as_view(), name="smehub_stalled"),
    path(
        "smehub/feed-failures/",
        views.SMEHubFeedFailureListView.as_view(),
        name="smehub_feed_failures",
    ),
    path(
        "smehub/feed-failures/<int:pk>/resolve/",
        views.SMEHubFeedFailureResolveView.as_view(),
        name="smehub_feed_failure_resolve",
    ),
    path(
        "config/",
        views.MELConfigurationUpdateView.as_view(),
        name="mel_configuration",
    ),
    path(
        "smehub/feedback/",
        views.SMEHubFeedbackOverviewView.as_view(),
        name="smehub_feedback_overview",
    ),
    path(
        "smehub/<int:pk>/",
        views.SMEHubTrackingDetailView.as_view(),
        name="smehub_tracking_detail",
    ),
    path(
        "smehub/<int:pk>/employment/",
        views.RecordEmploymentSnapshotView.as_view(),
        name="smehub_record_employment",
    ),
    path("activities/", views.ActivityListView.as_view(), name="activity_list"),
    path("activities/new/", views.ActivityCreateView.as_view(), name="activity_create"),
    path("activities/<int:pk>/", views.ActivityDetailView.as_view(), name="activity_detail"),
    path("activities/<int:pk>/history/", views.ActivityHistoryView.as_view(), name="activity_history"),
    path("activities/<int:pk>/edit/", views.ActivityUpdateView.as_view(), name="activity_edit"),
    path(
        "activities/<int:pk>/transition/",
        views.ActivityTransitionView.as_view(),
        name="activity_transition",
    ),
    path(
        "activities/<int:pk>/followup/",
        views.ActivityScheduleFollowupView.as_view(),
        name="activity_schedule_followup",
    ),
    # M&E SRS Table 66 — corrective-action register (list + monitoring).
    path(
        "corrective-actions/",
        views.CorrectiveActionListView.as_view(),
        name="corrective_action_list",
    ),
    path(
        "corrective-actions/new/",
        views.CorrectiveActionCreateView.as_view(),
        name="corrective_action_create",
    ),
    path(
        "corrective-actions/<int:pk>/resolve/",
        views.CorrectiveActionResolveView.as_view(),
        name="corrective_action_resolve",
    ),
    path("outputs/", views.OutputDeliverableListView.as_view(), name="output_list"),
    path("outputs/new/", views.OutputDeliverableCreateView.as_view(), name="output_create"),
    path("outputs/<int:pk>/", views.OutputDeliverableDetailView.as_view(), name="output_detail"),
    path("outputs/<int:pk>/history/", views.OutputDeliverableHistoryView.as_view(), name="output_history"),
    path("outputs/<int:pk>/edit/", views.OutputDeliverableUpdateView.as_view(), name="output_edit"),
    path(
        "outputs/<int:pk>/progress/",
        views.RecordOutputProgressView.as_view(),
        name="output_record_progress",
    ),
    # G2 — QR-code attendance & registration.
    path(
        "activities/<int:pk>/attendance/",
        views.ActivityAttendancePageView.as_view(),
        name="activity_attendance",
    ),
    path(
        "activities/<int:pk>/attendance/qr.png",
        views.ActivityAttendanceQrView.as_view(),
        name="activity_attendance_qr",
    ),
    path(
        "activities/<int:pk>/attendance/csv/",
        views.ActivityAttendanceCsvView.as_view(),
        name="activity_attendance_csv",
    ),
    path(
        "activities/<int:pk>/attendance/rotate-token/",
        views.ActivityAttendanceRotateTokenView.as_view(),
        name="activity_attendance_rotate",
    ),
    path(
        "attendance/<str:token>/",
        views.PublicAttendanceView.as_view(),
        name="attendance_public",
    ),
    # WS1.4 / FRREP-AR010 — read-only indicator-mapping reference.
    path(
        "indicators/",
        views.IndicatorReferenceView.as_view(),
        name="indicator_reference",
    ),
]
