2026-05-14 12:31:35 +02:00
|
|
|
using AuthorBuddy.Web.Models;
|
|
|
|
|
|
|
|
|
|
namespace AuthorBuddy.Web.Services;
|
|
|
|
|
|
|
|
|
|
public interface IProjectService
|
|
|
|
|
{
|
2026-05-31 19:31:27 +02:00
|
|
|
Task<int> CreateNewProjectAsync(string projectName, string rootPath, int userId, ProjectTemplate template = ProjectTemplate.Novel);
|
|
|
|
|
Task<List<Project>> GetAllProjectsAsync(int? userId = null);
|
2026-05-20 06:12:54 +02:00
|
|
|
Task<Project?> GetProjectAsync(int projectId);
|
|
|
|
|
Task<List<FileTreeItem>> GetProjectFileTreeAsync(int projectId);
|
2026-05-14 12:31:35 +02:00
|
|
|
Task SyncProjectFilesAsync(int projectId, string directoryPath, IProgress<string> progress);
|
2026-05-25 06:38:16 +02:00
|
|
|
Task<int> CopyProjectAsync(int sourceProjectId, string newName, string newRootPath, int userId);
|
2026-05-31 19:31:27 +02:00
|
|
|
|
|
|
|
|
Task<Dictionary<string, FileCategory>> GetFileCategoriesAsync(int projectId);
|
|
|
|
|
Task<bool> SetFileCategoryAsync(int projectId, string filePath, FileCategory category);
|
|
|
|
|
Task ClearFileCategoryAsync(int projectId, string filePath);
|
2026-05-14 12:31:35 +02:00
|
|
|
}
|