"""LockTrust URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/4.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import to include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from Authentication.views import *
from Application.views import *
from Masterdata.views import CardTypeView, SendToBankAPIGetView, SendToBankAPICredentialsView
from LockTrust.views import IsoDashboard
from Masterdata.views import EmailTemplateView
from Masterdata.views import MerchantCategoryCodeView
from Masterdata.views import MerchantTypeView
from Masterdata.views import CurrencyView
from Masterdata.views import SettlementView
from Masterdata.views import CreditCardView
from Masterdata.views import PaymentServicesView
from Masterdata.views import AcquiringBankView
from Masterdata.views import AllCurrencyView, StateView, ISOView
from Pos.views import *

from FRT.views import *
from Bank.views import BankView
from Bank.views import SBPSView

# from drf_jwt_2fa.views import obtain_auth_token, verify_auth_token, refresh_auth_token, ObtainAuthToken
from rest_framework_simplejwt.views import (
    TokenObtainPairView,
    TokenRefreshView,
    TokenVerifyView
)

route = DefaultRouter()
route.register('usercreation', MerchantView, basename='Merchant View')
route.register('macp', CPView, basename='Company profile')
route.register('macop', COPView, basename='company ownership profile')
route.register('mabp', BPView, basename='business profile')
route.register('masm', SMView, basename='security measures')
route.register('masbd', SBDView, basename='settlement bank details')
route.register('mamc', MCView, basename='merchant contact')
route.register('note', NoteView, basename='note')
route.register('allt', TimelineView, basename='Timeline')
route.register('ticket', TicketView, basename="Ticket")
route.register('query', QueryView, basename='query')
route.register('mdct', CardTypeView, basename='card type')
route.register('maud', UploadedDocumentView, basename='Uploaded Document')
route.register('uur', UploadedReportView, basename='Uploaded Report')
route.register('application', ApplicationListView, basename='Application')
route.register('emailtemplate', EmailTemplateView, basename='Email Template')
# route.register('uploadeddocument_list_view', UploadedDocumentListView, basename='Uploaded Document List View')
route.register('allgma', ApplicationForDashboardView, basename='Application For Dashboard')
route.register('auc', UserCreationApi, basename="User Creation")
route.register('auwmbbr', MerchantBankBuyRateView, basename="Bank Listing View")
route.register('mdmcc', MerchantCategoryCodeView, basename="Merchant Category Code")
route.register('mdmt', MerchantTypeView, basename="Merchant Type")
route.register('mdcy', CurrencyView, basename="Currency")
route.register('mdsp', SettlementView, basename="Settlement")
route.register('mdcc', CreditCardView, basename="Credit Card")
route.register('mdps', PaymentServicesView, basename="Payment Services")
route.register('merchantview', MerchantView, basename="Add Merchant")
route.register('mdab', AcquiringBankView, basename="Acquiring Bank")
route.register('auwmbsr', MerchantBankSaleRateView, basename="Merchant Bank Sale Rate")
route.register('auwmmqt', ManualQueryTemplateView, basename="Manual Query Template")
route.register('merchantsetting', MerchantSettingView, basename="Merchant Setting")
route.register('mavt', VirtualTerminalView, basename="Virtual Terminal")
# route.register('maum', UserManagementView, basename="User Management")
# route.register('imbsr', IsoMerchantBankSaleRateView, basename="Iso Merchant Bank Sale Rate")
route.register('muc', MerchantUserCreationApi, basename="Merchant User Creation")
route.register('ur', UserRoleView, basename="User Role")
route.register('cnp', NewProductView, basename="Create New Product")
# route.register('cpc', ProductCategoryView, basename="Create Product Category")
# route.register('cpt', ProductTaxesView, basename="Create Product Taxes")
route.register('aur', AssignUserRoleView, basename="Assign User Role")
# route.register('cpi', ProductInventoryView, basename="Create Inventory")
# route.register('cnc', NewCustomerView, basename="New Customer")
route.register('pos', PointOfSaleView, basename="Point Of Sale")
route.register('mobilemacp', CPMobileView, basename="Mobile Company Profile")
route.register('mobilemacop', COPMobileView, basename="Mobile Company Ownership Profile")
route.register('mobilemabp', BPMobileView, basename="Mobile Business Profile")
route.register('mobilemasm', SMMobileView, basename="Mobile Security Measure")
route.register('mobilemasbd', SBDMobileView, basename="Mobile Settlement Bank Details")
route.register('mobilemamc', MCMobileView, basename="Mobile Merchant Contact")
route.register('mobilemaud', UploadedDocumentMobileView, basename="Mobile Uploaded Document")
route.register('acc', AccountCreationApi, basename="Account Creation")

route.register('lb', LoadBalanceView, basename="Load Balance")
route.register('ts', TaxSplitView, basename="Tax Split")
route.register('br', BlockRatioView, basename="Block Ratio")
route.register('sales', SalesView, basename='Sales View')
route.register('bank', BankView, basename='Add Bank')

route.register('getstba', SendToBankAPIGetView, basename="Derkliverect Fields")
route.register('stbc', SendToBankAPICredentialsView, basename="Deliverect")

route.register('mqi', UploadedTimelineDocumentView, basename="Manual Query Image Upload")

route.register('allcu', AllCurrencyView, basename="All Currency")

route.register('iso_rates', IsoRatesView, basename="Sub Iso Rates")

# route.register('allState', StateView, basename="All State")

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/allulwotp/', Login.as_view(), name="login"),
    path('api/refresh', TokenRefreshView.as_view(), name="refresh"),
    path("api/verify/", TokenVerifyView.as_view(), name="verify"),
    path('api/', include(route.urls)),
    path('api/msu', SignUp.as_view(), name="signup"),
    path('api/mmsu', MobileSignUp.as_view(), name="mobilesignup"),
    path('api/allul/', ObtainOTPForUser.as_view(), name="obtain_token"),
    # path('api/login/', obtain_auth_token, name='token_obtain_pair'),
    path("api/allvp", VerifyMobile.as_view(), name="phone_verify"),
    path("api/signin_phone_verified", VerifyMobileSignIn.as_view(), name="signin_phone_verified"),
    path("api/mobile_verify_phone", MobileVerifyPhone.as_view(), name="mobile_verify_phone"),
    path("api/allve", VerifyEmail.as_view(), name="email_verify"),
    path(r'test_view', GetFieldName.as_view(), name="test"),
    path("api/mrotpom", resendOTPOnmessage.as_view(), name="resendOTPOnmessage"),
    path("api/mrotpoc", resendOTPOncall.as_view(), name="resendOTPOncall"),
    path("api/mrotpoe", resendOTPOnEmail.as_view(), name="resendOTPOnEmail"),
    path("api/mcmn", ChangeMobileNo.as_view(), name="ChangeMobileNo"),
    path("api/mce", ChangeEmail.as_view(), name="ChangeEmail"),
    path("api/all_r_p", ResetPassword.as_view(), name="Reset Password"),
    path("api/allsnp/<uidb64>/<token>", SetNewPassword.as_view(), name="Activate"),
    path("api/isodashboard", IsoDashboard.as_view(), name="IsoDashboard"),
    path('summernote/', include('django_summernote.urls')),
    path("api/aucub/<uid>", UnblockApi.as_view(), name="Unblock Api"),
    path("api/allsonu/<uidb64>/<token>", SendOTPView.as_view(), name="Create OTP"),
    path("api/loginsendotp/<uidb64>/<token>", LoginSendOTPView.as_view(), name="Create OTP"),
    path('api/cp_query/<uid>', CompanyProfileQuery.as_view(), name="cp_query"),
    path('api/cop_query/<uid>', CompanyOwnershipProfileQuery.as_view(), name="cop_query"),
    path('api/bp_query/<uid>', BusinessProfileQuery.as_view(), name="bp_query"),
    path('api/sm_query/<uid>', SecurityMeasuresQuery.as_view(), name="sm_query"),
    path('api/sbd_query/<uid>', SettlementBankDetailsQuery.as_view(), name='sbd_query'),
    path('api/mc_query/<uid>', MerchantContactQuery.as_view(), name='mc_query'),
    path('api/uploadeddocument_query/<uid>', UploadedDocumentQuery.as_view(), name='uploadeddocument_query'),
    path('api/read_by_underwriter', RaisedByUnderwriterView.as_view(), name='raised_by_underwriter'),
    path('api/read_by_merchant', RaisedByMerchantView.as_view(), name='raised_by_merchant'),
    path('api/mark_read_as_underwriter', MarkReadAsUnderwriterView.as_view(), name='mark_read_as_underwriter'),
    path('api/mark_read_as_merchant', MarkReadAsMerchantView.as_view(), name='mark_read_as_merchant'),
    # path('api/getmacp', CPGetView.as_view(), name="Get Company View"),
    path('api/getmacop/<application__uid>/', COPGetView.as_view(), name="Get COP View"),
    path('api/delmacop/<uid>/', COPDeleteView.as_view(), name="Delete COP View"),
    path('api/getmabp/<application__uid>/', BPGetView.as_view(), name="Get BP View"),
    # path('api/getmasm', SMGetView.as_view(), name="Get SM View"),
    # path('api/getmasbd', SBDGetView.as_view(), name="Get SBD View"),
    path('api/delmasbd/<uid>/', SBDDeleteView.as_view(), name="Delete SBD View"),
    path('api/getmamc/<application__uid>/', MCGetView.as_view(), name="Get MC View"),
    path('api/getmaud/<application__uid>/', UploadedDocumentGetView.as_view(), name="Get UploadedDocument View"),
    path('api/allcopd/', COPListForDocumentView.as_view(), name="COP Document View"),
    path('api/ababrsr', ApprovedByAdminView.as_view(), name="Admin Approved View"),
    path('api/aa', ApplicationApprovedView.as_view(), name="UnderWriter Approved View"),
    path('api/aabpibrsr', ApprovedByAdminByPassIsoView.as_view(),
         name="Approved By Admin By Pass Merchant View"),
    path('api/abi', ApprovedByIsoView.as_view(), name="Approved By ISO View"),
    path('api/abm', ApprovedByMerchantView.as_view(), name="Approved By Merchant View"),
    path('api/nbm', NegotiableByMerchantView.as_view(), name="Negotiable By Merchant View"),
    path('api/ipu', PdfUploadedView.as_view(), name="PDF Uploaded"),
    path('api/getallt', TimelineGetView.as_view(), name="Timeline Get View"),
    path('api/getallticket', TicketGetView.as_view(), name="Ticket Get View"),
    path('api/changeapplicationstatus', ChangeApplicationStatusView.as_view(), name="Change Application Status"),
    path('api/virtualobtainotpforuser', VirtualTerminalObtainOTPForUser.as_view(), name="Virtual Terminal Obtain OTP "
                                                                                        "For User"),
    path('api/up', UserPermission.as_view(), name="User Permission"),
    path('api/mobilegetmacp', CPMobileGetView.as_view(), name="Mobile Get Company Profile"),
    path('api/mobilegetmacop', COPMobileGetView.as_view(), name="Mobile Get Company Ownership Profile"),
    path('api/mobilegetmabp', BPMobileGetView.as_view(), name="Mobile Get Business Profile"),
    path('api/mobilegetmasm', SMMobileGetView.as_view(), name="Mobile Get Security Measures"),
    path('api/mobilegetmasbd', SBDMobileGetView.as_view(), name="Mobile Get Settlement Bank Details"),
    path('api/mobilegetmamc', MCMobileGetView.as_view(), name="Mobile Get Merchant Contact"),
    path('api/mobilegetmaud', UploadedDocumentGetView.as_view(), name="Mobile Get Uploaded Document"),
    path('api/updatepermission', UpdatePermissionView.as_view(), name="Update Permission View"),
    path('api/superadminpermission', GetSuperAdminPermissionAPI.as_view(), name="Get Super Admin Permission"),
    path('api/imbsr/<application__uid>/', IsoMerchantBankSaleRateView.as_view(),
         name="Iso Merchant Bank Sale Rate View"),
    path("api/getmacp/<application__uid>/", CPGETView.as_view(), name="CPGETView"),
    path("api/getmasm/<application__uid>/", SMGETView.as_view(), name="SMGETView"),
    path("api/getmasbd/<application__uid>/", SBDGETView.as_view(), name="SBDGETView"),

    path('api/blockVT', BlockVTView.as_view(), name="Block VT View"),
    path('api/sbups/', SBPSView.as_view(), name="SBPSView"),
    path('api/merchantreport', MerchantReportView.as_view(), name="Merchant Report"),
    path('api/merchantDetails', MerchantDetailsView.as_view(), name="Merchant Details"),

    path('api/coupon', CouponCodeView.as_view(), name="Coupon Code"),
    path('api/coupon/<uid>', CouponCodeView.as_view(), name="Coupon Code"),

    path('api/tax', ProductTaxesView.as_view(), name="Product Tax"),
    path('api/tax/<uid>', ProductTaxesView.as_view(), name="Product Tax"),

    path('api/posCustomer', PosCustomerView.as_view(), name="POS Customer"),
    path('api/posCustomer/<uid>', PosCustomerView.as_view(), name="POS Customer"),

    path('api/sendToBank', SendToBankView.as_view(), name="Send To Bank"),

    path('api/allState/<str:country_name>/', StateView.as_view({'get': 'list'}), name="Get All State"),

    path('api/sendRecommendation', SendRecommendationView.as_view(), name="Send Recommendation"),
    # path('api/product', ProductView.as_view(), name="Product"),
    # path('api/product/<uid>', ProductView.as_view(), name="Product"),

    # path('api/productCategory', ProductCategoryView.as_view(), name="Product Category"),
    # path('api/productCategory/<uid>', ProductCategoryView.as_view(), name="Product Category"),

    # path('api/register', RegisterPOSView.as_view(), name="Register POS"),
    # path('api/upc', UpdatePlateFormLocation.as_view(), name="Update Platform Credentials"),

    # path('api/getCategoryByPlatform', DeliveryrectGetCategory.as_view(), name="Get Category From Deliveryrect"),
    # path("api/<accId>/<locId>/syncProductsURL", SyncProducts.as_view()),

    # path('api/getChannel', PlatFormChannelView.as_view(), name="Get PlatForm Channel Links"),
    # path('api/floor', Floor.as_view(), name="Floor"),
    # path('api/floor/<uid>', Floor.as_view(), name="Floor"),
    path('api/isoreq', ISOView.as_view(), name="ISO 8583 Request"),

    path('api/getuur/<application__uid>/', uploadReportGetView.as_view(), name="Get Report View"),
    path('api/deluur/<uid>/', ReportDeleteView.as_view(), name="Delete Report View"),
    path('api/getpayrix/<application__uid>/', GetPayrixView.as_view(), name="Get Payrix Info"),
    path('api/getinertchangerate/', InterChangeRateView.as_view(), name="Get Interchange Rate"),
    path('api/get_googleauth_qr/', Generate_GoogleAuth_qr.as_view(), name="Get Google Auth QrCode"),
    path('api/verify_google_auth/', Verify_GoogleAuth.as_view(), name="Verify Google Auth"),
    #path('api/iso_rates/', IsoRatesView.as_view(), name="Iso Rates")
    path('api/documentDelete/<uuid:uid>/', DeleteDocumentView.as_view(), name="Delete Document"),
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
