using OnlineSalesAutoCrop.CoreAPI.Models.Global;
using OnlineSalesAutoCrop.CoreAPI.Models.Objects;
using System.Collections;
using System.Collections.Generic;

namespace OnlineSalesAutoCrop.CoreAPI.Models.Responses
{
	public abstract class ResponseBase
	{
		public int ReturnStatus { get; set; }

		public List<string> ReturnMessage { get; set; } = [];
	}

	public abstract class TotalRowsResponseBase : ResponseBase
	{
		public int TotalRows { get; set; }
	}

	public abstract class ResponseBase1 : ResponseBase
	{
		public Hashtable ValidationErrors { get; set; } = [];
	}

	public abstract class BaseObjectResponse : ResponseBase
	{
		public string Code { get; set; }
		public string Name { get; set; }
		public EnumStatus Status { get; set; }
		public int SeqId { get; set; }
		public string StatusDetail => Status.GetDescription();
	}

	public class BooleanResponse : ResponseBase
	{
		public bool Value { get; set; }
	}

	public class StringResponse : ResponseBase
	{
		public string Value { get; set; }
	}

	public class IntResponse : ResponseBase
	{
		public int Value { get; set; }
	}

	public class KeywordsFromAudioResponse : ResponseBase
	{
		public List<FoundKeywordItem> FoundKeywords { get; set; }
	}
}