using System;
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LHDN.CRM.Models.ViewModels
{
    public class CorrespondenceUpdateViewModel
    {
        public long TPID { get; set; }
        public bool? IsPelangganPembayarSama { get; set; }

        [Display(ResourceType = typeof(FieldName), Name = "TPCallerID")]
        [StringLength(12)]
        [RegularExpression(@"^[0-9 -]*$", ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "PhoneFormatInvalid")]
        public string InCallerID { get; set; }

        [Display(ResourceType = typeof(FieldName), Name = "TPInboundHPNo")]
        [StringLength(14)]
        [RegularExpression(@"^[0-9 -]*$", ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "PhoneFormatInvalid")]
        public string InTelefonMB { get; set; }
        public DateTime? InUpdateTelefonMBDate { get; set; }

        [Display(ResourceType = typeof(FieldName), Name = "TPInboundEmailMB")]
        [RegularExpression(@"^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$", ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "EmailFormatInvalid")]
        [StringLength(30)]        
        public string InEmailMB { get; set; }
        public DateTime? InUpdateEmailMBDate { get; set; }

        [Display(ResourceType = typeof(FieldName), Name = "TPOutboundHPNo")]
        [RegularExpression(@"^[0-9 -]*$", ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "PhoneFormatInvalid")]
        [StringLength(14)]
        public string OutTelefonBimbit { get; set; }
        
        [Display(ResourceType = typeof(FieldName), Name = "TPOutboundTelPejabat")]
        [RegularExpression(@"^[0-9 -]*$", ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "PhoneFormatInvalid")]
        [StringLength(14)]
        public string OutTelefonPejabat { get; set; }
        
        [Display(ResourceType = typeof(FieldName), Name = "TPOutboundTelJPDP")]
        [RegularExpression(@"^[0-9 -]*$", ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "PhoneFormatInvalid")]
        [StringLength(14)]
        public string OutTelefonJPDP { get; set; }            

        [Display(ResourceType = typeof(FieldName), Name = "TPOutboundEmailMB")]
        [RegularExpression(@"^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$", ErrorMessageResourceType = typeof(ValidationMessages), ErrorMessageResourceName = "EmailFormatInvalid")]
        [StringLength(30)]
        public string OutEmailMB { get; set; }

        public DateTime? OutUpdateTPDate { get; set; }

        [Display(ResourceType = typeof(FieldName), Name = "TPFBID")] 
        [StringLength(50)]
        public string FBID { get; set; }

        [Display(ResourceType = typeof(FieldName), Name = "TPFBDisplayName")]
        [StringLength(50)]
        public string FBDisplayName { get; set; }

        [Display(ResourceType = typeof(FieldName), Name = "TPTWID")]
        [StringLength(50)]
        public string TWID { get; set; }

        [Display(ResourceType = typeof(FieldName), Name = "TPTWDisplayName")]
        [StringLength(50)]
        public string TWDisplayName { get; set; }

        public byte[] ChangeStamp { get; set; }
    }
}
