using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using MilliSim.Common.Dtos;
using MilliSim.Services;
namespace MilliSim.Controllers;
[ApiController]
[Route("api/partners")]
public class PartnersController : ControllerBase
{
private readonly IContentService _contentService;
public PartnersController(IContentService contentService)
{
_contentService = contentService;
}
///
/// 合作伙伴列表(前台传 onlyVisible=true)
///
[HttpGet]
public async Task GetList([FromQuery] bool onlyVisible = false)
{
var result = await _contentService.GetPartnersAsync(onlyVisible);
return Ok(result);
}
///
/// 创建合作伙伴
///
[HttpPost]
[Authorize(Policy = "Admin")]
public async Task Create([FromBody] CreatePartnerRequest request)
{
var result = await _contentService.CreatePartnerAsync(request);
return Ok(result);
}
///
/// 更新合作伙伴
///
[HttpPost("{id:long}")]
[Authorize(Policy = "Admin")]
public async Task Update(long id, [FromBody] CreatePartnerRequest request)
{
var result = await _contentService.UpdatePartnerAsync(id, request);
return Ok(result);
}
///
/// 删除合作伙伴
///
[HttpPost("{id:long}/delete")]
[Authorize(Policy = "Admin")]
public async Task Delete(long id)
{
var result = await _contentService.DeletePartnerAsync(id);
return Ok(result);
}
}