using System.Collections.Generic;

using BS.Shared;

namespace BeWo.Data.Entities
{
    public class AssessmentSheetCategory : BeWoEntityBase
    {
        public static string PropertyName_Description = "Description";

        public static string PropertyName_Position = "Position";

        public static string PropertyName_PossibleValues = "PossibleValues";

        public static string PropertyName_Customers = "Customers";

        private string _Description;

        private int _Position;

        private IList<AssessmentSheetValue> _PossibleValues;
        
        private IList<Customer> _Customers;

        public AssessmentSheetCategory()
        {
            this._Tid = TableID.AssessmentSheetCategory;
            this._PossibleValues = new List<AssessmentSheetValue>();
        }

        public virtual string Description
        {
            get
            {
                return this._Description;
            }

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

        public virtual int Position
        {
            get
            {
                return this._Position;
            }

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

        public virtual ScopeTypeId? ScopeType { get; set; }

        public virtual IList<AssessmentSheetValue> PossibleValues
        {
            get
            {
                return this._PossibleValues;
            }

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

        public virtual IList<Customer> Customers
        {
            get { return _Customers; }
            set
            {
                if (base.AreDifferent(_Customers, value))
                    _Customers = value;
            }
        }
    }
}