using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using BS.Shared;

namespace BeWo.Data.Entities
{
    public class Contract : BeWoEntityBase
    {
        public static string PropertyName_ProbationPeriod = "ProbationPeriod";
        public static string PropertyName_WeeklyDays = "WeeklyDays";
        public static string PropertyName_CancellationPeriod = "CancellationPeriod";
        public static string PropertyName_EntryDate = "EntryDate";
        public static string PropertyName_ContractEndDate = "ContractEndDate";
        public static string PropertyName_HourlyRate = "HourlyRate";
        public static string PropertyName_WeeklyFLS = "WeeklyFLS";
        public static string PropertyName_WeeklyTotalHours = "WeeklyTotalHours";
        public static string PropertyName_LeaveDays = "LeaveDays";
        public static string PropertyName_EmployeeOid = "EmployeeOid";
        public static string PropertyName_EmploymentType = "EmploymentType";

        private decimal? _LeaveDays;
        private decimal? _WeeklyTotalHours;
        private decimal? _WeeklyFLS;
        private decimal? _HourlyRate;
        private DateTime? _EntryDate;
        private DateTime? _ContractEndDate;
        private int _CancellationPeriod;
        private int _ProbationPeriod;
        private int? _WeeklyDays;
        private long _EmployeeOid;
        private EmploymentType _EmploymentType;

        public Contract()
        {
            this._Tid = TableID.Contract;
        }

        public virtual EmploymentType EmploymentType
        {
            get { return this._EmploymentType; }

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

        public virtual decimal? LeaveDays
        {
            get { return _LeaveDays; }
            set
            {
                if (base.AreDifferent(_LeaveDays, value))
                    _LeaveDays = value;
            }
        }

        public virtual decimal? WeeklyTotalHours
        {
            get { return _WeeklyTotalHours; }
            set
            {
                if (base.AreDifferent(_WeeklyTotalHours, value))
                    _WeeklyTotalHours = value;
            }
        }

        public virtual decimal? WeeklyFLS
        {
            get { return _WeeklyFLS; }
            set
            {
                if (base.AreDifferent(_WeeklyFLS, value))
                    _WeeklyFLS = value;
            }
        }

        public virtual int ProbationPeriod
        {
            get { return _ProbationPeriod; }
            set
            {
                if (base.AreDifferent(_ProbationPeriod, value))
                    _ProbationPeriod = value;
            }
        }

        public virtual int? WeeklyDays
        {
            get { return _WeeklyDays; }
            set
            {
                if (base.AreDifferent(_WeeklyDays, value))
                    _WeeklyDays = value;
            }
        }

        public virtual int CancellationPeriod
        {
            get { return _CancellationPeriod; }
            set
            {
                if (base.AreDifferent(_CancellationPeriod, value))
                    _CancellationPeriod = value;
            }
        }

        public virtual DateTime? EntryDate
        {
            get { return _EntryDate; }
            set
            {
                if (base.AreDifferent(_EntryDate, value))
                    _EntryDate = value;
            }
        }

        public virtual DateTime? ContractEndDate
        {
            get { return _ContractEndDate; }
            set
            {
                if (base.AreDifferent(_ContractEndDate, value))
                    _ContractEndDate = value;
            }
        }

        public virtual decimal? HourlyRate
        {
            get { return _HourlyRate; }
            set
            {
                if (base.AreDifferent(_HourlyRate, value))
                    _HourlyRate = value;
            }
        }

        public virtual long EmployeeOid
        {
            get { return _EmployeeOid; }
            set
            {
                if (base.AreDifferent(_EmployeeOid, value))
                    _EmployeeOid = value;
            }
        }

        
    }
}
