forked from gongxuegit/tiku-backend.net
feat: add scoreline dynamic records
This commit is contained in:
@@ -176,6 +176,34 @@ public sealed record MajorCommand(
|
||||
int? Order,
|
||||
bool? IsActive);
|
||||
|
||||
public sealed record ScorelineFieldCommand(
|
||||
Guid? Id,
|
||||
Guid? RegionId,
|
||||
string? LegacyId,
|
||||
string FieldKey,
|
||||
string FieldName,
|
||||
string? FieldType,
|
||||
string? Unit,
|
||||
bool? IsFilter,
|
||||
bool? IsRequired,
|
||||
bool? IsVisible,
|
||||
bool? IsTrend,
|
||||
JsonElement Options,
|
||||
string? Placeholder,
|
||||
string? Description,
|
||||
int? Order);
|
||||
|
||||
public sealed record ScorelineRecordCommand(
|
||||
Guid? Id,
|
||||
Guid? RegionId,
|
||||
Guid? SchoolId,
|
||||
Guid? MajorId,
|
||||
string? LegacyId,
|
||||
int Year,
|
||||
string? SchoolName,
|
||||
string? MajorName,
|
||||
JsonElement FieldValues);
|
||||
|
||||
public sealed record VideoExplanationCommand(
|
||||
Guid? Id,
|
||||
Guid? SubjectId,
|
||||
@@ -305,6 +333,10 @@ public interface IDirectContentService
|
||||
Task<ContentManagementResult<School>> UpsertSchoolAsync(DirectContentActor actor, SchoolCommand command, CancellationToken cancellationToken = default);
|
||||
Task<CatalogList<Major>> GetMajorsAsync(DirectContentActor actor, AdminLimitFilter filter, CancellationToken cancellationToken = default);
|
||||
Task<ContentManagementResult<Major>> UpsertMajorAsync(DirectContentActor actor, MajorCommand command, CancellationToken cancellationToken = default);
|
||||
Task<CatalogList<ScorelineField>> GetScorelineFieldsAsync(DirectContentActor actor, AdminLimitFilter filter, CancellationToken cancellationToken = default);
|
||||
Task<ContentManagementResult<ScorelineField>> UpsertScorelineFieldAsync(DirectContentActor actor, ScorelineFieldCommand command, CancellationToken cancellationToken = default);
|
||||
Task<CatalogList<ScorelineRecord>> GetScorelineRecordsAsync(DirectContentActor actor, AdminLimitFilter filter, CancellationToken cancellationToken = default);
|
||||
Task<ContentManagementResult<ScorelineRecord>> UpsertScorelineRecordAsync(DirectContentActor actor, ScorelineRecordCommand command, CancellationToken cancellationToken = default);
|
||||
Task<CatalogList<int>> GetScorelineYearsAsync(DirectContentActor actor, AdminLimitFilter filter, CancellationToken cancellationToken = default);
|
||||
Task<CatalogList<ScorelineTrendItem>> GetScorelineTrendAsync(DirectContentActor actor, AdminLimitFilter filter, CancellationToken cancellationToken = default);
|
||||
Task<CatalogList<VideoManagementItem>> GetVideosAsync(DirectContentActor actor, AdminLimitFilter filter, CancellationToken cancellationToken = default);
|
||||
|
||||
60
Tiku.Application/Scoreline/ScorelineModels.cs
Normal file
60
Tiku.Application/Scoreline/ScorelineModels.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using System.Text.Json;
|
||||
using Tiku.Application.Catalog;
|
||||
|
||||
namespace Tiku.Application.Scoreline;
|
||||
|
||||
public sealed record ScorelineFilter(
|
||||
Guid TenantId,
|
||||
Guid? RegionId = null,
|
||||
Guid? SchoolId = null,
|
||||
Guid? MajorId = null,
|
||||
string? Keyword = null,
|
||||
int? Year = null,
|
||||
int? Page = null,
|
||||
int? PageSize = null,
|
||||
int? Limit = null,
|
||||
IReadOnlyCollection<ScorelineDynamicFilter>? DynamicFilters = null);
|
||||
|
||||
public sealed record ScorelineDynamicFilter(string Operator, string FieldKey, string Value);
|
||||
|
||||
public sealed record ScorelineFieldItem(
|
||||
Guid Id,
|
||||
string? LegacyId,
|
||||
Guid? RegionId,
|
||||
string FieldKey,
|
||||
string FieldName,
|
||||
string FieldType,
|
||||
string? Unit,
|
||||
bool IsFilter,
|
||||
bool IsRequired,
|
||||
bool IsVisible,
|
||||
bool IsTrend,
|
||||
JsonElement Options,
|
||||
string? Placeholder,
|
||||
string? Description,
|
||||
int SortOrder);
|
||||
|
||||
public sealed record ScorelineRecordItem(
|
||||
Guid Id,
|
||||
string? LegacyId,
|
||||
Guid? RegionId,
|
||||
Guid? SchoolId,
|
||||
Guid? MajorId,
|
||||
int Year,
|
||||
string? SchoolName,
|
||||
string? MajorName,
|
||||
JsonElement FieldValues);
|
||||
|
||||
public sealed record ScorelineRecordPage(
|
||||
int Page,
|
||||
int PageSize,
|
||||
int Total,
|
||||
IReadOnlyCollection<ScorelineRecordItem> Items);
|
||||
|
||||
public interface IScorelineQueryService
|
||||
{
|
||||
Task<CatalogList<ScorelineFieldItem>> GetFieldsAsync(ScorelineFilter filter, CancellationToken cancellationToken = default);
|
||||
Task<ScorelineRecordPage> GetRecordsAsync(ScorelineFilter filter, CancellationToken cancellationToken = default);
|
||||
Task<CatalogList<ScorelineRecordItem>> GetTrendAsync(ScorelineFilter filter, CancellationToken cancellationToken = default);
|
||||
Task<CatalogList<int>> GetYearsAsync(ScorelineFilter filter, CancellationToken cancellationToken = default);
|
||||
}
|
||||
Reference in New Issue
Block a user