using System;

namespace CommonTools.Attributes
{
	/// <summary>
	/// Описание зависимости сущности от другой сущности (требуется для сохранения и загрузки данных)
	/// </summary>
	[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
	public class EntityDependencyAttribute : Attribute
	{
		/// <summary>
		/// Название класса от котрого зависит этот класс
		/// </summary>
		public string ClassName { get; set; }

		/// <summary>
		/// Название поле в этом классе, которое ссылает на другой класс (идентификатор)
		/// </summary>
		public string ColumnName { get; set; }

		/// <summary>
		/// Описание зависимости
		/// </summary>
		public string Description { get; set; }

		/// <summary>
		/// Конструктор
		/// </summary>
		/// <param name="className">Название класса от котрого зависит этот класс</param>
		/// <param name="columnName">Название поле в этом классе, которое ссылает на другой класс (идентификатор)</param>
		/// <param name="description">Описание зависимости</param>
		public EntityDependencyAttribute(string className, string columnName, string description)
		{
			ClassName = className;
			ColumnName = columnName;
			Description = description;
		}
	}
}