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> GetAllAsync(CancellationToken ct = default); Task GetByIdAsync(Guid id, CancellationToken ct = default); Task CreateAsync(CreateProjectRequest request, CancellationToken ct = default); Task UpdateAsync(Guid id, UpdateProjectRequest request, CancellationToken ct = default); Task DeleteAsync(Guid id, CancellationToken ct = default); }