using OASystem.Domain.Entities.Groups;
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OASystem.Domain.Dtos.Groups
{
    /// 
    /// 团组增减款项Dto
    /// 
    public class DecreasePaymentsDto
    {
        public int UserId { get; set; }
        public int CTId { get; set; }
        public int PageIndex { get; set; } = 1;
        public int PageSize { get; set; } = 10;
        
    }
    public class DecreasePaymentsListDto
    {
        public int UserId { get; set; }
        public int DiId { get; set; }
        public int IsPaySign { get; set; } = -1;
    }
    /// 
    /// 团组增减款项操作
    /// 
    public class DecreasePaymentsOpDto
    {
        /// 
        /// 操作状态
        /// 1 添加 
        /// 2 修改 
        /// 
        public int Status { get; set; }
        /// 
        /// 支付方式
        /// 
        public int PayDId { get; set; }
        /// 
        /// 费用标识
        /// 
        public int OrbitalPrivateTransfer { get; set; }
        /// 
        /// 对方开户行
        /// 
        public string OtherBankName { get; set; }
        /// 
        /// 对方银行账号
        /// 
        public string OtherSideNo { get; set; }
        /// 
        /// 对方姓名
        /// 
        public string OtherSideName
        {
            get; set;
        }
        /// 
        /// 编号
        /// 
        public int Id { get; set; }
        /// 
        /// 团组外键编号
        /// 
        public int DiId { get; set; }
        /// 
        /// 供应商地区
        ///  1 国内(默认) 2 国外
        /// 
        public int SupplierArea { get; set; } = 1;
        /// 
        /// 供应商类型
        /// 
        public int SupplierTypeId { get; set; } = 0;
        /// 
        /// 供应商名称
        /// 
        public string SupplierName { get; set; }
        /// 
        /// 供应商联系人
        /// 
        public string SupplierContact { get; set; }
        /// 
        /// 供应商联系电话
        /// 
        public string SupplierContactNumber { get; set; }
        /// 
        /// 供应商社交账号
        /// 
        public string SupplierSocialAccount { get; set; }
        /// 
        /// 供应商邮箱
        /// 
        public string SupplierEmail { get; set; }
        /// 
        /// 供应商地址
        /// 
        public string SupplierAddress { get; set; }
        /// 
        /// 费用名称
        /// 
        public string PriceName { get; set; }
        /// 
        /// 单价
        /// 
        public decimal Price { get; set; }
        /// 
        /// 数量
        /// 
        public decimal Quantity { get; set; }
        /// 
        /// 费用总计
        /// 
        public decimal FeeTotal { get; set; }
        /// 
        /// 费用币种
        /// 
        public int Currency { get; set; }
        /// 
        /// 附件地址
        /// 
        public string FilePath { get; set; }
        /// 
        /// 创建者Id
        /// 
        public int CreateUserId { get; set; }
        /// 
        /// 备注
        /// 
        public string Remark { get; set; }
        /// 
        /// OTA订单号NO
        /// 
        public string OTAOrderNo { get; set; }
    }
    public class DecreasePaymentsByIdDto
    {
        public int Id { get; set; }
    }
    public class DelFileDto
    {
        public string fileName { get; set; }
        public int Id { get; set; }
    }
    public class AssociateSupplierDto
    {
        public string param { get; set; }
    }
    public class ProductComparer : IEqualityComparer
    {
        public bool Equals(Grp_DecreasePayments x, Grp_DecreasePayments y)
        {
            if (Object.ReferenceEquals(x,y))
            {
                return true;
            }
            var xStr = 
                x.SupplierAddress +
                x.SupplierArea +
                x.SupplierContact +
                x.SupplierContactNumber +
                x.SupplierEmail +
                x.SupplierName +
                x.SupplierSocialAccount +
                x.SupplierTypeId;
            var yStr =
                y.SupplierAddress +
                y.SupplierArea +
                y.SupplierContact +
                y.SupplierContactNumber +
                y.SupplierEmail +
                y.SupplierName +
                y.SupplierSocialAccount +
                y.SupplierTypeId;
            if (xStr == yStr)
            {
                return true;
            }
            return false;
        }
        public int GetHashCode([DisallowNull] Grp_DecreasePayments product)
        {
            return 0;
        }
    }
}