package com.emoon.extent.migration.dto;

import lombok.Data;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * 数据库迁移结果
 *
 * @author destiny
 * @date 2025/11/21
 */
@Data
@Accessors(chain = true)
public class MigrationResult {

    /**
     * 迁移是否成功
     */
    private Boolean success;

    /**
     * 迁移消息
     */
    private String message;

    /**
     * 迁移的表名列表
     */
    private List<String> migratedTables;

    /**
     * 每个表迁移的记录数
     */
    private List<TableMigrationInfo> tableInfos;

    /**
     * 总迁移记录数
     */
    private Long totalRecords;

    /**
     * 耗时（毫秒）
     */
    private Long duration;

    /**
     * 表迁移信息
     */
    @Data
    @Accessors(chain = true)
    public static class TableMigrationInfo {
        /**
         * 表名
         */
        private String tableName;

        /**
         * 迁移记录数
         */
        private Long recordCount;

        /**
         * 是否成功
         */
        private Boolean success;

        /**
         * 错误信息
         */
        private String error;

        /**
         * 耗时（毫秒）
         */
        private Long duration;
    }
}