namespace PowerEasy.WebFuture.DataMigrations.Foundation.MigrationProgramme
{
    /// <summary>
    /// 迁移项目接口。
    /// </summary>
    public interface IMigrationItem
    {
        /// <summary>
        /// 迁移方案标识符。
        /// </summary>
        public string MigrationProgrammeIdentifier { get; set; }

        /// <summary>
        /// 迁移项目名称。
        /// </summary>
        public string MigrationItemName { get; set; }

        /// <summary>
        /// 迁移项目的排序，用于执行和工具显示的顺序，从小到大排序。
        /// </summary>
        public int Order { get; set; }

        /// <summary>
        /// 迁移项目是否勾选。
        /// </summary>
        public bool Enable { get; set; }

        /// <summary>
        /// 开始执行迁移方法。
        /// </summary>
        /// <param name="isCheckedIncremental">是否勾选增量迁移。</param>
        /// <returns>返回执行迁移是否成功。</returns>
        public bool StartMigration(bool isCheckedIncremental);
    }
}
