using Microsoft.EntityFrameworkCore; using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; namespace AsbCloudDb.Model { [Table("t_faq"), Comment("вопросы пользователей")] public class Faq : IId { public const int StateOpened = 0; public const int StateDeleted = 1; [Key] [Column("id"), Comment("Идентификатор")] public int Id { get; set; } /// /// автор вопроса /// [Column("id_author_question"), Comment("id автора вопроса")] public int IdAuthorQuestion { get; set; } [JsonIgnore] [ForeignKey(nameof(IdAuthorQuestion))] public virtual User AuthorQuestion { get; set; } = null!; /// /// автор ответа /// [Column("id_author_answer"), Comment("id автора ответа")] public int? IdAuthorAnswer { get; set; } [JsonIgnore] [ForeignKey(nameof(IdAuthorAnswer))] public virtual User? AuthorAnswer { get; set; } /// /// дата создания вопроса /// [Column("date_created_question"), Comment("Дата создания вопроса")] public DateTimeOffset DateCreatedQuestion { get; set; } /// /// дата ответа /// [Column("date_answer"), Comment("Дата ответа")] public DateTimeOffset? DateAnswer { get; set; } /// /// дата последнего редактирования вопроса /// [Column("date_last_edited_question"), Comment("Дата последнего редактирования вопроса")] public DateTimeOffset DateLastEditedQuestion { get; set; } /// /// текст вопроса /// [Column("question"), Comment("Текст вопроса")] public string Question { get; set; } = null!; /// /// текст ответа /// [Column("answer"), Comment("Текст ответа")] public string? Answer { get; set; } /// /// статус вопроса /// [Column("state"), Comment("Статус вопроса")] public int State { get; set; } = Faq.StateOpened; /// /// Счетчик повторений вопроса /// [Column("counter_question"), Comment("Счетчик повторений вопроса")] public int CounterQuestion { get; set; } = 1; /// /// Ключ заменяющего вопроса /// [Column("id_replacement_question"), Comment("Ключ заменяющего вопроса")] public int? IdReplacementQuestion { get; set; } /// /// Частый вопрос /// [Column("is_frequently"), Comment("Частый вопрос")] public bool IsFrequently { get; set; } = false; } }