using FluentValidation;
using OASystem.Domain.Dtos.System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;
using OASystem.Domain.ViewModels.Groups;
namespace OASystem.Domain.Dtos.Statistics
{
    public class MarketingSalesUserPageFuncDtoBase
    {
        /// 
        /// 请求端口分类
        /// 1 Web 2 Android 3 IOS
        /// 
        public int PortType { get; set; } = 1;
        /// 
        /// 用户Id
        /// 
        public int UserId { get; set; }
        /// 
        /// 页面Id
        /// 
        public int PageId { get; set; } = 180;
    }
    public class MarketingSalesUserPageFuncDtoBaseFoalidator : AbstractValidator
    {
        public MarketingSalesUserPageFuncDtoBaseFoalidator()
        {
            RuleFor(it => it.PortType).InclusiveBetween(1,3).WithMessage(MsgTips.Port);
            RuleFor(it => it.UserId).GreaterThan(1).WithMessage(MsgTips.UserId);
            RuleFor(it => it.PageId).GreaterThan(1).WithMessage(MsgTips.PageId);
        }
    }
    /// 
    /// 市场部销售额 Dto
    /// 
    public class MarketingSalesDto { }
    /// 
    /// 市场部销售额 
    /// 市场部人员列表
    /// Dto
    /// 
    public class MarketingSalesInitDataDto : MarketingSalesUserPageFuncDtoBase { }
    public class MarketingSalesInitDataDtoFoalidator : AbstractValidator
    {
        public MarketingSalesInitDataDtoFoalidator() 
        {
            Include(new MarketingSalesUserPageFuncDtoBaseFoalidator());
        }
    }
    /// 
    ///  市场部销售额
    ///  年度/季度/月度 报表
    /// 
    public class MarketingSalesStatisticsDto : MarketingSalesUserPageFuncDtoBase 
    {
        /// 
        /// 公司Id
        /// 
        public int CompanyId { get; set; }
        /// 
        /// 接团人Id
        /// 
        public int GroupPickupUserId  { get; set; }
        public string BeginDt { get; set; }
        public string EndDt { get; set; }
    }
    public class MarketingSalesStatisticsDtoFoalidator : AbstractValidator
    {
        public MarketingSalesStatisticsDtoFoalidator()
        {
            Include(new MarketingSalesUserPageFuncDtoBaseFoalidator());
            RuleFor(it => it.BeginDt)
                .Must(dateString => DateTime.TryParse(dateString, out _))
                .WithMessage("请输入有效开始的日期");
            RuleFor(it => it.EndDt)
                .Must(dateString => DateTime.TryParse(dateString, out _))
                .WithMessage("请输入有效结束的日期");
        }
    }
    /// 
    ///  市场部销售额
    ///  团组列表
    /// 
    public class MarketingSalesGroupListDto : MarketingSalesStatisticsDto {
        public int PageIndex { get; set; } = 1;
        public int PageSize { get; set; } = 10;
        public string SearchCriteria { get; set; }
    }
    /// 
    ///  市场部销售额
    ///  客户类型、客户等级 统计
    /// 
    public class MarketingSalesGroupStatisticsDto : MarketingSalesStatisticsDto
    {
        /// 
        /// 图形统计类型
        /// 1 客户类型 2 客户等级
        /// 
        public int StatisticsType { get; set; } = 1;
    }
    /// 
    ///  市场部销售额
    ///  接单排名
    /// 
    public class MarketingSalesOrderRankingDto : MarketingSalesStatisticsDto
    {
        public int PageIndex { get; set; } = 1;
        public int PageSize { get; set; } = 5;
    }
    public class MarketingSalesVCListDto: MarketingSalesUserPageFuncDtoBase
    {
        public int PageIndex { get; set; } = 1;
        public int PageSize { get; set; } = 10;
        public int DiId { get; set; }
        public string Search { get; set; }
    }
    public class MarketingSalesVCOperrateDto : MarketingSalesUserPageFuncDtoBase
    {
        /// 
        /// opearate 时
        /// Id > 0 修改
        /// Id < 1 添加
        /// 
        public int Id { get; set; }
        /// diid
        /// 
        public int DiId { get; set; }
        /// 
        /// 拜访时间 - 开始 
        /// 
        public string BeginDt { get; set; }
        /// 
        /// 拜访时间 - 结束
        /// 
        public string EndDt { get; set; }
        /// 
        /// 客户单位
        /// 
        public string CustomerUnit { get; set; }
        /// 
        /// 客户工作
        /// 
        public string CustomerJob { get; set; }
        /// 
        /// 客户姓名
        /// 
        public string CustomerName { get; set; }
        /// 
        /// 客户联系方式
        /// 
        public string CustomerContact { get; set; }
        /// 
        /// 拜访内容
        /// 
        public string Remark { get; set; }
    }
    public class MarketingSalesVCSaveDto: MarketingSalesUserPageFuncDtoBase
    {
        public int DiId { get; set; }
        public List Items { get; set; }
    }
    public class MarketingSalesVCDelDto
    {
        public int UserId { get; set; }
        public int Id { get; set; }
    }
    #region YOY-Dto
    public class YOYDto
    {
        public int Year { get; set; }
    }
    #endregion
    public class StatisticsOPDto
    {
        public int Year { get; set; }
        /// 
        /// 1 年、2 月
        /// 
        public int Type { get; set; }
    }
    public class StatisticsBRCostDto : DtoBase
    {
        public int Year { get; set; }
        public string Search { get; set; }
    }
    public class StatisticsNowCityOfGroupDto : PortDtoBase
    {
        /// 
        /// 当前时间
        /// 
        public string Now { get; set; }
    }
}