using YY.Admin.Core.Entity; namespace YY.Admin.Core.Services; public record MixerMaterialPageResult(List Records, long Total, int Current, int Size); public record MaterialCategoryNode(string Id, string? Name, string? Code, List Children); public interface IMixerMaterialService { Task PageAsync( int pageNo, int pageSize, string? materialCode = null, string? materialName = null, string? erpCode = null, string? majorCategoryId = null, string? minorCategoryId = null, CancellationToken ct = default); Task GetByIdAsync(string id, CancellationToken ct = default); Task AddAsync(MesMixerMaterial material, CancellationToken ct = default); Task EditAsync(MesMixerMaterial material, CancellationToken ct = default); Task DeleteAsync(string id, CancellationToken ct = default); Task DeleteBatchAsync(string ids, CancellationToken ct = default); Task>> GetMajorCategoryOptionsAsync(CancellationToken ct = default); Task>> GetMinorCategoryOptionsAsync(string majorCategoryId, CancellationToken ct = default); Task> GetMaterialCategoryTreeAsync(CancellationToken ct = default); Task SyncFromRemoteAsync(CancellationToken ct = default); }