"""
Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: michel.peltriaux@sgdnord.rlp.de
Created on: 24.08.21

"""
from django.urls import path

from compensation.autocomplete.eco_account import EcoAccountAutocomplete
from compensation.views.eco_account.eco_account import index_view, new_view, new_id_view, edit_view, remove_view, \
    detail_view
from compensation.views.eco_account.log import EcoAccountLogView
from compensation.views.eco_account.record import EcoAccountRecordView
from compensation.views.eco_account.report import report_view
from compensation.views.eco_account.resubmission import EcoAccountResubmissionView
from compensation.views.eco_account.state import NewEcoAccountStateView, EditEcoAccountStateView, \
    RemoveEcoAccountStateView
from compensation.views.eco_account.action import NewEcoAccountActionView, EditEcoAccountActionView, \
    RemoveEcoAccountActionView
from compensation.views.eco_account.deadline import NewEcoAccountDeadlineView, EditEcoAccountDeadlineView, \
    RemoveEcoAccountDeadlineView
from compensation.views.eco_account.share import EcoAccountShareByTokenView, EcoAccountShareFormView
from compensation.views.eco_account.document import GetEcoAccountDocumentView, NewEcoAccountDocumentView, \
    EditEcoAccountDocumentView, RemoveEcoAccountDocumentView
from compensation.views.eco_account.deduction import NewEcoAccountDeductionView, EditEcoAccountDeductionView, \
    RemoveEcoAccountDeductionView

app_name = "acc"
urlpatterns = [
    path("", index_view, name="index"),
    path('new/', new_view, name='new'),
    path('new/id', new_id_view, name='new-id'),
    path('<id>', detail_view, name='detail'),
    path('<id>/log', EcoAccountLogView.as_view(), name='log'),
    path('<id>/record', EcoAccountRecordView.as_view(), name='record'),
    path('<id>/report', report_view, name='report'),
    path('<id>/edit', edit_view, name='edit'),
    path('<id>/remove', remove_view, name='remove'),
    path('<id>/resub', EcoAccountResubmissionView.as_view(), name='resubmission-create'),

    path('<id>/state/new', NewEcoAccountStateView.as_view(), name='new-state'),
    path('<id>/state/<state_id>/edit', EditEcoAccountStateView.as_view(), name='state-edit'),
    path('<id>/state/<state_id>/remove', RemoveEcoAccountStateView.as_view(), name='state-remove'),

    path('<id>/action/new', NewEcoAccountActionView.as_view(), name='new-action'),
    path('<id>/action/<action_id>/edit', EditEcoAccountActionView.as_view(), name='action-edit'),
    path('<id>/action/<action_id>/remove', RemoveEcoAccountActionView.as_view(), name='action-remove'),

    path('<id>/deadline/new', NewEcoAccountDeadlineView.as_view(), name="new-deadline"),
    path('<id>/deadline/<deadline_id>/edit', EditEcoAccountDeadlineView.as_view(), name='deadline-edit'),
    path('<id>/deadline/<deadline_id>/remove', RemoveEcoAccountDeadlineView.as_view(), name='deadline-remove'),

    path('<id>/share/<token>', EcoAccountShareByTokenView.as_view(), name='share-token'),
    path('<id>/share', EcoAccountShareFormView.as_view(), name='share-form'),

    # Documents
    path('<id>/document/new/', NewEcoAccountDocumentView.as_view(), name='new-doc'),
    path('<id>/document/<doc_id>', GetEcoAccountDocumentView.as_view(), name='get-doc'),
    path('<id>/document/<doc_id>/edit', EditEcoAccountDocumentView.as_view(), name='edit-doc'),
    path('<id>/document/<doc_id>/remove/', RemoveEcoAccountDocumentView.as_view(), name='remove-doc'),

    # Eco-account deductions
    path('<id>/deduction/<deduction_id>/remove', RemoveEcoAccountDeductionView.as_view(), name='remove-deduction'),
    path('<id>/deduction/<deduction_id>/edit', EditEcoAccountDeductionView.as_view(), name='edit-deduction'),
    path('<id>/deduct/new', NewEcoAccountDeductionView.as_view(), name='new-deduction'),

    # Autocomplete
    path("atcmplt/eco-accounts", EcoAccountAutocomplete.as_view(), name="autocomplete"),
]