// Yavsc.ViewModels.Kyc/DeclarationInputModel.cs
namespace Yavsc.ViewModels.Kyc
{
using System.ComponentModel.DataAnnotations;
using Yavsc.Models.Kyc;
public class DeclarationInputModel
{
///
/// Email du sujet — transformé en token immédiatement, jamais persisté.
/// Obligatoire si ExternalToken absent.
///
[EmailAddress]
public string SubjectEmail { get; set; }
///
/// Token fourni par un tiers de confiance.
/// Prioritaire sur SubjectEmail si présent.
///
public string ExternalToken { get; set; }
[Required, MinLength(10), MaxLength(2000)]
public string Content { get; set; }
[Required]
public DeclarationSentiment Sentiment { get; set; }
// Validation croisée : l'un ou l'autre obligatoire
public bool IsValid => !string.IsNullOrEmpty(SubjectEmail)
|| !string.IsNullOrEmpty(ExternalToken);
}
}