namespace MyOffice.Web.Models.Motion
{
	using System.ComponentModel.DataAnnotations;
	using Core.Extensions;
	using MyOffice.Data.Models.Motions;

	public class MotionViewModel
	{
		public string? Id { get; set; }

		public string CategoryId { get; set; } = null!;
		public string Category { get; set; } = null!;
		[Required]
		public string? Name { get; set; }

		public bool AllowDelete { get; set; }
	}

	public static class MotionViewModelExtensions
	{
		public static MotionViewModel ToModel(this MotionAccount input)
		{
			return new MotionViewModel
			{
				Id = input.MotionGlobalId.ToShort(),
				CategoryId = input.Category.Id.ToShort(),
				Category = input.Category.Name,
				Name = input.MotionGlobal.Name,
				AllowDelete = !input.Motions.Any(),
			};
		}
	}
}
