<?php

namespace App\Admin\Actions\UserAddress;


use App\Admin\Service\UserService;
use App\Models\Order as OrderModel;
use App\Models\User;
use App\Models\UserAddress;
use Dcat\Admin\Grid\BatchAction;
use Dcat\Admin\Grid\Tools\AbstractTool;
use Illuminate\Http\Request;
use Dcat\Admin\Grid\RowAction;


class UserAddressDeleteAction extends RowAction
{
    /**
     * 按钮样式定义,默认 btn btn-white waves-effect
     *
     * @var string
     */
    protected $style = 'btn btn-white waves-effect';


    /**
     * 按钮文本
     *
     * @return string|void
     */
    public function title()
    {
        $buttonName = trans("user-address.labels.delete_user_address");
        return $buttonName;
    }

    public function html()
    {
        $class = $this->getElementClass();
        $color = "btn btn-danger btn-sm btn-mini";
        // 获取当前行数据ID
        $id = $this->getKey();
        $this->setHtmlAttribute([
            'data-id' => $id,
            "class"   => "{$class} {$color}",
        ]);
        return parent::html();
    }

    /**
     *  确认弹窗,如果不需要则返回空即可
     *
     * @return array|string|void
     */
    public function confirm()
    {
        return admin_trans("confirm");
    }

    /**
     * 处理请求
     * 如果你的类中包含了此方法,则点击按钮后会自动向后端发起ajax请求,并且会通过此方法处理请求逻辑
     *
     * @param Request $request
     */
    public function handle(Request $request)
    {
        // 获取 parameters 方法传递的参数
        $rowData = $request->get('rowData');
        try {
            UserAddress::deleteById($rowData['address_id']);
        } catch (\Throwable $e) {
            return $this->response()->error($e->getMessage());
        }
        return $this->response()->success(admin_trans("succeeded"))->refresh();
    }

    /**
     * 设置请求参数
     *
     * @return array|void
     */
    public function parameters()
    {
        return [
            'rowData' => $this->row,
        ];
    }


}