package com.emoon.extent.migration.dto;

import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.List;

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

    /**
     * 源数据库配置
     */
    @Valid
    @NotNull(message = "源数据库配置不能为空")
    private DatabaseConfig src;

    /**
     * 目标数据库配置
     */
    @Valid
    @NotNull(message = "目标数据库配置不能为空")
    private DatabaseConfig tgt;

    /**
     * 需要迁移的表名列表，为空表示迁移全部表
     */
    private List<String> tables;

    /**
     * 批量处理大小，默认1000
     */
    private Integer batchSize = 1000;
}
