using System.ComponentModel.DataAnnotations; using RacePlannerApi.Models; namespace RacePlannerApi.DTOs; public class CreateEventRequest { [Required] [MaxLength(200)] public string Name { get; set; } = string.Empty; [MaxLength(2000)] public string Description { get; set; } = string.Empty; [Required] public DateTime EventDate { get; set; } [Required] [MaxLength(500)] public string Location { get; set; } = string.Empty; [MaxLength(100)] public string? Category { get; set; } public List Tags { get; set; } = new(); public int? MaxParticipants { get; set; } } public class UpdateEventRequest { [MaxLength(200)] public string? Name { get; set; } [MaxLength(2000)] public string? Description { get; set; } public DateTime? EventDate { get; set; } [MaxLength(500)] public string? Location { get; set; } public EventStatus? Status { get; set; } [MaxLength(100)] public string? Category { get; set; } public List? Tags { get; set; } public int? MaxParticipants { get; set; } } public class EventDto { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public DateTime EventDate { get; set; } public string Location { get; set; } = string.Empty; public string Status { get; set; } = string.Empty; public string? Category { get; set; } public List Tags { get; set; } = new(); public int? MaxParticipants { get; set; } public int CurrentRegistrations { get; set; } public DateTime CreatedAt { get; set; } public DateTime UpdatedAt { get; set; } public UserSummaryDto Organizer { get; set; } = null!; } public class EventFilterRequest { public string? Category { get; set; } public List? Tags { get; set; } public DateTime? FromDate { get; set; } public DateTime? ToDate { get; set; } public string? Status { get; set; } public Guid? OrganizerId { get; set; } } public class UserSummaryDto { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public string Email { get; set; } = string.Empty; }