using System.Threading.Tasks;
using System.Collections.Generic;
using ZhonTai.Admin.Core.Dto;
using NPP.SmartSchedue.Api.Contracts.Services.Work.Input;
using NPP.SmartSchedue.Api.Contracts.Services.Work.Output;

namespace NPP.SmartSchedue.Api.Contracts.Services.Work;

/// <summary>
/// 工序服务接口
/// </summary>
public interface IProcessService
{
    Task<ProcessGetOutput> GetAsync(long id);

    Task<PageOutput<ProcessGetPageOutput>> GetPageAsync(PageInput<ProcessGetPageInput> input);

    Task<long> AddAsync(ProcessAddInput input);

    Task UpdateAsync(ProcessUpdateInput input);

    Task DeleteAsync(long id);

    Task SoftDeleteAsync(long id);

    Task BatchSoftDeleteAsync(long[] ids);

    Task EnableAsync(long id);

    Task DisableAsync(long id);

    Task<List<ProcessInfo>> GetProcessesByGroupIdAsync(long processGroupId);
} 