from dspt_api.util.general.handle_redis import get_data_from_redis
from dspt_api.util.general.handle_params import add_param
import time


class MapiTicketInfo:
    def __init__(self, **kwargs):
        self.member_type = kwargs.get('member_type')
        self.api = kwargs.get('api')
        self.ip = kwargs.get('ip')
        self.env = kwargs.get('env')
        self.cid = kwargs.get('cid')
        self.pid = kwargs.get('pid')
        self.sale_type = kwargs.get('sale_type')
        self.pay_type = kwargs.get('pay_type')
        self.user_data = {
            'ip': self.ip,
            'env': self.env,
            'member_type': self.member_type,
            'pid': self.pid,
            'cid': self.cid,
            'sale_type': self.sale_type,
            'pay_type': self.pay_type,
        }
        self.return_data = []

    def get_suggestion(self):
        print('get_suggestion', self.user_data, self.sale_type, self.pay_type)
        # ticket_flag1 & ticket_flag2
        redis_key_prefix = f'dspt_api_{self.ip}_{self.env}_{self.member_type}_{self.pid}_{self.cid}'
        request_api_play = {'name': '3.4.6 混合下单(影票、卖品)', 'path': 'seat/lock-buy'}
        redis_key_api_play = f'{redis_key_prefix}_{request_api_play["path"]}'
        result_buy, _format_buy, data_buy, _timestamp_buy = get_data_from_redis(redis_key_api_play)
        ticket_flag1 = '请手动输入参数,检查相关接口返回值:3.4.6 混合下单(影票、卖品)'
        ticket_flag2 = '请手动输入参数,检查相关接口返回值:3.4.6 混合下单(影票、卖品)'
        if result_buy:
            ticket_flag1 = data_buy['ticketFlag1']
            ticket_flag2 = data_buy['ticketFlag2']
        add_param(self.return_data, 'ticket_flag1', ticket_flag1)
        add_param(self.return_data, 'ticket_flag2', ticket_flag2)

        print(__name__, self.return_data)
        return self.return_data

    @staticmethod
    def get_timestamp():
        return int(time.time() * 1000)