using CodePlay.Core.Common;
namespace CodePlay.Core.Models;
///
/// 项目模型
///
public class Project
{
///
/// 项目 ID
///
public string Id { get; set; } = Guid.NewGuid().ToString("N");
///
/// 项目名称
///
public string Name { get; set; } = string.Empty;
///
/// 源语言
///
public LanguageType SourceLanguage { get; set; }
///
/// 目标语言
///
public LanguageType TargetLanguage { get; set; }
///
/// 项目状态
///
public ProjectStatus Status { get; set; }
///
/// 创建时间
///
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
///
/// 更新时间
///
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
///
/// 转换任务列表
///
public List Tasks { get; set; } = new();
///
/// 配置
///
public ProjectConfiguration? Configuration { get; set; }
}
///
/// 转换任务
///
public class ConversionTask
{
///
/// 任务 ID
///
public string Id { get; set; } = Guid.NewGuid().ToString("N");
///
/// 源文件路径
///
public string SourceFilePath { get; set; } = string.Empty;
///
/// 目标文件路径
///
public string TargetFilePath { get; set; } = string.Empty;
///
/// 源代码
///
public string? SourceCode { get; set; }
///
/// 转换后的代码
///
public string? TransformedCode { get; set; }
///
/// 转换状态
///
public ConversionStatus Status { get; set; }
///
/// 创建时间
///
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
///
/// 完成时间
///
public DateTime? CompletedAt { get; set; }
///
/// 转换结果
///
public ConversionResult? Result { get; set; }
}
///
/// 项目配置
///
public class ProjectConfiguration
{
///
/// 验证轮次
///
public int ValidationRounds { get; set; } = 2;
///
/// 自动修复启用
///
public bool EnableAutoFix { get; set; } = true;
///
/// 保留注释
///
public bool KeepComments { get; set; } = true;
///
/// 保留文档字符串
///
public bool KeepDocStrings { get; set; } = true;
///
/// 缩进大小
///
public int IndentSize { get; set; } = 4;
///
/// 输出目录
///
public string? OutputDirectory { get; set; }
}