danylokhodus's picture
feat: optimize canvas load and save using lazy loading and delta upserts
1b321bd
Raw
History Blame Contribute Delete
3.06 kB
using FlowAPI.Domain.Enums;
namespace FlowAPI.Application.DTOs.Graph
{
public class FullGraphResponseDto
{
public Guid Id { get; set; }
public Guid UserId { get; set; }
public string Title { get; set; } = string.Empty;
public string? Description { get; set; }
public DateTime CreatedAt { get; set; }
public bool IsShared { get; set; }
public string Permission { get; set; } = "Owner";
public List<NodeDto> Nodes { get; set; } = new();
public List<EdgeDto> Edges { get; set; } = new();
}
public class NodeDto
{
public Guid Id { get; set; }
public string Label { get; set; } = string.Empty;
public double PosX { get; set; }
public double PosY { get; set; }
public string Type { get; set; } = "sketch";
public int State { get; set; }
public string? Decision { get; set; }
// Extended visual/content fields
public string? Description { get; set; }
public string? Color { get; set; }
public bool IsPinned { get; set; }
public double? Width { get; set; }
public double? Height { get; set; }
public string? Data { get; set; }
public bool? HasLargeData { get; set; }
}
public class EdgeDto
{
public Guid Id { get; set; }
public Guid FromNodeId { get; set; }
public Guid ToNodeId { get; set; }
public string Condition { get; set; } = "True";
}
public class CreateGraphDto
{
public string Title { get; set; } = string.Empty;
public string? Description { get; set; }
public string? TemplateKey { get; set; }
}
public class TemplateInfoDto
{
public string Key { get; set; } = string.Empty;
public string Title { get; set; } = string.Empty;
public string Description { get; set; } = string.Empty;
public string Icon { get; set; } = string.Empty;
public string Category { get; set; } = string.Empty;
}
public class UpdateGraphDto
{
public string? Title { get; set; }
public string? Description { get; set; }
}
public class GraphResponseDto
{
public Guid Id { get; set; }
public Guid UserId { get; set; }
public string Title { get; set; } = string.Empty;
public string? Description { get; set; }
public DateTime CreatedAt { get; set; }
public bool IsShared { get; set; }
public string Permission { get; set; } = "Owner";
}
public class ShareGraphRequestDto
{
public string Email { get; set; } = string.Empty;
public string Permission { get; set; } = "Read";
}
public class SharedUserResponseDto
{
public Guid Id { get; set; }
public Guid SharedWithUserId { get; set; }
public string Email { get; set; } = string.Empty;
public string DisplayName { get; set; } = string.Empty;
public string Permission { get; set; } = "Read";
}
}