using Application; using Application.Dto.Category; namespace WebApi.Controllers; [ApiController] [Route("api/[controller]/[action]")] public class TransactionCategoryController( ITransactionCategoryApplication categoryApplication ) : ControllerBase { /// /// 获取分类列表(支持按类型筛选) /// [HttpGet] public async Task>> GetListAsync([FromQuery] TransactionType? type = null) { var categories = await categoryApplication.GetListAsync(type); return categories.Ok(); } /// /// 根据ID获取分类详情 /// [HttpGet("{id}")] public async Task> GetByIdAsync(long id) { var category = await categoryApplication.GetByIdAsync(id); return category.Ok(); } /// /// 创建分类 /// [HttpPost] public async Task> CreateAsync([FromBody] CreateCategoryRequest request) { var categoryId = await categoryApplication.CreateAsync(request); return categoryId.Ok(); } /// /// 更新分类 /// [HttpPost] public async Task UpdateAsync([FromBody] UpdateCategoryRequest request) { await categoryApplication.UpdateAsync(request); return "更新分类成功".Ok(); } /// /// 删除分类 /// [HttpPost] public async Task DeleteAsync([FromQuery] long id) { await categoryApplication.DeleteAsync(id); return BaseResponse.Done(); } /// /// 批量创建分类(用于初始化) /// [HttpPost] public async Task> BatchCreateAsync([FromBody] List requests) { var count = await categoryApplication.BatchCreateAsync(requests); return count.Ok(); } /// /// 为指定分类生成新的SVG图标 /// [HttpPost] public async Task> GenerateIconAsync([FromBody] GenerateIconRequest request) { var svg = await categoryApplication.GenerateIconAsync(request); return svg.Ok(); } /// /// 更新分类的选中图标索引 /// [HttpPost] public async Task UpdateSelectedIconAsync([FromBody] UpdateSelectedIconRequest request) { await categoryApplication.UpdateSelectedIconAsync(request); return "更新图标成功".Ok(); } /// /// 删除分类图标 /// [HttpDelete("{id}")] public async Task DeleteIconAsync(long id) { await categoryApplication.DeleteIconAsync(id); return "删除图标成功".Ok(); } }