340 lines
8.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace YD_Event.Application.Event.Dtos;
/// <summary>
/// 裁判报名小程序码输出。
/// </summary>
public class JudgeRegistrationCodeOutput
{
/// <summary>
/// 裁判报名码。
/// </summary>
public string RegistrationCode { get; set; } = null!;
/// <summary>
/// JPEG 小程序码的 Data URL,可直接用于图片展示和下载。
/// </summary>
public string QrCodeDataUrl { get; set; } = null!;
/// <summary>
/// 扫码后打开的小程序页面。
/// </summary>
public string Page { get; set; } = null!;
}
/// <summary>
/// 裁判报名申请输出
/// </summary>
public class RefereeApplicationOutput
{
/// <summary>
/// 报名申请ID
/// </summary>
public long ApplicationId { get; set; }
/// <summary>
/// 关联的裁判档案ID
/// </summary>
public long RefereeId { get; set; }
/// <summary>
/// 裁判姓名
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// 所属地区(省/市/区)
/// </summary>
public string RegionName { get; set; } = null!;
/// <summary>
/// 裁判等级名称
/// </summary>
public string LevelName { get; set; } = null!;
/// <summary>
/// 裁判证件图片地址
/// </summary>
public string CertificateUrl { get; set; } = null!;
/// <summary>
/// 手机号
/// </summary>
public string Mobile { get; set; } = null!;
/// <summary>
/// 裁判角色位标记(RefereeRole 枚举值)
/// </summary>
public int Roles { get; set; }
/// <summary>
/// 裁判角色名称列表
/// </summary>
public List<string> RoleNames { get; set; } = new();
/// <summary>
/// 报名时间
/// </summary>
public DateTime CreatedTime { get; set; }
/// <summary>
/// 报名审核状态
/// </summary>
public int ApplicationStatus { get; set; }
/// <summary>
/// 报名审核状态名称
/// </summary>
public string ApplicationStatusName { get; set; } = null!;
/// <summary>
/// 审核备注
/// </summary>
public string? Remark { get; set; }
}
/// <summary>
/// 赛事裁判输出
/// </summary>
public class EventRefereeOutput : RefereeApplicationOutput
{
/// <summary>
/// 赛事裁判关系ID
/// </summary>
public long EventRefereeId { get; set; }
/// <summary>
/// 来源类型:1-后台添加,2-小程序报名
/// </summary>
public int SourceType { get; set; }
/// <summary>
/// 来源类型名称
/// </summary>
public string SourceTypeName { get; set; } = null!;
}
/// <summary>
/// 裁判分配看板输出
/// </summary>
public class JudgeAssignmentBoardOutput
{
/// <summary>
/// 赛事编排是否已确认
/// </summary>
public bool ArrangementConfirmed { get; set; }
/// <summary>
/// 裁判分配是否已提交
/// </summary>
public bool Submitted { get; set; }
/// <summary>
/// 项目分组列表
/// </summary>
public List<JudgeAssignmentProjectOutput> Projects { get; set; } = new();
}
/// <summary>
/// 裁判分配看板的项目分组
/// </summary>
public class JudgeAssignmentProjectOutput
{
/// <summary>
/// 赛事项目ID
/// </summary>
public long EventProjectId { get; set; }
/// <summary>
/// 项目名称
/// </summary>
public string ProjectName { get; set; } = null!;
/// <summary>
/// 计分规则名称
/// </summary>
public string RuleName { get; set; } = null!;
/// <summary>
/// 裁判大类分组(难度裁判、表现裁判、主裁),由计分规则的裁判席位配置解析而来
/// </summary>
public List<JudgeRoleSectionOutput> JudgeRoleSections { get; set; } = new();
/// <summary>
/// 项目下按场地归并后的裁判分配列表
/// </summary>
public List<JudgeAssignmentSessionOutput> Sessions { get; set; } = new();
}
/// <summary>
/// 裁判大类分组,对应计分规则里的一组裁判类型
/// </summary>
public class JudgeRoleSectionOutput
{
/// <summary>
/// 分组名称,如“难度裁判”
/// </summary>
public string Title { get; set; } = null!;
/// <summary>
/// 分组下的裁判类型列表
/// </summary>
public List<JudgeRoleSlotOutput> Slots { get; set; } = new();
}
/// <summary>
/// 裁判类型(如 DP 力量体操、DM 多摇、P 表现、T 主裁),一个类型可分配多名裁判
/// </summary>
public class JudgeRoleSlotOutput
{
/// <summary>
/// 裁判类型编码,如 DP、DM、DR、P、T
/// </summary>
public string Code { get; set; } = null!;
/// <summary>
/// 裁判类型名称,用于前端展示与校验提示
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// 该类型至少需要分配的裁判人数
/// </summary>
public int MinCount { get; set; }
/// <summary>
/// 该类型最多可分配的裁判人数,null 表示不限人数(成绩按平均值计算)
/// </summary>
public int? MaxCount { get; set; }
/// <summary>
/// 执裁该类型所需具备的裁判角色位标记(RefereeRole 枚举值)
/// </summary>
public int RoleFlag { get; set; }
}
/// <summary>
/// 项目场地裁判分配情况
/// </summary>
public class JudgeAssignmentSessionOutput
{
/// <summary>
/// 代表场次ID,用于定位同一项目、同一场地的裁判分配单元
/// </summary>
public long SessionId { get; set; }
/// <summary>
/// 分配单元名称(项目名称-场地名称)
/// </summary>
public string SessionName { get; set; } = null!;
/// <summary>
/// 场地名称
/// </summary>
public string VenueName { get; set; } = null!;
/// <summary>
/// 是否已分配裁判
/// </summary>
public bool Assigned { get; set; }
/// <summary>
/// 该项目场地下共用的裁判席位列表
/// </summary>
public List<JudgeAssignmentItemOutput> Assignments { get; set; } = new();
}
/// <summary>
/// 场次内的一个裁判席位
/// </summary>
public class JudgeAssignmentItemOutput
{
/// <summary>
/// 赛事裁判关系ID
/// </summary>
public long EventRefereeId { get; set; }
/// <summary>
/// 裁判席位编码(同一场次内唯一,如 DP1、DP2、T)
/// </summary>
public string JudgeRole { get; set; } = null!;
/// <summary>
/// 裁判类型编码(如 DP、DM、DR、P、T),对应计分规则中的裁判类型
/// </summary>
public string JudgeRoleType { get; set; } = null!;
/// <summary>
/// 裁判类型名称,取自计分规则;规则里查不到时回退显示类型编码
/// </summary>
public string JudgeRoleName { get; set; } = null!;
/// <summary>
/// 关联的裁判档案ID
/// </summary>
public long RefereeId { get; set; }
/// <summary>
/// 裁判姓名
/// </summary>
public string RefereeName { get; set; } = null!;
/// <summary>
/// 手机号
/// </summary>
public string Mobile { get; set; } = null!;
}
/// <summary>
/// 保存项目场地裁判分配输入
/// </summary>
public class SaveJudgeAssignmentsInput
{
/// <summary>
/// 赛事ID
/// </summary>
public long EventId { get; set; }
/// <summary>
/// 代表场次ID,用于定位同一项目、同一场地的裁判分配单元
/// </summary>
public long SessionId { get; set; }
/// <summary>
/// 该项目场地下共用的裁判分配列表
/// </summary>
public List<SaveJudgeAssignmentItem> Assignments { get; set; } = new();
}
/// <summary>
/// 一条裁判分配记录
/// </summary>
public class SaveJudgeAssignmentItem
{
/// <summary>
/// 裁判类型编码(如 DP、T)。
/// 同一类型可重复出现,表示该类型分配了多名裁判;兼容传入历史席位编码(DP1)。
/// </summary>
public string JudgeRole { get; set; } = null!;
/// <summary>
/// 赛事裁判关系ID,与裁判档案ID至少传一个
/// </summary>
public long EventRefereeId { get; set; }
/// <summary>
/// 裁判档案ID,与赛事裁判关系ID至少传一个
/// </summary>
public long RefereeId { get; set; }
}
/// <summary>
/// 提交赛事裁判分配输入
/// </summary>
public class SubmitJudgeAssignmentsInput
{
/// <summary>
/// 赛事ID
/// </summary>
public long EventId { get; set; }
}