using System.Text.Json.Serialization;
namespace OASystem.API.OAMethodLib.FileProcessing
{
    public class WordDocumentModels
    {
    }
    /// 
    /// Word文档信息模型
    /// 
    public class WordDocumentInfo
    {
        [JsonPropertyName("name")]
        public string Name { get; set; } = string.Empty;
        [JsonPropertyName("type")]
        public string Type { get; set; } = string.Empty;
        [JsonPropertyName("value")]
        public string Value { get; set; } = string.Empty;
        [JsonPropertyName("isChecked")]
        public bool IsChecked { get; set; }
        [JsonPropertyName("status")]
        public string Status { get; set; } = string.Empty;
        [JsonPropertyName("defaultValue")]
        public string DefaultValue { get; set; } = string.Empty;
        [JsonPropertyName("maxLength")]
        public int MaxLength { get; set; }
        [JsonPropertyName("options")]
        public List Options { get; set; } = new List();
    }
    /// 
    /// 文档元数据
    /// 
    public class DocumentMetadata
    {
        [JsonPropertyName("author")]
        public string Author { get; set; } = string.Empty;
        [JsonPropertyName("company")]
        public string Company { get; set; } = string.Empty;
        [JsonPropertyName("createdTime")]
        public DateTime? CreatedTime { get; set; }
        [JsonPropertyName("lastSavedTime")]
        public DateTime? LastSavedTime { get; set; }
        [JsonPropertyName("pageCount")]
        public int PageCount { get; set; }
        [JsonPropertyName("wordCount")]
        public int WordCount { get; set; }
        [JsonPropertyName("characterCount")]
        public int CharacterCount { get; set; }
        [JsonPropertyName("subject")]
        public string Subject { get; set; } = string.Empty;
        [JsonPropertyName("keywords")]
        public string Keywords { get; set; } = string.Empty;
    }
    /// 
    /// 文档表格
    /// 
    public class DocumentTable
    {
        [JsonPropertyName("tableName")]
        public string TableName { get; set; } = string.Empty;
        [JsonPropertyName("rows")]
        public List> Rows { get; set; } = new List>();
        [JsonPropertyName("headers")]
        public List Headers { get; set; } = new List();
    }
    /// 
    /// 表单字段
    /// 
    public class FormField
    {
        [JsonPropertyName("name")]
        public string Name { get; set; } = string.Empty;
        [JsonPropertyName("type")]
        public string Type { get; set; } = string.Empty;
        [JsonPropertyName("value")]
        public string Value { get; set; } = string.Empty;
        [JsonPropertyName("isChecked")]
        public bool IsChecked { get; set; }
    }
    /// 
    /// 文档章节
    /// 
    public class DocumentSection
    {
        [JsonPropertyName("sectionNumber")]
        public int SectionNumber { get; set; }
        [JsonPropertyName("content")]
        public string Content { get; set; } = string.Empty;
        [JsonPropertyName("paragraphsCount")]
        public int ParagraphsCount { get; set; }
        [JsonPropertyName("tablesCount")]
        public int TablesCount { get; set; }
    }
    /// 
    /// 处理结果
    /// 
    public class ProcessingResult
    {
        [JsonPropertyName("success")]
        public bool Success { get; set; }
        [JsonPropertyName("data")]
        public WordDocumentInfo? Data { get; set; }
        [JsonPropertyName("errorMessage")]
        public string? ErrorMessage { get; set; }
        [JsonPropertyName("fileSize")]
        public long FileSize { get; set; }
        [JsonPropertyName("fileType")]
        public string FileType { get; set; } = string.Empty;
    }
}