Sube carpetas API, API.Tests, Application y Domain del Backend

This commit is contained in:
FrancoRu
2026-09-18 13:35:59 -03:00
parent bbb09554bb
commit 2eb4eeef03
572 changed files with 56405 additions and 0 deletions
@@ -0,0 +1,36 @@
using Application.Utils.Constants.Validation;
using Microsoft.AspNetCore.Http;
using System.ComponentModel.DataAnnotations;
namespace Application.DTOs.Venue.Request;
/// <summary>
/// Request model for creating a new venue.
/// </summary>
public class CreateVenueRequest
{
[Required(ErrorMessage = "The Name field is required.")]
[MaxLength(VenueFieldLengths.NameMaxLength)]
public required string Name { get; set; }
[Required(ErrorMessage = "The Address field is required.")]
[MaxLength(VenueFieldLengths.AddressMaxLength)]
public required string Address { get; set; }
/// <summary>
/// Optional photo of the venue, which must be JPEG or PNG; may be omitted.
/// </summary>
[DataType(DataType.Upload)]
public IFormFile? ImageFile { get; init; }
/// <summary>
/// Optional geographic latitude of the venue.
/// </summary>
public double? Latitude { get; set; }
/// <summary>
/// Optional geographic longitude of the venue.
/// </summary>
public double? Longitude { get; set; }
}
@@ -0,0 +1,21 @@
using Microsoft.AspNetCore.Http;
using System;
using System.ComponentModel.DataAnnotations;
namespace Application.DTOs.Venue.Request;
/// <summary>
/// Represents a request to update a venue's photo.
/// </summary>
public class UpdateVenuePhotoRequest
{
[Required(ErrorMessage = "The VenueId field is required.")]
public required Guid VenueId { get; init; }
/// <summary>
/// The photo image file to upload, which must be JPEG or PNG.
/// </summary>
[Required(ErrorMessage = "The image file is required.")]
[DataType(DataType.Upload)]
public required IFormFile ImageFile { get; init; }
}
@@ -0,0 +1,32 @@
using Application.Utils.Constants.Validation;
using Application.Utils.Extensions;
using System.ComponentModel.DataAnnotations;
namespace Application.DTOs.Venue.Request;
/// <summary>
/// Request model for updating an existing venue.
/// </summary>
public class UpdateVenueRequest
{
[Required(ErrorMessage = "The Name field is required.")]
[MaxLength(VenueFieldLengths.NameMaxLength)]
public required string Name { get; set; }
[Required(ErrorMessage = "The Address field is required.")]
[MaxLength(VenueFieldLengths.AddressMaxLength)]
public required string Address { get; set; }
[ImageReference]
public string? PhotoUrl { get; set; }
/// <summary>
/// Optional geographic latitude of the venue.
/// </summary>
public double? Latitude { get; set; }
/// <summary>
/// Optional geographic longitude of the venue.
/// </summary>
public double? Longitude { get; set; }
}
@@ -0,0 +1,30 @@
using Application.DTOs.Abstract.Response;
namespace Application.DTOs.Venue.Response;
/// <summary>
/// Response model for returning venue details.
/// </summary>
public class VenueResponse : BaseEntityResponse
{
public required string Name { get; set; }
/// <summary>
/// The unique, URL-friendly identifier used in public venue links.
/// </summary>
public required string Slug { get; set; }
public required string Address { get; set; }
public string? PhotoUrl { get; set; }
/// <summary>
/// Optional geographic latitude of the venue, for the public map link.
/// </summary>
public double? Latitude { get; set; }
/// <summary>
/// Optional geographic longitude of the venue, for the public map link.
/// </summary>
public double? Longitude { get; set; }
}