using System.ComponentModel.DataAnnotations;

using FluentValidation;

using Integrations.Data;

namespace Integrations.Components.Features.CreateModuleFeatureMnagement;

sealed class InputModel
{
	[Required]
	[MaxLength(100)]
	public string Name { get; set; } = "";

	[Required]
	[MaxLength(1000)]
	public string Description { get; set; } = "";

	[Required]
	[EnumDataType(typeof(ModuleType))]
	public ModuleType Type { get; set; } = ModuleType.Unknown;
}

public sealed class InputModelValidator : IValidator
{
	public bool CanValidateInstancesOfType(Type type)
	{
		throw new NotImplementedException();
	}

	public IValidatorDescriptor CreateDescriptor()
	{
		throw new NotImplementedException();
	}

	public FluentValidation.Results.ValidationResult Validate(IValidationContext context)
	{
		throw new NotImplementedException();
	}

	public Task<FluentValidation.Results.ValidationResult> ValidateAsync(IValidationContext context, CancellationToken cancellation = default)
	{
		throw new NotImplementedException();
	}
}