using Ropin.Inspection.Model.Entities;
using Ropin.Inspection.Model.SearchModel.DEV;
using Ropin.Inspection.Model.ViewModel.DEV;
using Ropin.Inspection.Service.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Text;
using System.Threading.Tasks;

namespace Ropin.Inspection.Service.DEV.Interface
{
    public interface IDEVCmdService : IBaseService<DevCmdViewModel>, IBaseServiceById<DevCmdViewModel, string>
    {
        Task DisableAsync(string id);
        Task UpdateAsync(string code, DevCmdViewModel updateModel);
        Task<IEnumerable<DevCmdViewModel>> GetConditionAsync(DevCmdSearchModel searchModel);

        Task InstructionCreateOneAsync(DevInstructionViewModel viewModel);
        Task InstructionDeleteAsync(string id, bool bol = false);
        Task<DevInstructionViewModel> GetInstructionByIdAsync(string id);
        Task InstructionUpdateAsync(string code, DevInstructionViewModel updateModel);
        Task<IEnumerable<DevInstructionViewModel>> GetInstructionConditionAsync(DevInstructionSearchModel searchModel);
        Task<List<DevInstructionInfo>> GetInstructionByCmdCode(DevInstructionSearchModel searchModel);

        Task CmdInstructionCreateOneAsync(DevCmdInstructionViewModel viewModel);
        Task CmdInstructionDeleteAsync(string id);
        Task<DevCmdInstructionViewModel> GetCmdInstructionByIdAsync(string id);
        Task CmdInstructionUpdateAsync(string code, DevCmdInstructionViewModel updateModel); Task<IEnumerable<DevCmdInstructionViewModel>> GetCmdInstructionConditionAsync(DevCmdInstructionSearchModel searchModel);
    }
}