using Gestor.Infrastructure.Entities.Ferramentas; using Gestor.Infrastructure.Repository.Generic; using Gestor.Model.Common; using Gestor.Model.Domain.Ferramentas; using Gestor.Model.Domain.Relatorios.Tarefa; using System; using System.Collections.Generic; namespace Gestor.Infrastructure.Repository.Interface { public interface ITarefaRepository : IGenericRepository { Gestor.Model.Domain.Ferramentas.Tarefa Atualizar(Gestor.Model.Domain.Ferramentas.Tarefa tarefa); Trilha Atualizar(Trilha trilha); Fase Atualizar(Fase fase); List BuscarFases(long id); Gestor.Model.Domain.Ferramentas.Tarefa BuscarTarefa(long id); List BuscarTarefa(TipoTarefa entidade, long id, bool? concluido = false); List BuscarTarefaConcluidaPorUsuario(long id, TipoTarefa tipo); List BuscarTarefaPorCliente(long id); List BuscarTarefaPorData(DateTime data, long idUsuario, bool? concluido = false); List BuscarTarefaPorFiltro(DateTime inicio, DateTime fim); List BuscarTarefaPorTrilha(long id); List BuscarTarefaPorUsuario(long id, bool? concluido = false); List BuscarTarefaPorUsuario(long id, DateTime inicio, DateTime fim, bool? concluido); List BuscarTarefaPorUsuario(long id, TipoTarefa tipo); List BuscarTarefasPorTipo(long id); Trilha BuscarTrilha(long id); List BuscarTrilhas(bool ativo = true); List BuscarTrilhas(string titulo, bool ativo = true); int[] ContarTarefas(long id); void Excluir(long id); void ExcluirFase(long id); void ExcluirTrilha(long id); Gestor.Model.Domain.Ferramentas.Tarefa Salvar(Gestor.Model.Domain.Ferramentas.Tarefa tarefa); List Salvar(List tarefas); Trilha Salvar(Trilha trilha); Fase Salvar(Fase fase); List Salvar(List fases); List Validar(List ids, long trilha); } }