using Workflow.Domain.Enums;

namespace Workflow.Application.Features.WorkflowDefinitions.DTOs;

public record WorkflowDefinitionDto(
    Guid Id,
    string Name,
    string Code,
    string? Description,
    DefinitionStatus Status,
    int Version,
    string? DefinitionJson,
    bool IsEnabled
);

public record WorkflowDefinitionDetailDto(
    Guid Id,
    string Name,
    string Code,
    string? Description,
    DefinitionStatus Status,
    int Version,
    string? DefinitionJson,
    bool IsEnabled,
    List<WorkflowNodeDto> Nodes,
    List<WorkflowEdgeDto> Edges
);

public record WorkflowNodeDto(
    Guid Id,
    NodeType NodeType,
    string Name,
    int PositionX,
    int PositionY
);

public record WorkflowEdgeDto(
    Guid Id,
    Guid SourceNodeId,
    Guid TargetNodeId,
    string? Label
);
