using Marco.Pms.Model.Dtos.Project; using Marco.Pms.Model.Dtos.Projects; using Marco.Pms.Model.Dtos.Util; using Marco.Pms.Model.Employees; using Marco.Pms.Model.Projects; using Marco.Pms.Model.Utilities; using Marco.Pms.Model.ViewModels.Projects; namespace Marco.Pms.Services.Service.ServiceInterfaces { public interface IProjectServices { Task> GetBothProjectBasicListAsync(Guid? id, string? searchString, Employee loggedInEmployee, Guid tenantId); Task> GetAllProjectsBasicAsync(bool provideAll, Employee loggedInEmployee, Guid tenantId); Task> GetAllProjectsAsync(string? searchString, int pageNumber, int pageSize, Employee loggedInEmployee, Guid tenantId); Task> GetProjectAsync(Guid id, Employee loggedInEmployee, Guid tenantId); Task> GetProjectDetailsAsync(Guid id, Employee loggedInEmployee, Guid tenantId); Task> GetProjectDetailsOldAsync(Guid id, Employee loggedInEmployee, Guid tenantId); Task> CreateProjectAsync(CreateProjectDto projectDto, Employee loggedInEmployee, Guid tenantId); Task> UpdateProjectAsync(Guid id, UpdateProjectDto updateProjectDto, Employee loggedInEmployee, Guid tenantId); Task> GetEmployeeByProjectIdAsync(Guid projectId, Guid? organizationId, bool includeInactive, Employee loggedInEmployee, Guid tenantId); Task> GetProjectAllocationAsync(Guid projectId, Guid? organizationId, Guid? serviceId, bool includeInactive, Employee loggedInEmployee, Guid tenantId); Task>> ManageAllocationAsync(List projectAllocationDots, Employee loggedInEmployee, Guid tenantId); Task> GetProjectsByEmployeeAsync(Guid employeeId, Employee loggedInEmployee, Guid tenantId); Task>> AssigneProjectsToEmployeeAsync(List projectAllocationDtos, Guid employeeId, Employee loggedInEmployee, Guid tenantId); Task> GetProjectByEmployeeBasicAsync(Guid employeeId, Employee loggedInEmployee, Guid tenantId); Task> GetProjectTeamByServiceAndOrganizationAsync(Guid projectId, Guid? serviceId, Guid? organizationId, Employee loggedInEmployee, Guid tenantId); Task> GetInfraDetailsAsync(Guid projectId, Guid? serviceId, Employee loggedInEmployee, Guid tenantId); Task> GetWorkItemsAsync(Guid workAreaId, Guid? serviceId, Employee loggedInEmployee, Guid tenantId); Task> GetTasksByEmployeeAsync(Guid employeeId, DateTime fromDate, DateTime toDate, Employee loggedInEmployee, Guid tenantId); Task ManageProjectInfraAsync(List infraDtos, Employee loggedInEmployee, Guid tenantId); Task>> CreateProjectTaskAsync(List workItemDtos, Employee loggedInEmployee, Guid tenantId); Task DeleteProjectTaskAsync(Guid id, Employee loggedInEmployee, Guid tenantId); Task> GetAllProjectByTanentID(Guid tanentId); Task> GetProjectByEmployeeID(Guid employeeId); Task> GetTeamByProject(Guid TenantId, Guid ProjectId, Guid? OrganizationId, bool IncludeInactive); Task> GetMyProjectIdsAsync(Employee loggedInEmployee, Guid tenantId); Task> ManageProjectLevelPermissionAsync(ProjctLevelPermissionDto model, Employee loggedInEmployee, Guid tenantId); Task> GetAssignedProjectLevelPermissionAsync(Guid employeeId, Guid projectId, Employee loggedInEmployee, Guid tenantId); Task> AssignProjectLevelModulesAsync(Employee loggedInEmployee, Guid tenantId); Task> GetEmployeeToWhomProjectLevelAssignedAsync(Guid projectId, Employee loggedInEmployee, Guid tenantId); Task> GetAllPermissionFroProjectAsync(Guid projectId, Employee loggedInEmployee, Guid tenantId); Task> GetAssignedServiceToProjectAsync(Guid projectId, Employee loggedInEmployee, Guid tenantId); Task> AssignServiceToProjectAsync(AssignServiceDto model, Employee loggedInEmployee, Guid tenantId); Task> DeassignServiceToProjectAsync(DeassignServiceDto model, Employee loggedInEmployee, Guid tenantId); Task> GetAssignedOrganizationsToProjectAsync(Guid projectId, Employee loggedInEmployee, Guid tenantId); Task> GetAssignedOrganizationsToProjectForDropdownAsync(Guid projectId, Employee loggedInEmployee, Guid tenantId); } }