using BS.Shared;

namespace BeWo.Data.Entities
{
    public class BeWoFolder : BeWoEntityBase
    {
        public static string PropertyName_Data = "Name";

        //public static string PropertyName_Files = "Files";

        public static string PropertyName_ObjectOid = "ObjectOid";

        public static string PropertyName_ObjectTid = "ObjectTid";

        public static string PropertyName_ParentBeWoFolderOid = "ParentBeWoFolderOid";

        //public static string PropertyName_SubFolders = "SubFolders";

        //private IList<FileAttachmentInfo> _Files;

        private string _Name;

        private long? _ObjectOid;

        private long? _ParentBeWoFolderOid;
        
        private TableID _ObjectTid;

        //private IList<BeWoFolder> _SubFolders;

        public BeWoFolder()
        {
            this._Tid = TableID.FileAttachment;
        }

        //public virtual IList<FileAttachmentInfo> Files
        //{
        //    get
        //    {
        //        return this._Files ?? (this._Files = new List<FileAttachmentInfo>());
        //    }

        //    set
        //    {
        //        if (this.AreDifferent(this._Files, value))
        //        {
        //            this._Files = value;
        //        }
        //    }
        //}

        public virtual string Name
        {
            get
            {
                return this._Name;
            }

            set
            {
                if (this.AreDifferent(this._Name, value))
                {
                    this._Name = value;
                }
            }
        }

        public virtual long? ObjectOid
        {
            get
            {
                return this._ObjectOid;
            }

            set
            {
                if (this.AreDifferent(this._ObjectOid, value))
                {
                    this._ObjectOid = value;
                }
            }
        }

        public virtual TableID ObjectTid
        {
            get
            {
                return this._ObjectTid;
            }

            set
            {
                if (this._ObjectTid != value)
                {
                    this._ObjectTid = value;
                }
            }
        }

        public virtual long? ParentBeWoFolderOid
        {
            get
            {
                return this._ParentBeWoFolderOid;
            }

            set
            {
                if (this.AreDifferent(this._ParentBeWoFolderOid, value))
                {
                    this._ParentBeWoFolderOid = value;
                }
            }
        }

        //public virtual IList<BeWoFolder> SubFolders
        //{
        //    get
        //    {
        //        return this._SubFolders ?? (this._SubFolders = new List<BeWoFolder>());
        //    }

        //    set
        //    {
        //        if (this.AreDifferent(this._SubFolders, value))
        //        {
        //            this._SubFolders = value;
        //        }
        //    }
        //}
    }
}