using System.ComponentModel.DataAnnotations;
using Tiku.Application.Scoreline;
namespace Tiku.Api.Contracts;
///
/// 分数线查询参数。
///
public sealed class ScorelineQueryDto
{
///
/// 租户编码。
///
[StringLength(100)]
public string? TenantCode { get; set; }
///
/// 地区 ID。
///
public Guid? RegionId { get; set; }
///
/// 院校 ID。
///
public Guid? SchoolId { get; set; }
///
/// 专业 ID。
///
public Guid? MajorId { get; set; }
///
/// 关键字。
///
[StringLength(100)]
public string? Keyword { get; set; }
///
/// 年份。
///
[Range(1900, 3000)]
public int? Year { get; set; }
///
/// 页码。
///
[Range(1, 10000)]
public int? Page { get; set; }
///
/// 每页数量。
///
[Range(1, 200)]
public int? PageSize { get; set; }
///
/// 返回数量上限。
///
[Range(1, 2000)]
public int? Limit { get; set; }
///
/// 版本化的不透明游标,仅用于游标分页接口。
///
[StringLength(2000)]
public string? Cursor { get; set; }
public ScorelineFilter ToFilter(
Guid tenantId,
IReadOnlyCollection? dynamicFilters = null)
{
return new ScorelineFilter(
tenantId,
RegionId,
SchoolId,
MajorId,
Keyword,
Year,
Page,
PageSize,
Limit,
dynamicFilters);
}
}