from app.api import api
from app.models import Bank
from app.util import datetime_util
from app.util.util import get_or_none


class UserBankAccessor:
    @classmethod
    def add_update_user_bank(cls, loan_application_id, name, applicant_type, beneficiary_id, user_id, account_number,
                             bank_name, branch_name, ifsc_code, karza_response):
        time_now = datetime_util.get_now_ist_string()

        bank, _ = Bank.objects.update_or_create(application_id=loan_application_id, defaults={
            'name': name,
            'applicant_type': applicant_type,
            'beneficiary_id': beneficiary_id,
            'user_id': user_id,
            'account_number': account_number,
            'bank_name': bank_name,
            'branch_name': branch_name,
            'ifsc_code': ifsc_code,
            'karza_response': karza_response,
            "created_at": time_now,
            "updated_at": time_now
        })

        return api.SUCCESS, bank

    @classmethod
    def get_bank(cls, loan_application_id):
        return get_or_none(Bank, application_id=loan_application_id)
