Sube carpetas API, API.Tests, Application y Domain del Backend
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Application.DTOs.MedicalRecord.Request;
|
||||
|
||||
/// <summary>
|
||||
/// Owner or admin request to approve or reject a player's medical record for a team and tournament.
|
||||
/// </summary>
|
||||
public class ReviewMedicalRecordRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// The player whose medical record is being reviewed.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public required Guid PlayerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The team the player is registered to for the season.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public required Guid TeamId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The tournament the record applies to.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public required Guid TournamentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// True to approve and make the player habilitado; false to reject.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public required bool Approve { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional reason, typically recorded when rejecting.
|
||||
/// </summary>
|
||||
[MaxLength(500)]
|
||||
public string? Reason { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Application.DTOs.MedicalRecord.Request;
|
||||
|
||||
/// <summary>
|
||||
/// Multipart request to upload a player's medical-record PDF for a specific team and tournament.
|
||||
/// </summary>
|
||||
public class UploadMedicalRecordRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// The player the medical record belongs to.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public required Guid PlayerId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The team the player is registered to for the season.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public required Guid TeamId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The tournament the record applies to.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public required Guid TournamentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The medical-record PDF to upload.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public required IFormFile File { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
using Domain.Entities.Models;
|
||||
using Domain.Enums;
|
||||
|
||||
using System;
|
||||
|
||||
namespace Application.DTOs.MedicalRecord.Response;
|
||||
|
||||
/// <summary>
|
||||
/// The medical-record eligibility state of a player's season registration, flagging not-habilitado players.
|
||||
/// </summary>
|
||||
public class MedicalRecordResponse
|
||||
{
|
||||
public required Guid PlayerId { get; set; }
|
||||
public required Guid TeamId { get; set; }
|
||||
public required Guid TournamentId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The medical-record status: Pending, Approved, or Rejected.
|
||||
/// </summary>
|
||||
public required MedicalRecordStatus Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// True only when the record is Approved.
|
||||
/// </summary>
|
||||
public required bool IsHabilitado { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Storage reference of the uploaded file, or null if none yet.
|
||||
/// </summary>
|
||||
public string? FileUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Original uploaded file name, or null if none yet.
|
||||
/// </summary>
|
||||
public string? FileName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Reason recorded on rejection, if any.
|
||||
/// </summary>
|
||||
public string? ReviewReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When the record was last approved or rejected, if ever.
|
||||
/// </summary>
|
||||
public DateTime? ReviewedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Projects a PlayerTeamRegistration into its medical-record view.
|
||||
/// </summary>
|
||||
public static MedicalRecordResponse FromRegistration(PlayerTeamRegistration registration)
|
||||
{
|
||||
return new MedicalRecordResponse
|
||||
{
|
||||
PlayerId = registration.PlayerId,
|
||||
TeamId = registration.TeamId,
|
||||
TournamentId = registration.TournamentId,
|
||||
Status = registration.MedicalRecordStatus,
|
||||
IsHabilitado = registration.IsHabilitado,
|
||||
FileUrl = registration.MedicalRecordFileUrl,
|
||||
FileName = registration.MedicalRecordFileName,
|
||||
ReviewReason = registration.MedicalRecordReviewReason,
|
||||
ReviewedAt = registration.MedicalRecordReviewedAt,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user