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

namespace ZionRobot.Models.ZFlow
{
    public class Lawsuit
    {
        private int entityId;
        private int clientId;
        private int fieldOfLawId;
        private int id;
        private int entityFieldOfLawSubGroupId;
        private string openingDate;
        private string distributionDate;
        //private DateTime openingDate;
        //private DateTime distributionDate;
        private string folderNumber;
        private bool physical;
        private string client;
        private string accountable;
        private string fieldOfLaw;
        private string subject;
        private Adverse adverse;
        private string link;
        private string syncAction;
        private string syncId;
        private int commentId;
        private DateTime syncCreatedAt;
        private Dictionary<string, string> fields;

        public int EntityId { get => entityId; set => entityId = value; }
        public int ClientId { get => clientId; set => clientId = value; }
        public int FieldOfLawId { get => fieldOfLawId; set => fieldOfLawId = value; }
        public int Id { get => id; set => id = value; }
        public int EntityFieldOfLawSubGroupId { get => entityFieldOfLawSubGroupId; set => entityFieldOfLawSubGroupId = value; }
        public string OpeningDate { get => openingDate; set => openingDate = value; }
        public string DistributionDate { get => distributionDate; set => distributionDate = value; }
        //public DateTime OpeningDate { get => openingDate; set => openingDate = value; }
        //public DateTime DistributionDate { get => distributionDate; set => distributionDate = value; }
        public string FolderNumber { get => folderNumber; set => folderNumber = value; }
        public bool Physical { get => physical; set => physical = value; }
        public string Client { get => client; set => client = value; }
        public string Accountable { get => accountable; set => accountable = value; }
        public string FieldOfLaw { get => fieldOfLaw; set => fieldOfLaw = value; }
        public string Subject { get => subject; set => subject = value; }
        public Adverse Adverse { get => adverse; set => adverse = value; }
        public string Link { get => link; set => link = value; }
        public string SyncAction { get => syncAction; set => syncAction = value; }
        public string SyncId { get => syncId; set => syncId = value; }
        public int CommentId { get => commentId; set => commentId = value; }
        public DateTime SyncCreatedAt { get => syncCreatedAt; set => syncCreatedAt = value; }
        public Dictionary<string, string> Fields { get => fields; set => fields = value; }

        public Lawsuit()
        {
            fields = new Dictionary<string, string>();
        }
        public void UpdateUrl()
        {
            var result = new WebService.Lawsuit().UpdateUrl(this);
        }
        public void UpdateSycn(int syncStatus)
        {
            var result = new WebService.Lawsuit().UpdateSync(this, syncStatus);
        }
        /*
        public void createActivity()
        {
            try
            {
                var result = new WebService.Activity().ActivityCreate(this);
            }
            catch (Exception ex)
            {
                throw;
            }
        }

        public void UpdateActivityUrl()
        {
            var result = new WebService.Activity().UpdateActivityUrl(this);
        }
        public void UpdateActivityFieldValue(string name, string value)
        {
            var result = new WebService.Activity().UpdateActivityFieldValue(this, name, value);
        }
        
        public void UpdateActivityCaseUrl()
        {
            var result = new WebService.Activity().UpdateActivityCaseUrl(this);
        }
        public void UpdateActivitySycn(int syncStatus)
        {
            var result = new WebService.Activity().UpdateActivitySync(this, syncStatus);
        }
      
        public void CanceledActivity()
        {
            var result = new WebService.Activity().ActivityCanceled(this);
        }

        public void DoneActivity()
        {
            var result = new WebService.Activity().ActivityDone(this);
        }
        */
    }
}
