using System;
using System.Collections.Generic;

using BS.Shared;

namespace BeWo.Data.Entities
{
    public class Task : BeWoEntityBase
    {
        public static string PropertyName_CompletedDate = "CompletedDate";

        public static string PropertyName_CompletedNotice = "CompletedNotice";

        public static string PropertyName_Description = "Description";

        public static string PropertyName_DueDate = "DueDate";

        public static string PropertyName_EmployeeList = "EmployeeList";

        public static string PropertyName_SupportConcept = "SupportConcept";

        public static string PropertyName_Title = "Title";

        private DateTime? _CompletedDate;

        private string _CompletedNotice;

        private string _Description;

        private DateTime? _DueDate;

        private IList<Employee> _EmployeeList;

        private SupportConcept _SupportConcept;

        private string _Title;

        public Task()
        {
            this._Tid = TableID.Task;
            this.EmployeeList = new List<Employee>();
        }

        public virtual DateTime? CompletedDate
        {
            get
            {
                return this._CompletedDate;
            }

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

        public virtual string CompletedNotice
        {
            get
            {
                return this._CompletedNotice;
            }

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

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

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

        public virtual DateTime? DueDate
        {
            get
            {
                return this._DueDate;
            }

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

        public virtual IList<Employee> EmployeeList
        {
            get
            {
                return this._EmployeeList;
            }

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

        public virtual SupportConcept SupportConcept
        {
            get
            {
                return this._SupportConcept;
            }

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

        public virtual string Title
        {
            get
            {
                return this._Title;
            }

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