<?php

namespace App\Admin\Service;

use App\Admin\Actions\OrderAuditAction;
use App\Admin\Actions\OrderReverseAuditAction;
use App\Admin\Actions\User\UserStatusAction;
use App\Models\Cms\CmsUser;
use Dcat\Admin\Grid;

class UserService
{
    public static function userListFilter(Grid $grid){

        $grid->filter(function ($filter) {
            $filter->expand(true);
            $filter->whereBetween('create_time', function ($q) {
                $start = strtotime($this->input['start'] ?? null);
                $end = strtotime($this->input['end'] ?? null);
                $q->whereBetween('create_time', [$start, $end]);
            })->datetime()->width(3);

            $filter->startWith('company_name')->width(2);
            $filter->startWith('user_sn')->width(2);
            $filter->startWith('name')->width(2);
            $filter->equal('status')->select(admin_trans('user.options.status'))->width(2);
            $filter->equal('sales_id',trans('inquiry.fields.sales_name'))->select(CmsUser::pluck('name', 'userId')->toArray())->width(3);
            $filter->equal('status')->select(admin_trans('user.options.status'))->width(2);
        });

    }

    public static function userListListField(Grid $grid){
        $grid->column('company_name');
        $grid->column('user_sn')->link(function ($user_sn) {
                return admin_url('smc_user/'.$user_sn);
            });
        $grid->column('name');
        $grid->column('phone');
        $grid->column('email');
        $grid->column('remark');
        $grid->column('sale_name');
        $grid->column('created_time')->display(function ($time) {
            return $time ? date('Y-m-d H:i:s', $time) : '';
        })->sortable();;
        $grid->column('status')->using(admin_trans('user.options.status'));

    }

    public static function userListTool(Grid $grid){
        $grid->tools([
            new OrderAuditAction(),
            new OrderReverseAuditAction(),
        ]);
    }

    public static function userListActions(Grid $grid){

        $grid->setActionClass(Grid\Displayers\Actions::class);
        $grid->actions(function (Grid\Displayers\Actions $actions) {
            $actions->disableDelete();
            $actions->disableEdit();
            $actions->disableQuickEdit();
            $actions->disableView();

            // 当前行的数据数组
            $rowArray = $actions->row->toArray();
            // 获取当前行主键值
            $id = $actions->getKey();
            //状态按钮
            $actions->append(new UserStatusAction());

        });


    }

}