using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; namespace MotoresArgentinosV2.Core.DTOs; public class CreateAdRequestDto { [Required] [Range(1, 3, ErrorMessage = "Tipo de vehículo inválido")] [JsonPropertyName("vehicleTypeID")] public int VehicleTypeID { get; set; } [Required] [JsonPropertyName("brandID")] public int BrandID { get; set; } [JsonPropertyName("modelID")] public int ModelID { get; set; } [Required] [StringLength(100, MinimumLength = 1, ErrorMessage = "La versión debe tener entre 1 y 100 caracteres.")] [RegularExpression(@"^[a-zA-Z0-9\s\-\.\(\),/áéíóúÁÉÍÓÚñÑ]+$", ErrorMessage = "Caracteres no permitidos en el nombre de versión.")] [JsonPropertyName("versionName")] public string VersionName { get; set; } = string.Empty; [Range(1900, 2100)] [JsonPropertyName("year")] public int Year { get; set; } [Range(0, 2000000)] [JsonPropertyName("km")] public int KM { get; set; } [Range(0, 999999999)] [JsonPropertyName("price")] public decimal Price { get; set; } [Required] [StringLength(3, MinimumLength = 3)] [RegularExpression(@"^(ARS|USD)$", ErrorMessage = "Moneda inválida.")] [JsonPropertyName("currency")] public string Currency { get; set; } = "ARS"; [StringLength(1000, ErrorMessage = "La descripción no puede superar los 1000 caracteres.")] [RegularExpression(@"^(?!.*