using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using MilliSim.Common.Dtos;
using MilliSim.Services;
namespace MilliSim.Controllers;
[ApiController]
[Route("api/banners")]
public class BannersController : ControllerBase
{
private readonly IContentService _contentService;
public BannersController(IContentService contentService)
{
_contentService = contentService;
}
///
/// 轮播图列表(前台传 onlyActive=true)
///
[HttpGet]
public async Task GetList([FromQuery] bool onlyActive = false)
{
var result = await _contentService.GetBannersAsync(onlyActive);
return Ok(result);
}
///
/// 创建轮播图
///
[HttpPost]
[Authorize(Policy = "Admin")]
public async Task Create([FromBody] CreateBannerRequest request)
{
var result = await _contentService.CreateBannerAsync(request);
return Ok(result);
}
///
/// 更新轮播图
///
[HttpPost("{id:long}")]
[Authorize(Policy = "Admin")]
public async Task Update(long id, [FromBody] CreateBannerRequest request)
{
var result = await _contentService.UpdateBannerAsync(id, request);
return Ok(result);
}
///
/// 删除轮播图
///
[HttpPost("{id:long}/delete")]
[Authorize(Policy = "Admin")]
public async Task Delete(long id)
{
var result = await _contentService.DeleteBannerAsync(id);
return Ok(result);
}
}