from django.urls import path

from app.user import views as user_views
from app.loan_offer import views as loan_offer_views
from app.merchant import views as merchant_views
from app.user_employment import views as employment_views
from app.bank import views as bank_views
from app.payment import views as payment_views
from app.loan_application import views as loan_application_views
from app.no_touch import views as no_touch_views

urlpatterns = [
    # Loan application redirection
    path(r'v1/customer/loan/application/', loan_application_views.get_loan_application, name='Get Loan Application'),

    # User
    path(r'v1/create_account/', user_views.create_account, name='Create Account'),
    path(r'v1/customer/consent/', loan_application_views.update_customer_consent, name='Update Account'),

    # No Touch
    path(r'v1/save-consent/', no_touch_views.update_customer_consent, name='Save Consent'),
    path(r'v1/consent-document/', no_touch_views.create_consent_document, name='Consent Document'),
    path(r'v1/bank-update/', no_touch_views.update_bank_details, name='Update bank details'),
    path(r'v1/generate-payment-link/', no_touch_views.generate_payment_link, name='Generate payment link'),
    path(r'v1/mandate-setup/', no_touch_views.setup_mandate, name='Setup mandate'),
    path(r'v1/loan_offer_update/', no_touch_views.update_offer_details, name='Update loan offer details'),
    path(r'v1/order_payment/', no_touch_views.order_payment, name='Order payment'),
    path(r'v1/payment_call_back/', no_touch_views.call_back, name='Order payment call back'),
    path(r'v1/references-update/', no_touch_views.update_user_references,
         name='Update user references'),
    path(r'v1/get-loan-summary/', no_touch_views.get_loan_summary, name='Get loan summary'),

    path(r'v1/customer/details/', user_views.get_user_details, name='Get user details'),
    path(r'v1/customer/validate_pan/', user_views.validate_pan, name='Validate Pan'),
    path(r'v1/customer/document/upload/', user_views.upload_document, name='Document upload'),
    path(r'v1/customer/address_proof/upload/', user_views.upload_address_proof, name='Upload address proof'),
    path(r'v1/customer/update/', user_views.update_address, name='Update address'),

    path(r'v1/customer/aadhar/generate_otp/', user_views.generate_aadhar_otp, name='Generate aadhar otp'),
    path(r'v1/customer/aadhar/validate_otp/', user_views.validate_aadhar_otp, name='Validate aadhar otp'),

    path(r'v1/pincode/details/', user_views.get_pincode_details, name='Get Pincode details'),
    path(r'v1/ifsc/details/', bank_views.get_ifsc_details, name='Get IFSC details'),
    path(r'v1/ifsc-details/', bank_views.fetch_ifsc_details, name='Get IFSC details'),

    path(r'v1/customer/check_bureau/', loan_application_views.check_bureau, name='Check bureau'),
    path(r'v1/customer/employment_details/update/', user_views.update_employment_details,
         name='Update user_employment details'),
    path(r'v1/customer/bank/update/', user_views.update_bank_details, name='Update bank details'),
    path(r'v1/customer/references/update/', loan_application_views.update_user_references,
         name='Update user references'),

    # Loan
    path(r'v1/loan_offer/applicable/', loan_offer_views.get_applicable_offer_details,
         name='Get applicable offer details'),
    path(r'v1/loan_offer/update/', loan_offer_views.update_offer_details, name='Update loan offer details'),
    path(r'v1/loan_offer/summary/', loan_offer_views.get_loan_offer_details, name='Get loan offer details'),

    path(r'v1/agreement/sign/', loan_application_views.sign_agreement, name='Sign agreement'),

    # Merchant
    path(r'v1/merchant/list/', merchant_views.get_merchants,
         name='Get merchants'),
    path(r'v1/merchant/product/list/', merchant_views.get_merchant_products,
         name='Get merchants products'),
    path(r'v1/merchant/center/list/', merchant_views.get_merchant_centers,
         name='Get merchant centers'),

    path(r'v1/company/list/', employment_views.get_companies, name='Get company'),

    # Payment
    path(r'v1/order/payment/', payment_views.order_payment, name='Order payment'),
    path(r'v1/order/payment/call_back/', payment_views.call_back, name='Order payment call back'),
    path(r'v1/user/payment/generate_link/', payment_views.generate_payment_link, name='Generate payment link'),
    path(r'v1/mandate/setup/', payment_views.setup_mandate, name='Setup mandate'),
]
