namespace foodmarket.Application.Common;

/// <summary>Helper для контроллеров: проверка обязательных Guid-полей в DTO.
/// Без него отсутствующее в JSON поле десериализуется в Guid.Empty
/// (000…0), и ошибка проявляется только на SaveChanges как FK violation
/// 500 — что неудобно для UI. Этот helper возвращает payload для 400.</summary>
public static class RequiredGuid
{
    /// <summary>Возвращает первое пустое поле из набора (fieldName, value),
    /// или null если все заполнены. Контроллер сам решает что делать с null —
    /// обычно return BadRequest(new { error, field }).</summary>
    public static string? FirstMissing(params (string Field, Guid Value)[] fields)
    {
        foreach (var (name, value) in fields)
        {
            if (value == Guid.Empty) return name;
        }
        return null;
    }
}
