using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using VendingMachine.Infrastructure.Data;
namespace VendingMachine.Api.Controllers;
///
/// 管理后台 - 入口图片管理控制器
///
[ApiController]
[Route("api/admin/entry")]
[Authorize]
public class AdminEntryController : ControllerBase
{
private readonly AppDbContext _db;
public AdminEntryController(AppDbContext db)
{
_db = db;
}
///
/// 获取所有入口图片
///
[HttpGet]
public async Task GetAll()
{
var entries = await _db.HomeEntries.ToListAsync();
return Ok(new { success = true, data = entries });
}
///
/// 更新入口图片(按 ID)
///
[HttpPut("{id}")]
public async Task Update(string id, [FromBody] EntryUpdateRequest request)
{
var entry = await _db.HomeEntries.FindAsync(id);
if (entry == null)
return NotFound(new { success = false, message = "入口不存在" });
entry.ImageUrlZhCn = request.ImageUrlZhCn;
entry.ImageUrlZhTw = request.ImageUrlZhTw;
entry.ImageUrlEn = request.ImageUrlEn;
await _db.SaveChangesAsync();
return Ok(new { success = true, data = entry });
}
}
///
/// 入口图片更新请求体
///
public class EntryUpdateRequest
{
public string ImageUrlZhCn { get; set; } = string.Empty;
public string ImageUrlZhTw { get; set; } = string.Empty;
public string ImageUrlEn { get; set; } = string.Empty;
}