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

"""
from django.urls import path

from ema.views.action import NewEmaActionView, EditEmaActionView, RemoveEmaActionView
from ema.views.deadline import NewEmaDeadlineView, EditEmaDeadlineView, RemoveEmaDeadlineView
from ema.views.detail import DetailEmaView
from ema.views.document import NewEmaDocumentView, EditEmaDocumentView, RemoveEmaDocumentView, GetEmaDocumentView
from ema.views.ema import IndexEmaView, EmaIdentifierGeneratorView, EditEmaView, NewEmaView
from ema.views.log import EmaLogView
from ema.views.record import EmaRecordView
from ema.views.remove import RemoveEmaView
from ema.views.report import EmaPublicReportView
from ema.views.resubmission import EmaResubmissionView
from ema.views.share import EmaShareFormView, EmaShareByTokenView
from ema.views.state import NewEmaStateView, EditEmaStateView, RemoveEmaStateView

app_name = "ema"
urlpatterns = [
    path("", IndexEmaView.as_view(), name="index"),
    path("new/", NewEmaView.as_view(), name="new"),
    path("new/id", EmaIdentifierGeneratorView.as_view(), name="new-id"),
    path("<id>", DetailEmaView.as_view(), name="detail"),
    path('<id>/log', EmaLogView.as_view(), name='log'),
    path('<id>/edit', EditEmaView.as_view(), name='edit'),
    path('<id>/remove', RemoveEmaView.as_view(), name='remove'),
    path('<id>/record', EmaRecordView.as_view(), name='record'),
    path('<id>/report', EmaPublicReportView.as_view(), name='report'),
    path('<id>/resub', EmaResubmissionView.as_view(), name='resubmission-create'),

    path('<id>/state/new', NewEmaStateView.as_view(), name='new-state'),
    path('<id>/state/<state_id>/remove', RemoveEmaStateView.as_view(), name='state-remove'),
    path('<id>/state/<state_id>/edit', EditEmaStateView.as_view(), name='state-edit'),

    path('<id>/action/new', NewEmaActionView.as_view(), name='new-action'),
    path('<id>/action/<action_id>/edit', EditEmaActionView.as_view(), name='action-edit'),
    path('<id>/action/<action_id>/remove', RemoveEmaActionView.as_view(), name='action-remove'),

    path('<id>/deadline/new', NewEmaDeadlineView.as_view(), name="new-deadline"),
    path('<id>/deadline/<deadline_id>/edit', EditEmaDeadlineView.as_view(), name='deadline-edit'),
    path('<id>/deadline/<deadline_id>/remove', RemoveEmaDeadlineView.as_view(), name='deadline-remove'),

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

    # Documents
    path('<id>/document/new/', NewEmaDocumentView.as_view(), name='new-doc'),
    path('<id>/document/<doc_id>', GetEmaDocumentView.as_view(), name='get-doc'),
    path('<id>/document/<doc_id>/edit/', EditEmaDocumentView.as_view(), name='edit-doc'),
    path('<id>/document/<doc_id>/remove/', RemoveEmaDocumentView.as_view(), name='remove-doc'),

]