package com.agent.management.model.entity;

import lombok.Data;

import java.time.LocalDateTime;

@Data
public class Workflow {

    private Long id;

    /**
     * 唯一标识，必须为 kebab-case（仅小写字母、数字、短横线）。
     * 对外暴露的标识符，URL 路由使用此字段。
     * 旧数据迁移后默认值为 String.valueOf(id)（纯数字天然合法）。
     */
    private String name;

    /**
     * 中文显示名称（参考 Skill 的 displayName 字段），可为任意字符。
     */
    private String displayName;

    private String description;

    /** 节点和边数据，JSON 格式存储 */
    private String graphData;

    /**
     * 运行模式：DAG（默认，按画布连线严格执行）/ AGENTIC（智能体自主决策）。
     * <p>对应设计文档 {@code docs/plans/agentic-workflow-plan.md}。
     * 缺省/null 视为 DAG，保证存量工作流零影响。</p>
     */
    private String mode;

    /** 分类 ID */
    private Long categoryId;

    private LocalDateTime createdAt;

    private LocalDateTime updatedAt;

    public void onCreate() {
        createdAt = LocalDateTime.now();
        updatedAt = LocalDateTime.now();
    }

    public void onUpdate() {
        updatedAt = LocalDateTime.now();
    }
}
