using System;
using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace MarcusLaw.OutlookAddin.Core.Models
{
    public sealed class FileEmailRequest
    {
        [JsonPropertyName("messageId")]
        public string? MessageId { get; set; }

        [JsonPropertyName("subject")]
        public string Subject { get; set; } = string.Empty;

        [JsonPropertyName("from")]
        public string From { get; set; } = string.Empty;

        [JsonPropertyName("to")]
        public List<string> To { get; set; } = new List<string>();

        [JsonPropertyName("cc")]
        public List<string> Cc { get; set; } = new List<string>();

        [JsonPropertyName("bcc")]
        public List<string> Bcc { get; set; } = new List<string>();

        [JsonPropertyName("replyTo")]
        public List<string> ReplyTo { get; set; } = new List<string>();

        [JsonPropertyName("body")]
        public string Body { get; set; } = string.Empty;

        [JsonPropertyName("isHtml")]
        public bool IsHtml { get; set; }

        [JsonPropertyName("dateSent")]
        public DateTimeOffset DateSent { get; set; }

        [JsonPropertyName("parentType")]
        public string ParentType { get; set; } = string.Empty;

        [JsonPropertyName("parentId")]
        public string ParentId { get; set; } = string.Empty;

        [JsonPropertyName("attachments")]
        public List<EspoAttachment> Attachments { get; set; } = new List<EspoAttachment>();
    }
}
