using System.Collections.Generic;
namespace Sockeye.Models
{
    /// <summary>
    /// Interface for biz object models with standard fields
    /// used for batch operations etc
    /// </summary>
    internal interface ICoreBizObjectModel
    {
        //Note: almost all biz objects support all these propertys, the exceptions are extremely few so auto-implementing them here
        //this is not a public api so I don't care about the "contract" aspect, just practicality
        //didn't want to end up with a zillion interfaces for all manner of stuff
        public long Id { get; set; }
        public uint Concurrency { get; set; }
        // public string Name { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
        public string Name { get; set; }//any notification on these will require this so making it mandatory but will implement a workaround to return alt fields instead
        public bool? Active { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
        public string Wiki { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
        public string CustomFields { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
        // public List<string> Tags { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
        public List<string> Tags { get; set; }//Notification on objects require this so will implement workaround in object instead
        public Sockeye.Biz.SockType SType { get; }

    }

}