Files
ChatBot/ChatBot/Models/Validation/ChatMessageValidator.cs
Leonid Pershin 7a3a0172cf many fixes
2025-10-16 07:11:30 +03:00

34 lines
1.0 KiB
C#

using ChatBot.Common.Constants;
using ChatBot.Models.Dto;
using FluentValidation;
namespace ChatBot.Models.Validation
{
/// <summary>
/// Validator for ChatMessage
/// </summary>
public class ChatMessageValidator : AbstractValidator<ChatMessage>
{
public ChatMessageValidator()
{
RuleFor(x => x.Content)
.NotEmpty()
.WithMessage("Message content cannot be empty")
.MaximumLength(10000)
.WithMessage("Message content is too long (max 10000 characters)");
RuleFor(x => x.Role)
.NotEmpty()
.WithMessage("Message role cannot be empty")
.Must(role =>
role == ChatRoles.System
|| role == ChatRoles.User
|| role == ChatRoles.Assistant
)
.WithMessage(
$"Invalid message role. Must be one of: {ChatRoles.System}, {ChatRoles.User}, {ChatRoles.Assistant}"
);
}
}
}