<?php

declare(strict_types=1);

namespace app\store\controller\content;

use think\response\Json;
use app\store\controller\Controller;
use app\store\model\Banner as BannerModel;

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

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

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

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

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