using System.Text.Json;
using Tiku.Domain.Common;

namespace Tiku.Domain.Catalog;

public sealed class ScorelineField : AuditableTenantEntity
{
    public Guid? RegionId { get; set; }
    public string? LegacyId { get; set; }
    public string FieldKey { get; set; } = string.Empty;
    public string FieldName { get; set; } = string.Empty;
    public string FieldType { get; set; } = "text";
    public string? Unit { get; set; }
    public bool IsFilter { get; set; }
    public bool IsRequired { get; set; }
    public bool IsVisible { get; set; } = true;
    public bool IsTrend { get; set; }
    public JsonElement Options { get; set; } = JsonDefaults.Array();
    public string? Placeholder { get; set; }
    public string? Description { get; set; }
    public int SortOrder { get; set; } = 100;
}

public sealed class ScorelineRecord : AuditableTenantEntity
{
    public Guid? RegionId { get; set; }
    public Guid? SchoolId { get; set; }
    public Guid? MajorId { get; set; }
    public string? LegacyId { get; set; }
    public int Year { get; set; }
    public string? SchoolName { get; set; }
    public string? MajorName { get; set; }
    public JsonElement FieldValues { get; set; } = JsonDefaults.Object();
}