127 lines
3.0 KiB
C#
127 lines
3.0 KiB
C#
using System.Text.Json;
|
|
using Tiku.Domain.Content;
|
|
|
|
namespace Tiku.Application.Content;
|
|
|
|
public sealed record ContentNavigationFilter(
|
|
Guid TenantId,
|
|
Guid? RegionId = null,
|
|
Guid? EntryId = null,
|
|
Guid? NodeId = null,
|
|
Guid? CollectionId = null,
|
|
Guid? ParentId = null,
|
|
bool ParentWasSpecified = false,
|
|
bool ParentIsRoot = false,
|
|
string? EntryType = null,
|
|
string? CollectionType = null,
|
|
string? Mode = null,
|
|
string? MarkerType = null,
|
|
string? Keyword = null,
|
|
bool IncludeHidden = false,
|
|
bool IncludeInactive = false,
|
|
int? Limit = null);
|
|
|
|
public sealed record ContentEntryCatalogItem(
|
|
Guid Id,
|
|
Guid? RegionId,
|
|
string? LegacyId,
|
|
string EntryKey,
|
|
string Name,
|
|
ContentEntryType EntryType,
|
|
string? Icon,
|
|
string? Route,
|
|
string? Description,
|
|
ContentVisibility Visibility,
|
|
JsonElement AccessRules,
|
|
JsonElement LayoutConfig,
|
|
int Order);
|
|
|
|
public sealed record ContentNodeCatalogItem(
|
|
Guid Id,
|
|
Guid EntryId,
|
|
Guid? RegionId,
|
|
Guid? ParentId,
|
|
string? LegacyId,
|
|
string? NodeKey,
|
|
string Name,
|
|
ContentNodeType NodeType,
|
|
ContentMarkerType? MarkerType,
|
|
JsonElement MarkerConfig,
|
|
string? Path,
|
|
int Depth,
|
|
int Order,
|
|
bool IsSelectable,
|
|
bool IsLeaf,
|
|
JsonElement AccessRules,
|
|
JsonElement Metadata);
|
|
|
|
public sealed record QuestionCollectionCatalogItem(
|
|
Guid Id,
|
|
Guid? RegionId,
|
|
Guid? EntryId,
|
|
Guid? NodeId,
|
|
Guid? SubjectId,
|
|
Guid? CategoryId,
|
|
Guid? QuestionBankId,
|
|
string? LegacyId,
|
|
string Name,
|
|
QuestionCollectionType CollectionType,
|
|
QuestionCollectionSourceType SourceType,
|
|
JsonElement Filters,
|
|
int QuestionCount,
|
|
decimal? TotalScore,
|
|
int? DurationMinutes,
|
|
ContentStatus Status,
|
|
int Order,
|
|
JsonElement AccessRules,
|
|
JsonElement Metadata);
|
|
|
|
public sealed record PracticeBlueprintCatalogItem(
|
|
Guid Id,
|
|
Guid? RegionId,
|
|
Guid? EntryId,
|
|
Guid? NodeId,
|
|
Guid? CollectionId,
|
|
string? LegacyId,
|
|
string Name,
|
|
PracticeMode Mode,
|
|
PracticeAssemblyType AssemblyType,
|
|
int? QuestionLimit,
|
|
int? DurationMinutes,
|
|
decimal? TotalScore,
|
|
decimal? PassScore,
|
|
JsonElement Sections,
|
|
JsonElement Rules,
|
|
JsonElement AccessRules,
|
|
ContentStatus Status,
|
|
int Order);
|
|
|
|
public sealed record CollectionQuestionCatalogItem(
|
|
Guid Id,
|
|
string? LegacyId,
|
|
Guid? EntryId,
|
|
Guid? ContentNodeId,
|
|
Guid? PrimaryCollectionId,
|
|
Guid? SubjectId,
|
|
Guid? CategoryId,
|
|
Guid? NodeId,
|
|
string Type,
|
|
string? TypeLabel,
|
|
int? Difficulty,
|
|
JsonElement Tags,
|
|
JsonElement ExamMarkers,
|
|
string? MediaUrl,
|
|
bool HasVideoExplanation,
|
|
string? SectionKey,
|
|
decimal? Score,
|
|
int Order,
|
|
Guid? VersionId,
|
|
string? Content,
|
|
JsonElement Options,
|
|
int? CorrectOptionIndex,
|
|
JsonElement CorrectOptionIndices,
|
|
string? AnswerText,
|
|
string? Explanation,
|
|
JsonElement SubQuestions,
|
|
string? CodeLang,
|
|
string? CodeTemplate); |