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; } /// <summary> /// автор вопроса /// </summary> [Column("id_author_question"), Comment("id автора вопроса")] public int IdAuthorQuestion { get; set; } [JsonIgnore] [ForeignKey(nameof(IdAuthorQuestion))] public virtual User AuthorQuestion { get; set; } = null!; /// <summary> /// автор ответа /// </summary> [Column("id_author_answer"), Comment("id автора ответа")] public int? IdAuthorAnswer { get; set; } [JsonIgnore] [ForeignKey(nameof(IdAuthorAnswer))] public virtual User? AuthorAnswer { get; set; } /// <summary> /// дата создания вопроса /// </summary> [Column("date_created_question"), Comment("Дата создания вопроса")] public DateTimeOffset DateCreatedQuestion { get; set; } /// <summary> /// дата ответа /// </summary> [Column("date_answer"), Comment("Дата ответа")] public DateTimeOffset? DateAnswer { get; set; } /// <summary> /// дата последнего редактирования вопроса /// </summary> [Column("date_last_edited_question"), Comment("Дата последнего редактирования вопроса")] public DateTimeOffset DateLastEditedQuestion { get; set; } /// <summary> /// текст вопроса /// </summary> [Column("question"), Comment("Текст вопроса")] public string Question { get; set; } = null!; /// <summary> /// текст ответа /// </summary> [Column("answer"), Comment("Текст ответа")] public string? Answer { get; set; } /// <summary> /// статус вопроса /// </summary> [Column("state"), Comment("Статус вопроса")] public int State { get; set; } = Faq.StateOpened; /// <summary> /// Счетчик повторений вопроса /// </summary> [Column("counter_question"), Comment("Счетчик повторений вопроса")] public int CounterQuestion { get; set; } = 1; /// <summary> /// Ключ заменяющего вопроса /// </summary> [Column("id_replacement_question"), Comment("Ключ заменяющего вопроса")] public int? IdReplacementQuestion { get; set; } /// <summary> /// Частый вопрос /// </summary> [Column("is_frequently"), Comment("Частый вопрос")] public bool IsFrequently { get; set; } = false; } }