import os
import time

import django

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'futplus.settings')
django.setup()

from futplus.settings import CONSOLE_NAME
# Create your tests here.
from accounts.models import FifaAccount, Console

from sbc.models import SBCWorker, SBCSolverServerSideHandlerWorker, AccountSBCNeedPlayer
from sbc.sbc_solver import SBCSolver

exit(1)


def sbc_solver_runner():
    fifa_accounts = FifaAccount.objects.filter(
        console=Console.objects.filter(name=CONSOLE_NAME).first(),
        platform='xbox360',  # todo : delete line
    ).order_by('last_run_time')
    for fifa_account in fifa_accounts:
        print('fifa account : ', fifa_account)
        sbc_worker = SBCWorker.objects.filter(fifa_account=fifa_account).last()
        sbc_solver = SBCSolver(
            worker_id=sbc_worker.id, fifa_account_id=fifa_account.id, username=fifa_account.user_name,
            password=fifa_account.password, platform=fifa_account.platform, manual_loyal=False,
            use_public_moves=True)
        sbc_solver.public_moves.console_open_ultimate(state_set='home_main')
        next_account = False
        for nt in range(10):
            if next_account:
                break
            AccountSBCNeedPlayer.objects.filter(fifa_account=fifa_account).delete()
            solver_server_handler = SBCSolverServerSideHandlerWorker.objects.create(
                fifa_account=fifa_account, sbc_worker=sbc_solver.sbc_worker, status='0')
            for nm in range(100):
                solver_server_handler.refresh_from_db()
                if solver_server_handler.has_error or solver_server_handler.is_done:
                    if solver_server_handler.sbc_complete_status == 'all sbc completed':
                        next_account = True
                        break
                    print('ok work is done')
                    # needed_players = AccountSBCNeedPlayer.objects.filter(fifa_account=fifa_account)
                    for target in AccountSBCNeedPlayer.objects.filter(fifa_account=fifa_account):
                        sbc_solver.console_search_player_and_bid(
                            target.sbc_target.player,
                            target_filter=target.sbc_target.target_filter
                        )
                    sbc_solver.console_close_ultimate(need_get_new_sid=False)
                    break
                time.sleep(10)
        sbc_solver.public_moves.ps4_buttons.gamepad.__del__()
        time.sleep(5)


sbc_solver_runner()
exit(1)

fifa_account = FifaAccount.objects.get(user_name=' jeffjamesjacksonpa@hotmail.com')
sbc_worker = SBCWorker.objects.filter(fifa_account=fifa_account).last()
sbc_solver = SBCSolver(worker_id=sbc_worker.id, fifa_account_id=fifa_account.id, username=fifa_account.user_name,
                       password=fifa_account.password, platform=fifa_account.platform, manual_loyal=False,
                       use_public_moves=True)

sbc_solver.discharge_with_snipe(sbc_solver.fifa_account.credit, sell_all=True, coins_to=0)

# sbc_solver.get_player_price_from_futbin_web_app('Rodrigo Javier De Paul',84,player_f='Rodrigo Javier',player_l='De Paul')
exit(1)
