def turn_on_credit_processing(request, responder): if request.intent == 'confirmation': set_credit_flag(responder.frame['user']['id'], True) responder.reply('Послугу "Кредит довіри" підключено.') return if request.intent == 'abort': responder.reply('Зрозуміло. Чим іще ми можемо вам допомогти?') return if request.intent == 'repeat': turn_on_credit_continue(request, responder) return else: responder.frame['credit_process_count'] = responder.frame.get( 'credit_process_count', 0) + 1 if responder.frame['credit_process_count'] < 3: responder.frame['user'] = get_user_data( request.context['username']) responder.frame['service_plan'] = get_service_plan( responder.frame['user']['service_plan_id']) responder.params.target_dialogue_state = 'turn_on_credit_processing' responder.reply( 'Перепрошую, я вас не зрозуміла.\n' + f'Ми можемо внести вам кредит довіри на суму {responder.frame["service_plan"]["price"]}' + f' до {str(datetime.now() + timedelta(days=10))[:10]}.' + f'Сплатити {abs(responder.frame["user"]["balance"]) + responder.frame["service_plan"]["price"]} грн ' f'потрібно протягом 10 днів. ' + f'Вас влаштовують такі умови?') return else: responder.frame['credit_process_count'] = 0 responder.reply( 'Перепрошую, я вас не зрозуміла. Чим ще можемо вам допомогти?') return
def service_plan_description(request, responder): responder.frame['user'] = get_user_data(request.context['username']) responder.frame['service_plan'] = get_service_plan(responder.frame['user']['service_plan_id']) responder.reply(f"Ваш тарифний план {responder.frame['service_plan']['name']}.\n" + f"{responder.frame['service_plan']['description']}\n" + f"Вартість складає {responder.frame['service_plan']['price']} " f"гривень на місяць.")
def change_service_plan_selection(request, responder): if request.intent == 'abort': responder.reply("Зрозуміло. Чим ще ми можемо вам допомогти?") return if request.intent == 'clarify': responder.reply("- Смідл Спорт HD Pro +100\n- Смідл Power Time Pro +200\n- Premium HD +200") responder.params.target_dialogue_state = 'change_service_plan_selection' return if request.intent == 'specify_service_plan': selected_plan = None for e in request.entities: if e['type'] == 'service_plan': selected_plan = e['value'][0] if selected_plan and selected_plan['id'] != responder.frame['service_plan']['id']: responder.frame['selected_service_plan'] = get_service_plan(selected_plan['id']) responder.params.target_dialogue_state = 'change_service_plan_confirm' responder.reply("Ви бажаєте змінити ваш тарифний план з " + f"{responder.frame['service_plan']['name']} на " + f"{responder.frame['selected_service_plan']['name']}?") return responder.frame['change_service_plan_selection_count'] = responder.frame.get('change_service_plan_selection_count', 0) + 1 if responder.frame['change_service_plan_selection_count'] < 3: responder.params.target_dialogue_state = 'change_service_plan_selection' responder.reply(f"Зараз ваш тарифний план {responder.frame['service_plan']['name']}." + f" На який тарифний план ви бажаєте перейти?") return else: responder.frame['change_service_plan_selection_count'] = 0 responder.reply(f"{vocalized_name(request.context['username'])}, зачекайте на з'єднання, будь ласка.")
def turn_on_credit_continue(request, responder): responder.frame['user'] = get_user_data(request.context['username']) responder.frame['service_plan'] = get_service_plan( responder.frame['user']['service_plan_id']) responder.params.target_dialogue_state = 'turn_on_credit_processing' responder.reply( f'Ми можемо внести вам кредит довіри на суму {responder.frame["service_plan"]["price"]}' + f' до {str(datetime.now() + timedelta(days=10))[:10]}.' + f'Сплатити {abs(responder.frame["user"]["balance"]) + responder.frame["service_plan"]["price"]} грн ' f'потрібно протягом 10 днів. ' + f'Вас влаштовують такі умови?')
def change_service_plan(request, responder): for e in request.entities: if e['type'] == 'service_plan': selected_plan = e['value'][0] if not responder.frame.get('verified', False): responder.params.target_dialogue_state = 'verify_service_number' responder.frame['return_to'] = change_service_plan responder.reply(f"Спочатку пройдіть верифікацію. Введіть 8 цифр вашого договору.") else: responder.frame['user'] = get_user_data(request.context['username']) responder.frame['service_plan'] = get_service_plan(responder.frame['user']['service_plan_id']) responder.params.target_dialogue_state = 'change_service_plan_selection' responder.reply(f"Зараз ваш тарифний план {responder.frame['service_plan']['name']}." + f" На який тарифний план ви бажаєте перейти?")