using EyeSoft.Collections.Generic;
using Newtonsoft.Json;
using OASystem.Domain.Entities.Groups;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.ViewModels.Groups
{
    public class InvitationOfficialActivityView
    {
        /// <summary>
        /// 团组外键编号
        /// </summary>
        public int DiId { get; set; }

        /// <summary>
        /// 邀请方地区
        /// </summary>
        public string InviterArea { get; set; }

        /// <summary>
        /// 邀请方
        /// </summary>
        public string Inviter { get; set; }

        /// <summary>
        /// 邀请时间
        /// </summary>
        public DateTime InviteTime { get; set; }

        /// <summary>
        /// 附件
        /// </summary>
        public string Attachment { get; set; }

        /// <summary>
        /// 邀请费用
        /// </summary>
        public decimal InviteCost { get; set; }

        /// <summary>
        /// 邀请费用币种
        /// </summary>
        public int InviteCurrency { get; set; }

        /// <summary>
        /// 快递费用
        /// </summary>
        public decimal SendCost { get; set; }

        /// <summary>
        /// 快递费用币种
        /// </summary>
        public int SendCurrency { get; set; }

        /// <summary>
        /// 公务活动费
        /// </summary>
        public decimal EventsCost { get; set; }

        /// <summary>
        /// 公务活动费币种
        /// </summary>
        public int EventsCurrency { get; set; }

        /// <summary>
        /// 公务翻译费
        /// </summary>
        public decimal TranslateCost { get; set; }

        /// <summary>
        /// 公务翻译费币种
        /// </summary>
        public int TranslateCurrency { get; set; }

        /// <summary>
        /// 公务标识
        /// </summary>
        public int IsGoOfficaiaBussiness { get; set; }

    }


    public class Grp_InvitationOfficialActivitiesView : Grp_InvitationOfficialActivities
    {
        /// <summary>
        /// 附件
        /// </summary>
        public string[] Attachments
        {
            get
            {
                var array = new string[] { };

                if (!string.IsNullOrEmpty(Attachment))
                {
                    try
                    {
                        array = JsonConvert.DeserializeObject<string[]>(Attachment);
                    }
                    catch (Exception)
                    {

                        array = new List<string>() { Attachment }.ToArray();
                    }
                }
                return array;
            }
        }

    }

    public class InvitationOfficialActivitiesByIdView
    {
        //------------------ 消费方式及时间 --------------------------
        /// <summary>
        /// 消费方式
        /// </summary>
        public string ConsumptionPatterns { get; set; }
        /// <summary>
        /// 消费日期
        /// </summary>
        public string ConsumptionDate { get; set; }

        //---------------------payType==刷卡--------------------------
        /// <summary>
        /// 卡类型
        /// </summary>
        public int CTDId { get; set; }
        /// <summary>
        /// 银行卡号
        /// </summary>
        public string BankNo { get; set; }
        /// <summary>
        /// 持卡人姓名
        /// </summary>
        public string CardholderName { get; set; }
        //---------------------payType==转账Or现金--------------------------
        /// <summary>
        /// 公司银行卡号
        /// </summary>
        public string CompanyBankNo { get; set; }
        /// <summary>
        /// 对方开户行
        /// </summary>
        public string OtherBankName { get; set; }
        /// <summary>
        /// 对方银行账号
        /// </summary>
        public string OtherSideNo { get; set; }
        /// <summary>
        /// 对方姓名
        /// </summary>
        public string OtherSideName { get; set; }


        /// <summary>
        /// 付款金额
        /// </summary>
        public decimal PayMoney { get; set; }

        /// <summary>
        /// 付款币种Id
        /// </summary>
        public int PaymentCurrency { get; set; }

        /// <summary>
        /// 支付方式
        /// </summary>
        public int PayDId { get; set; }
        /// <summary>
        /// 费用表示
        /// </summary>
        public int OrbitalPrivateTransfer { get; set; }
        /// <summary>
        /// 收款方
        /// </summary>
        public string Payee { get; set; }
        //---------------------商邀参数--------------------------
        /// <summary>
        /// 主键Id
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 团组外键编号
        /// </summary>
        public int DiId { get; set; }

        /// <summary>
        /// 邀请方地区
        /// </summary>
        public string InviterArea { get; set; }

        /// <summary>
        /// 邀请方
        /// </summary>
        public string Inviter { get; set; }

        /// <summary>
        /// 邀请时间
        /// </summary>
        public DateTime InviteTime { get; set; }

        /// <summary>
        /// 附件
        /// </summary>
        public string Attachment { get; set; }

        /// <summary>
        /// 附件
        /// </summary>
        public string[] Attachments
        {
            get
            {
                var array = new string[] { };

                if (!string.IsNullOrEmpty(Attachment))
                {
                    try
                    {
                        array = JsonConvert.DeserializeObject<string[]>(Attachment);
                    }
                    catch (Exception)
                    {

                        array = new List<string>() { Attachment }.ToArray();
                    }
                }
                return array;
            }
        }


        /// <summary>
        /// 邀请费用
        /// </summary>
        public decimal InviteCost { get; set; }

        /// <summary>
        /// 邀请费用币种
        /// </summary>
        public int InviteCurrency { get; set; }

        /// <summary>
        /// 快递费用
        /// </summary>
        public decimal SendCost { get; set; }

        /// <summary>
        /// 快递费用币种
        /// </summary>
        public int SendCurrency { get; set; }

        /// <summary>
        /// 公务活动费
        /// </summary>
        public decimal EventsCost { get; set; }

        /// <summary>
        /// 公务活动费币种
        /// </summary>
        public int EventsCurrency { get; set; }

        /// <summary>
        /// 公务翻译费
        /// </summary>
        public decimal TranslateCost { get; set; }

        /// <summary>
        /// 公务翻译费币种
        /// </summary>
        public int TranslateCurrency { get; set; }

        /// <summary>
        /// 公务标识(是否到场)
        /// </summary>
        public int IsGoOfficaiaBussiness { get; set; }

        /// <summary>
        /// 创建者Id
        /// </summary>
        public int CreateUserId { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
        //-----------------------邀请方资料----------

        /// 邀请方地址
        public string Address { get; set; }
        /// <summary>
        /// 联系人
        /// </summary>
        public string Contact { get; set; }
        /// <summary>
        /// 职务
        /// </summary>
        public string Job { get; set; }
        /// <summary>
        /// 联系电话
        /// </summary>
        public string Tel { get; set; }
        /// <summary>
        /// 电子邮箱
        /// </summary>
        public string Email { get; set; }
        /// <summary>
        /// 传真号码
        /// </summary>
        public string Fax { get; set; }
        /// <summary>
        /// 其他信息
        /// </summary>
        public string OtherInformation { get; set; }
    }
}