package com.lingyue.graph.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * 创建图关系请求 DTO
 *
 * @author lingyue
 * @since 2026-01-19
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "创建图关系请求")
public class CreateRelationRequest {

    @Schema(description = "源节点ID", required = true)
    private String fromNodeId;

    @Schema(description = "目标节点ID", required = true)
    private String toNodeId;

    @Schema(description = "关系类型", example = "DEP/ADD/SUB/MUL/DIV/UNION/INTERSECT/AI", required = true)
    private String relationType;

    @Schema(description = "动作类型")
    private String actionType;

    @Schema(description = "动作配置")
    private Map<String, Object> actionConfig;

    @Schema(description = "顺序索引")
    private Integer orderIndex;

    @Schema(description = "条件表达式")
    private String conditionExpr;

    @Schema(description = "元数据")
    private Map<String, Object> metadata;
}
