namespace EgwCoreLib.Lux.Data.Repository.Job
{
public interface IJobTaskRepository : IBaseRepository
{
#region Public Methods
///
/// Inserisce un nuovo record JobTask nel database.
///
/// Record da inserire
Task AddAsync(JobTaskModel entity);
///
/// Elimina un record JobTask e aggiusta gli indici dei successivi.
///
/// Record da eliminare
Task DeleteAsync(JobTaskModel entity);
///
/// Recupera l'elenco completo delle attività job con tag e step associati.
///
Task> GetAllAsync();
///
/// Recupera un record JobTask specifico per ID.
///
/// ID del task da recuperare
Task GetByIdAsync(int recId);
///
/// Aggiorna i tag associati a un job, mantenendo solo quelli richiesti.
///
/// ID del Job
/// Lista di tag richiesti
Task MergeTagsAsync(int JobID, List reqTagList);
///
/// Sposta un job task su o giù nell'ordine di esecuzione.
///
/// Record da spostare
/// Se true sposta su, altrimenti giù
Task MoveAsync(JobTaskModel selRec, bool moveUp);
///
/// Aggiorna un record JobTask esistente nel database.
///
/// Record aggiornato
Task UpdateAsync(JobTaskModel entity);
#endregion Public Methods
}
}