using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
using Pf2e.Database.Model.Common;
using Pf2e.Database.Model.Enum;
namespace Pf2e.Database.Model.Structure.ClassRelation;
///
/// Набор элементов, связывающий класс и тренируемый навык.
///
public class ClassTraining
{
///
/// Идентификатор набора элементов, связывающий класс и тренируемый навык.
///
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column(Order = 1)]
[Comment("Идентификатор")]
public int Id { get; set; }
///
/// Идентификатор класса, к которому относится тренировка.
///
[Column(Order = 2)]
[Comment("Идентификатор класса")]
public int ClassId { get; set; }
///
/// Идентификатор тренируемого навыка, к которому относится тренировка.
///
[Column(Order = 3)]
[Comment("Идентификатор тренируемого навыка")]
public int? TrainingId { get; set; }
///
/// Ранг тренировки, определяющий уровень владения навыком.
///
[Column(Order = 4)]
[Comment("Ранг тренировки")]
public TrainingRank Rank { get; set; }
///
/// Класс, к которому относится тренировка.
///
[JsonIgnore]
public Class Class { get; set; } = null!;
///
/// Тренируемый навык, к которому относится тренировка.
///
public Training? Training { get; set; }
}