using Knoks.Framework.DataAccess;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace Knoks.Core.Entities.Args
{
    public class UpdateUserArgs : IApiArgs
    {
        [JsonIgnore, AutoInitField]
        public string HttpRequestInfo { get; set; }

        [JsonIgnore, AutoInitField]
        public long UserId { get; set; }

        [JsonIgnore, AutoInitField, ProcParamIgnore]
        public int ApiConsumerId { get; set; }
        
        [JsonIgnore]
        public int UserTypeId { get; set; }

        // User Details
        public string Email { get; set; }
        public string Password { get; set; }
        
        // Personal Details
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public DateTime? BirthDate { get; set; }
        public string Address { get; set; }
        public string City { get; set; }
        public string Gender { get; set; }
        public string ZipCode { get; set; }
        public string PhonePrefix { get; set; }
        public string Phone { get; set; }
        public int? CountryId { get; set; }
        public byte? LanguageId { get; set; }
        public bool? IsUSTaxEntity { get; set; }
        public bool? KYCApproved { get; set; }
        public bool? PhoneVerified { get; set; }
        public bool? MailVerfied { get; set; }
        public bool? TermsOfServiceChecked { get; set; }
        //public bool? SuccessSequence { get; set; }
        public bool HasAvatar { get; set; }
        [ProcParamIgnore]
        public byte[] Content { get; set; }
        [ProcParamIgnore]
        public string ContentBase64 { get; set; }//base64 image
        public string UserName { get; set; }
    }
}
