from django.urls import path
from . import views

app_name = 'stiftung'

urlpatterns = [
    # Dashboard (Startseite)
    path('', views.dashboard, name='dashboard'),
    
    # Home (für Kompatibilität mit bestehenden Templates)
    path('home/', views.home, name='home'),
    
    # CSV Import URLs
    path('import/', views.csv_import_list, name='csv_import_list'),
    path('import/neu/', views.csv_import_create, name='csv_import_create'),
    
    # Destinatär URLs (Förderungsempfänger)
    path('destinataere/', views.destinataer_list, name='destinataer_list'),
    path('destinataere/<uuid:pk>/', views.destinataer_detail, name='destinataer_detail'),
    path('destinataere/neu/', views.destinataer_create, name='destinataer_create'),
    path('destinataere/<uuid:pk>/bearbeiten/', views.destinataer_update, name='destinataer_update'),
    path('destinataere/<uuid:pk>/loeschen/', views.destinataer_delete, name='destinataer_delete'),
    path('destinataere/<uuid:pk>/notiz/', views.destinataer_notiz_create, name='destinataer_notiz_create'),
    path('destinataere/<uuid:pk>/export/', views.destinataer_export, name='destinataer_export'),
    
    # Paechter URLs (Landpächter)
    path('paechter/', views.paechter_list, name='paechter_list'),
    path('paechter/<uuid:pk>/', views.paechter_detail, name='paechter_detail'),
    path('paechter/neu/', views.paechter_create, name='paechter_create'),
    path('paechter/<uuid:pk>/bearbeiten/', views.paechter_update, name='paechter_update'),
    path('paechter/<uuid:pk>/loeschen/', views.paechter_delete, name='paechter_delete'),
    path('paechter/<uuid:pk>/export/', views.paechter_export, name='paechter_export'),
    
    # Legacy Person URLs removed (Destinatäre ersetzen Personen)
    
    # Land URLs
    path('laendereien/', views.land_list, name='land_list'),
    path('laendereien/<uuid:pk>/', views.land_detail, name='land_detail'),
    path('laendereien/neu/', views.land_create, name='land_create'),
    path('laendereien/<uuid:pk>/bearbeiten/', views.land_update, name='land_update'),
    path('laendereien/<uuid:pk>/loeschen/', views.land_delete, name='land_delete'),
    path('laendereien/<uuid:pk>/export/', views.land_export, name='land_export'),
    
    # Landabrechnung URLs
    path('landabrechnungen/', views.land_abrechnung_list, name='land_abrechnung_list'),
    path('landabrechnungen/<uuid:pk>/', views.land_abrechnung_detail, name='land_abrechnung_detail'),
    path('landabrechnungen/neu/', views.land_abrechnung_create, name='land_abrechnung_create'),
    path('landabrechnungen/<uuid:pk>/bearbeiten/', views.land_abrechnung_update, name='land_abrechnung_update'),
    path('landabrechnungen/<uuid:pk>/loeschen/', views.land_abrechnung_delete, name='land_abrechnung_delete'),
    
    # Vereinheitlichte Verpachtung URLs (direkt im Land)
    path('laendereien/<uuid:land_pk>/verpachtung/neu/', views.land_verpachtung_create, name='land_verpachtung_create'),
    path('laendereien/<uuid:land_pk>/verpachtung/bearbeiten/', views.land_verpachtung_edit, name='land_verpachtung_edit'),
    path('laendereien/<uuid:land_pk>/verpachtung/beenden/', views.land_verpachtung_end, name='land_verpachtung_end'),
    
    # LandVerpachtung URLs (neue Verpachtungen)
    path('laendereien/verpachtungen/<uuid:pk>/', views.land_verpachtung_detail, name='land_verpachtung_detail'),
    path('laendereien/verpachtungen/<uuid:pk>/bearbeiten/', views.land_verpachtung_update, name='land_verpachtung_update'),
    path('laendereien/verpachtungen/<uuid:pk>/beenden/', views.land_verpachtung_end_direct, name='land_verpachtung_end_direct'),
    
    # Förderung URLs
    path('foerderungen/', views.foerderung_list, name='foerderung_list'),
    path('foerderungen/<uuid:pk>/', views.foerderung_detail, name='foerderung_detail'),
    path('foerderungen/neu/', views.foerderung_create, name='foerderung_create'),
    path('foerderungen/<uuid:pk>/bearbeiten/', views.foerderung_update, name='foerderung_update'),
    path('foerderungen/<uuid:pk>/loeschen/', views.foerderung_delete, name='foerderung_delete'),
    
    # Dokumente URLs
    path('dokumente/', views.dokument_list, name='dokument_list'),
    path('dokumente/<uuid:pk>/', views.dokument_detail, name='dokument_detail'),
    path('dokumente/neu/', views.dokument_create, name='dokument_create'),
    path('dokumente/<uuid:pk>/bearbeiten/', views.dokument_update, name='dokument_update'),
    path('dokumente/<uuid:pk>/loeschen/', views.dokument_delete, name='dokument_delete'),
    
    # Dokumentenverwaltung (Paperless-Integration, Verwaltung & Verknüpfung)
    path('dokumente/verwaltung/', views.dokument_management, name='dokument_management'),
    
    # Legacy document URLs removed - use dokument_management instead
    
    # Dokument-Verknüpfung
    path('api/link-document/search/', views.link_document_search, name='link_document_search'),
    path('api/link-document/create/', views.link_document_create, name='link_document_create'),
    path('api/link-document/list/', views.link_document_list, name='link_document_list'),
    path('api/link-document/update/', views.link_document_update, name='link_document_update'),
    path('api/link-document/delete/<uuid:link_id>/', views.link_document_delete, name='link_document_delete'),
    # Legacy dokument_verknuepfung URL removed - use dokument_management instead
    
    # Jahresbericht URLs
    path('berichte/', views.bericht_list, name='bericht_list'),
    path('berichte/jahresbericht/', views.jahresbericht_generate_redirect, name='jahresbericht_generate_redirect'),
    path('berichte/jahresbericht/<int:jahr>/', views.jahresbericht_generate, name='jahresbericht_generate'),
    path('berichte/jahresbericht/<int:jahr>/pdf/', views.jahresbericht_pdf, name='jahresbericht_pdf'),
    
    # Geschäftsführung URLs
    path('geschaeftsfuehrung/', views.geschaeftsfuehrung, name='geschaeftsfuehrung'),
    path('geschaeftsfuehrung/konten/', views.konto_list, name='konto_list'),
    path('geschaeftsfuehrung/konten/neu/', views.konto_create, name='konto_create'),
    path('geschaeftsfuehrung/konten/<uuid:pk>/', views.konto_detail, name='konto_detail'),
    path('geschaeftsfuehrung/konten/<uuid:pk>/bearbeiten/', views.konto_edit, name='konto_edit'),
    path('geschaeftsfuehrung/verwaltungskosten/', views.verwaltungskosten_list, name='verwaltungskosten_list'),
    path('geschaeftsfuehrung/verwaltungskosten/neu/', views.verwaltungskosten_create, name='verwaltungskosten_create'),
    path('geschaeftsfuehrung/verwaltungskosten/<uuid:pk>/bearbeiten/', views.verwaltungskosten_edit, name='verwaltungskosten_edit'),
    path('verwaltungskosten/mark-paid/', views.mark_expense_paid, name='mark_expense_paid'),
    path('geschaeftsfuehrung/rentmeister/', views.rentmeister_list, name='rentmeister_list'),
    path('geschaeftsfuehrung/rentmeister/neu/', views.rentmeister_create, name='rentmeister_create'),
    path('geschaeftsfuehrung/rentmeister/<uuid:pk>/', views.rentmeister_detail, name='rentmeister_detail'),
    path('geschaeftsfuehrung/rentmeister/<uuid:pk>/bearbeiten/', views.rentmeister_edit, name='rentmeister_edit'),
    path('geschaeftsfuehrung/rentmeister/<uuid:pk>/ausgaben/', views.rentmeister_ausgaben, name='rentmeister_ausgaben'),
    
    # Administration URLs
    path('administration/', views.administration, name='administration'),
    path('administration/settings/', views.app_settings, name='app_settings'),
    path('administration/audit-log/', views.audit_log_list, name='audit_log_list'),
    path('administration/backup/', views.backup_management, name='backup_management'),
    path('administration/backup/<uuid:backup_id>/download/', views.backup_download, name='backup_download'),
    path('administration/backup/restore/', views.backup_restore, name='backup_restore'),
    path('administration/unterstuetzungen/', views.unterstuetzungen_list, name='unterstuetzungen_list'),
    path('administration/unterstuetzungen/<uuid:pk>/bearbeiten/', views.unterstuetzung_edit, name='unterstuetzung_edit'),
    path('administration/unterstuetzungen/<uuid:pk>/loeschen/', views.unterstuetzung_delete, name='unterstuetzung_delete'),
    
    # Unterstützungen URLs (direct access from Destinataer)
    path('unterstuetzungen/', views.unterstuetzungen_all, name='unterstuetzungen_all'),
    path('unterstuetzungen/neu/', views.unterstuetzung_create, name='unterstuetzung_create'),
    path('unterstuetzungen/<uuid:pk>/', views.unterstuetzung_detail, name='unterstuetzung_detail'),
    path('unterstuetzungen/<uuid:pk>/bezahlt/', views.unterstuetzung_mark_paid, name='unterstuetzung_mark_paid'),
    path('unterstuetzungen/wiederkehrend/', views.wiederkehrende_unterstuetzungen, name='wiederkehrende_unterstuetzungen'),
    
    # AJAX endpoints
    path('api/destinataer/<uuid:destinataer_id>/info/', views.get_destinataer_info, name='get_destinataer_info'),
    
    # Authentication URLs
    path('login/', views.user_login, name='login'),
    path('logout/', views.user_logout, name='logout'),
    
    # User Management URLs
    path('administration/users/', views.user_management, name='user_management'),
    path('administration/users/create/', views.user_create, name='user_create'),
    path('administration/users/<int:pk>/', views.user_detail, name='user_detail'),
    path('administration/users/<int:pk>/edit/', views.user_edit, name='user_edit'),
    path('administration/users/<int:pk>/password/', views.user_change_password, name='user_change_password'),
    path('administration/users/<int:pk>/permissions/', views.user_permissions, name='user_permissions'),
    path('administration/users/<int:pk>/delete/', views.user_delete, name='user_delete'),
    
    # Hilfsbox URLs
    path('help-box/edit/', views.edit_help_box, name='edit_help_box'),
    path('help-box/admin/', views.edit_help_box, name='help_boxes_admin'),
    
    # API URLs
    path('api/land-stats/', views.land_stats_api, name='land_stats_api'),
    path('api/health/', views.health_check, name='health_check'),
    path('api/paperless/ping/', views.paperless_ping, name='paperless_ping'),
    path('api/paperless/documents/', views.paperless_documents, name='paperless_documents'),
    path('api/paperless/tags/', views.paperless_tags_only, name='paperless_tags_only'),
    path('api/paperless/debug/', views.paperless_debug, name='paperless_debug'),
    path('api/paperless/documents/<int:doc_id>/', views.paperless_document_redirect, name='paperless_document_redirect'),

    # Gramps integration (probe)
    path('api/gramps/search/', views.gramps_search_api, name='gramps_search_api'),
    path('api/gramps/debug/', views.gramps_debug_api, name='gramps_debug_api'),
]
