Files
Workshop10-API/Models/Workshop.cs
2025-08-27 18:15:12 -03:00

34 lines
1.1 KiB
C#

using System.ComponentModel.DataAnnotations;
namespace CampusWorkshops.Api.Models;
// Modelo mínimo para Workshop com validações
public class Workshop
{
// Identificador único
public Guid Id { get; set; } = Guid.NewGuid();
[Required(ErrorMessage = "Título é obrigatório")]
[StringLength(120, MinimumLength = 3, ErrorMessage = "Título deve ter entre 3 e 120 caracteres")]
public string? Title { get; set; }
[StringLength(2000, ErrorMessage = "Descrição não pode exceder 2000 caracteres")]
public string? Description { get; set; }
[Required(ErrorMessage = "Data de início é obrigatória")]
public DateTimeOffset StartAt { get; set; }
[Required(ErrorMessage = "Data de fim é obrigatória")]
public DateTimeOffset EndAt { get; set; }
// Location deve ser obrigatório se IsOnline == false (validado no controller)
[StringLength(200, ErrorMessage = "Localização não pode exceder 200 caracteres")]
public string? Location { get; set; }
[Range(1, 1000, ErrorMessage = "Capacidade deve estar entre 1 e 1000")]
public int Capacity { get; set; } = 1;
public bool IsOnline { get; set; }
}