<?php
namespace app\model;
/**
 * @property int user_id
 * @property string true_name
 * @property string bank_name
 * @property string bank_code
 * @property string bank_card
 * @property string bank_phone
 * @property string bank_email
 * @property string bank_country
 * @property string identity_card
 * @property int is_default
 * @property string create_time
 * @property string update_time
 */
class UserBankModel extends BaseModel
{
    protected $name = 'user_bank';
    protected $pk = 'id';

    public static function getUserBankList($data):array
    {
        $count= self::where('user_id', $data['user_id'])->count();
        $list = self::where('user_id', $data['user_id'])->field("id,true_name,bank_name,bank_card,bank_phone,bank_email,is_default,identity_card,ifsc")
            ->page($data['page'],$data['page_size'])->select();
        if(empty($list)){
            return [];
        }else{
            return [
                'total'=>$count,
                'list'=>$list->toArray()
            ];
        }
    }
    public static function getUserBankInfoById(array $data,$file='*'):array
    {
        $info=self::where($data)->find();
        if(empty($info)){
            return [];
        }else{
            return $info->toArray();
        }
    }
    public static function delUserBankById(array $data)
    {
        self::where([
            'id'=>$data['id'],
            'user_id'=>$data['user_id'],
        ])->delete();
    }
    public static function InsertUserBank(array $data)
    {
        $self = new self;

        if($data['is_default']==1){
            $self::updateDefault($data['user_id']);
        }
        if($data['id']>0){
            $self::where([
                'id'=>$data['id'],
                'user_id'=>$data['user_id'],
            ])->save([
                'true_name'=>$data['true_name'],
                'identity_card'=>isset($data['identity_card']) ? $data['identity_card']:'',
                'bank_card'=>$data['bank_card'],
                'bank_name'=>$data['bank_name'],
                'bank_email'=>isset($data['bank_email']) ? $data['bank_email']:'',
                'bank_phone'=>isset($data['bank_phone']) ? $data['bank_phone']:'',
                'user_address'=>isset($data['user_address']) ? $data['user_address']:'',
                'bank_address'=>isset($data['bank_address']) ? $data['bank_address']:'',
                'ifsc'=>isset($data['ifsc']) ? $data['ifsc']:'',
                'branch_name'=>$data['branch_name'],
                'branch_phone'=>$data['branch_phone'],
                'bank_code'=>$data['bank_code'],
                'bank_country'=>$data['bank_country'],
                'is_default'=>$data['is_default'],
                'update_time'=>date('Y-m-d H:i:s')
            ]);
        }else{
            $self->user_id = $data['user_id'];
            $self->true_name = $data['true_name'];
            $self->bank_card = $data['bank_card'];
            $self->bank_name = $data['bank_name'];
            if(isset($data['bank_email'])){
                $self->bank_email = $data['bank_email'];
            }
            if(isset($data['identity_card'])){
                $self->identity_card = $data['identity_card'];
            }
            if(isset($data['bank_phone'])){
                $self->bank_phone = $data['bank_phone'];
            }
            if(isset($data['ifsc'])){
                $self->ifsc = $data['ifsc'];
            }
            if(isset($data['bank_address'])){
                $self->bank_address = $data['bank_address'];
            }
            if(isset($data['user_address'])){
                $self->user_address = $data['user_address'];
            }
            $self->bank_code = $data['bank_code'];
            $self->bank_country = $data['bank_country'];
            $self->is_default = $data['is_default'];
            $self->create_time = date('Y-m-d H:i:s');
            $self->update_time = date('Y-m-d H:i:s');
            $self->save();
        }
    }
    public static function updateDefault(int $user_id){
        self::where([
            'user_id'=>$user_id
        ])->save([
            'is_default'=>0,
            'update_time'=>date('Y-m-d H:i:s')
        ]);
    }


}