21 lines
816 B
C#
21 lines
816 B
C#
using Nexus.Api.Data;
|
|
using Nexus.Api.DTOs;
|
|
|
|
namespace Nexus.Api.Services;
|
|
|
|
public enum ProjectDeleteOutcome { NotFound, Deleted, Archived }
|
|
|
|
public sealed record ProjectDeleteResult(ProjectDeleteOutcome Outcome, Project? Project = null);
|
|
|
|
public interface IProjectService
|
|
{
|
|
Task<IReadOnlyList<Project>> GetAllAsync(CancellationToken ct = default);
|
|
Task<Project?> GetByIdAsync(Guid id, CancellationToken ct = default);
|
|
Task<IReadOnlyList<WorkTask>> GetTasksAsync(
|
|
Guid id,
|
|
CancellationToken ct = default);
|
|
Task<Project> CreateAsync(CreateProjectRequest request, CancellationToken ct = default);
|
|
Task<Project?> UpdateAsync(Guid id, UpdateProjectRequest request, CancellationToken ct = default);
|
|
Task<ProjectDeleteResult> DeleteAsync(Guid id, CancellationToken ct = default);
|
|
}
|