using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
namespace Pf2eModel.Model.Base.Source;
///
/// Связь между сущностью и источником.
///
public class EntitySource
{
///
/// Идентификатор связи.
///
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column(Order = 0)]
[Comment("Идентификатор")]
public int Id { get; set; }
///
/// Идентификатор сущности.
///
[Column(Order = 1)]
[Comment("Идентификатор сущности")]
public int EntityId { get; set; }
///
/// Идентификатор источника.
///
[Column(Order = 2)]
[Comment("Идентификатор источника")]
public int SourceId { get; set; }
///
/// Дополнительная информация о источнике, например, номер страницы, номер тома и т.д.
///
[Column(Order = 3)]
[MaxLength(255)]
[Comment("Номер страницы, эррата и т.д.")]
public string Suffix { get; set; } = null!;
///
/// Флаг, указывающий, что объект является частью ремастера.
///
[Column(Order = 4)]
[Comment("Флаг, указывающий, что объект является частью ремастера")]
public bool IsRemaster { get; set; }
///
/// Сущность, к которой относится источник.
///
[JsonIgnore]
public Entity Entity { get; set; } = null!;
///
/// Источник, к которому относится сущность.
///
public Source Source { get; set; } = null!;
}