using User.Insight.Tracker.DataContracts.Response;
using User.Insight.Tracker.DataContracts;
using User.Insight.Tracker.DataContracts.Requests;
using DataBase.Entities.Models;

namespace User.Insight.Tracker.Services
{
    public interface ICommonService
    {
        PageResponse<AuditResponse> GetAudit(SearchRequest<AuditRequest> filters, JwtTokenDetail userDetails);

        PageResponse<DeleteRoleResponse> DeleteRoles(SearchRequest<DeleteRoleRequest> filters, JwtTokenDetail userDetails);

        List<SmartSearchResponse> GetSmartSearch(JwtTokenDetail userDetails , string EmpCode);

        PageResponse<GlobalConfigurationResponse> GetGlobalConfiguration(SearchRequest<GlobalConfigurationRequest> filters, JwtTokenDetail userDetails);

        PageResponse<GlobalConfigurationUpdatePropertiesStatusResponse> GlobalPropertiesStatus(SearchRequest<GlobalConfigurationUpdatePropertiesStatus> filters, JwtTokenDetail userDetails);

        PageResponse<GlobalConfigurationUpdatePropertiesValueResponse> GlobalPropertiesValue(SearchRequest<GlobalConfigurationUpdatePropertiesRequest> filters, JwtTokenDetail userDetails);
        Task SyncStafflineUsersAsync();
    }
}
