<?php

declare(strict_types=1);

namespace app\store\controller\content;

use think\response\Json;
use app\store\controller\Controller;
use app\store\model\Agreement as AgreementModel;

/**
 * 协议管理
 * Class Agreement
 * @package app\store\controller\content
 */
class Agreement extends Controller
{
  /**
   * 获取列表记录
   * @return Json
   * @throws \think\db\exception\DbException
   */
  public function list(): Json
  {
    $model = new AgreementModel;
    $list = $model->getList();
    return $this->renderSuccess(compact('list'));
  }

  /**
   * 添加协议
   * @return Json
   */
  public function add(): Json
  {
    // 新增记录
    $model = new AgreementModel;

    if ($model->add($this->postForm())) {
      return $this->renderSuccess('添加成功');
    }
    return $this->renderError($model->getError() ?: '添加失败');
  }

  /**
   * 更新协议
   * @param int $agreementId
   * @return Json
   */
  public function edit(int $agreementId): Json
  {
    // 协议详情
    $model = AgreementModel::detail($agreementId);
    // 更新记录
    if ($model->edit($this->postForm())) {
      return $this->renderSuccess('更新成功');
    }
    return $this->renderError($model->getError() ?: '更新失败');
  }

  /**
   * 删除协议
   * @param int $agreementId
   * @return Json
   */
  public function delete(int $agreementId): Json
  {
    // 协议详情
    $model = AgreementModel::detail($agreementId);
    // 删除记录
    if ($model->setDelete()) {
      return $this->renderSuccess('删除成功');
    }
    return $this->renderError($model->getError() ?: '删除失败');
  }
}