using Marco.Pms.Model.Dtos.ServiceProject; using Marco.Pms.Model.Employees; using Marco.Pms.Model.ServiceProject; using Marco.Pms.Model.Utilities; namespace Marco.Pms.Services.Service.ServiceInterfaces { public interface IServiceProject { #region =================================================================== Service Project Functions =================================================================== Task> GetServiceProjectListAsync(string? searchString, int pageNumber, int pageSize, Employee loggedInEmployee, Guid tenantId); Task> GetServiceProjectDetailsAsync(Guid id, Employee loggedInEmployee, Guid tenantId); Task> CreateServiceProjectAsync(ServiceProjectDto serviceProject, Employee loggedInEmployee, Guid TenantId); Task> UpdateServiceProjectAsync(Guid id, ServiceProjectDto serviceProject, Employee loggedInEmployee, Guid tenantId); Task> DeActivateServiceProjectAsync(Guid id, bool isActive, Employee loggedInEmployee, Guid tenantId); #endregion #region =================================================================== Project Branch Functions =================================================================== Task> GetProjectBranchListByProjectAsync(Guid projectId, bool isActive, string? searchString, int pageNumber, int pageSize, Employee loggedInEmployee, Guid tenantId); Task> GetProjectBranchDetailsAsync(Guid id, Employee loggedInEmployee, Guid tenantId); Task> GetBranchTypeListAsync(string? searchString, Employee loggedInEmployee, Guid tenantId); Task> CreateProjectBranchAsync(ProjectBranchDto model, Employee loggedInEmployee, Guid tenantId); Task> UpdateProjectBranchAsync(Guid id, ProjectBranchDto model, Employee loggedInEmployee, Guid tenantId); Task> DeleteProjectBranchAsync(Guid id, bool isActive, Employee loggedInEmployee, Guid tenantId); #endregion #region =================================================================== Service Project Allocation Functions =================================================================== Task> GetServiceProjectAllocationListAsync(Guid? projectId, Guid? employeeId, bool isActive, Employee loggedInEmployee, Guid tenantId); Task> ManageServiceProjectAllocationAsync(List model, Employee loggedInEmployee, Guid tenantId); #endregion #region =================================================================== Service Project Talking Points Functions =================================================================== #endregion #region =================================================================== Job Tickets Functions =================================================================== Task> GetJobTicketsListAsync(Guid? projectId, int pageNumber, int pageSize, bool isActive, bool isArchive, Employee loggedInEmployee, Guid tenantId); Task> GetJobTicketDetailsAsync(Guid id, Employee loggedInEmployee, Guid tenantId); Task> GetJobTagListAsync(Employee loggedInEmployee, Guid tenantId); Task> CreateJobTicketAsync(CreateJobTicketDto model, Employee loggedInEmployee, Guid tenantId); Task> ChangeJobsStatusAsync(ChangeJobStatusDto model, Employee loggedInEmployee, Guid tenantId); Task> UpdateJobTicketAsync(Guid id, JobTicket jobTicket, UpdateJobTicketDto model, Employee loggedInEmployee, Guid tenantId); #endregion #region =================================================================== Job Comments Functions =================================================================== Task> GetCommentListByJobTicketAsync(Guid? jobTicketId, int pageNumber, int pageSize, Employee loggedInEmployee, Guid tenantId); Task> AddCommentToJobTicketAsync(JobCommentDto model, Employee loggedInEmployee, Guid tenantId); Task> UpdateCommentAsync(Guid id, JobCommentDto model, Employee loggedInEmployee, Guid tenantId); #endregion #region =================================================================== Job Tagging Functions =================================================================== Task> GetAttendanceForSelfAsync(Guid jobTicketId, Employee loggedInEmployee, Guid tenantId); Task> GetAttendanceLogForAttendanceAsync(Guid jobAttendanceId, Employee loggedInEmployee, Guid tenantId); Task> GetAttendanceForJobTeamAsync(Guid jobTicketId, DateTime? startDate, DateTime? endDate, Employee loggedInEmployee, Guid tenantId); Task> ManageJobTaggingAsync(JobAttendanceDto model, Employee loggedInEmployee, Guid tenantId); #endregion #region =================================================================== Helper Functions =================================================================== Task GetJobTicketByIdAsync(Guid id, Guid tenantId); #endregion } }