//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;

namespace CommunityServer.Components
{
	/// <summary>
	/// Summary description for Favorite.
	/// </summary>
	public class Favorite
	{
		#region Private Members...
		private int favoriteID;
		private int settingsID;
		private int userID;
		private int itemID;
		private FavoriteType favoriteType;
		private ApplicationType applicationType = ApplicationType.Unknown;
		#endregion

		#region Constructors...
		/// <summary>
		/// Default constructor.
		/// </summary>
		public Favorite()
		{
		}


		/// <summary>
		/// Creates a full favorite.
		/// </summary>
		public Favorite(int favoriteID, int settingsID, int userID, int itemID, FavoriteType favoriteType, ApplicationType applicationType)
		{
			this.favoriteID = favoriteID;
			this.settingsID = settingsID;
			this.userID = userID;
			this.itemID = itemID;
			this.favoriteType = favoriteType;
			this.applicationType = applicationType;
		}
		#endregion

		#region Properties...
		/// <summary>
		/// The unique identifier for the favorite
		/// </summary>
		public int FavoriteID
		{
			get { return favoriteID; }
			set { favoriteID = value; }
		}


		/// <summary>
		/// The settings id for the favorite
		/// </summary>
		public int SettingsID
		{
			get { return settingsID; }
			set { settingsID = value; }
		}


		/// <summary>
		/// The user who owns the favorite
		/// </summary>
		public int UserID
		{
			get { return userID; }
			set { userID = value; }
		}


		/// <summary>
		/// The item id for the favorite (ie. sectionID, userID, postID)
		/// </summary>
		public int ItemID
		{
			get { return itemID; }
			set { itemID = value; }
		}


		/// <summary>
		/// The type of item (ie. Section, User, Post)
		/// </summary>
		public FavoriteType FavoriteType
		{
			get { return favoriteType; }
			set { favoriteType = value; }
		}


		/// <summary>
		/// The application where this favorite was created
		/// </summary>
		public ApplicationType ApplicationType
		{
			get { return applicationType; }
			set { applicationType = value; }
		}
		#endregion
	}
}
