using F9WebAiTest.Application.Common;
using F9WebAiTest.Application.Dtos.SYS.WuziMulus;
using F9WebAiTest.Application.Dtos.SYS.YuanliaoZhuangkous;
using F9WebAiTest.Application.Interfaces.Repositories.SYS.YuanliaoZhuangkous;
using MediatR;
namespace F9WebAiTest.Application.CQRS.SYS.YuanliaoZhuangkous.Queries;
/// 原料庄口分页查询(年度 + 产地/站点/季别 + 关键字)
public record GetYuanliaoZhuangkouPagedQuery(
int Year = 0, string Chandi = "", string Zhandian = "", string Jibie = "", string Like = "",
int PageIndex = 1, int PageSize = 20) : IRequest>;
public class GetYuanliaoZhuangkouPagedQueryHandler(IYuanliaoZhuangkouReadRepository readRepository)
: IRequestHandler>
{
public async Task> Handle(GetYuanliaoZhuangkouPagedQuery query, CancellationToken ct)
=> await readRepository.GetPagedAsync(query.Year, query.Chandi, query.Zhandian, query.Jibie,
query.Like, query.PageIndex, query.PageSize);
}
/// 按 Id 查询原料庄口(编辑回显)
public record GetYuanliaoZhuangkouByIdQuery(long Id) : IRequest;
public class GetYuanliaoZhuangkouByIdQueryHandler(IYuanliaoZhuangkouReadRepository readRepository)
: IRequestHandler
{
public async Task Handle(GetYuanliaoZhuangkouByIdQuery query, CancellationToken ct)
=> await readRepository.GetByIdForEditAsync(query.Id);
}
/// 物资(茧别)下拉选项:来自物资目录中名称含"茧"的物资,支持关键字过滤
public record GetYuanliaoZhuangkouWuziOptionsQuery(string Keyword = "") : IRequest>;
public class GetYuanliaoZhuangkouWuziOptionsQueryHandler(IYuanliaoZhuangkouReadRepository readRepository)
: IRequestHandler>
{
public async Task> Handle(GetYuanliaoZhuangkouWuziOptionsQuery query, CancellationToken ct)
=> await readRepository.GetWuziOptionsAsync(query.Keyword);
}