using FlowAPI.Application.DTOs.Graph; namespace FlowAPI.Application.Interfaces { public interface IGraphService { Task> GetAllByUserIdAsync(Guid userId); Task GetByIdAsync(Guid id, Guid currentUserId); Task GetFullByIdAsync(Guid id, Guid currentUserId); Task CreateAsync(CreateGraphDto dto, Guid currentUserId); Task UpdateAsync(Guid id, UpdateGraphDto dto, Guid currentUserId); Task DeleteAsync(Guid id, Guid currentUserId); Task SaveFullGraphAsync(Guid id, FullGraphResponseDto dto, Guid currentUserId); Task ShareGraphAsync(Guid graphId, Guid ownerId, ShareGraphRequestDto dto); Task> GetSharedUsersAsync(Guid graphId, Guid ownerId); Task RevokeShareAsync(Guid graphId, Guid ownerId, Guid shareId); Task SaveAsTemplateAsync(Guid graphId, Guid userId, string title, string description); Task> GetCustomTemplatesAsync(Guid userId); } }