using System;
using System.Collections.Generic;
using System.Data;

namespace HRM.BO
{
    #region AssetCategory

    public class AssetCategory : BasicBaseObject
    {
        #region Constructor

        public AssetCategory()
        {
            Code = string.Empty;
            Name = string.Empty;
            ParentsID = string.Empty;
            Tier = 1;
            Parent = null;
            Status = EnumStatus.Active;
        }

        #endregion

        public string Code { get; set; }
        public string Name { get; set; }
        public int? ParentID { get; set; }

        public string ParentsID { get; set; }
        public int Tier { get; set; }
        public AssetCategory Parent { get; set; }
        public int PayrollTypeID { get; set; }
    }
    #endregion

    #region IAssetCategory Service

    public interface IAssetCategoryService
    {
        AssetCategory Get(int id);
        List<AssetCategory> GetAssetCategories();
        List<AssetCategory> Get();
        List<AssetCategory> GetParents(EnumStatus status, int payrollTypeID);
        List<AssetCategory> Get(EnumStatus status, int payrollTypeID);
        List<AssetCategory> GetByTier(int tier);
        int Save(AssetCategory item);
        void Delete(int id);
        List<AssetCategory> GetChield(int parentID);
        AssetCategory Get(string sCode);
        List<AssetCategory> Get(EnumStatus sts);

        string GetNextCode(int tier, string parentcode);
        string GetNextCode(int tier, int parentID);
        string GetNextCode(int nteir);

        List<AssetCategory> GetAllAssetCategories(int payrollTypeID, EnumStatus status, string code, string name);
        List<AssetCategory> GetAllAssetCategory(string code, string name);
    }

    #endregion
}