using System;
using System.Text.Json.Serialization;
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace AsbCloudDb.Model
{
    [Table("t_file_mark"), Comment("Действия с файлами.")]
    public class FileMark
    {
        [Key]
        [Column("id")]
        public int Id { get; set; }
        
        [Column("id_file"), Comment("id файла")]
        public int IdFile { get; set; }
        
        [Column("id_mark_type"), Comment("0 - Согласован")]
        public int IdMarkType { get; set; }
        
        [Column("date_created"), Comment("Дата совершенного действия")]
        public DateTime DateCreated { get; set; }
        
        [Column("id_user"), Comment("id пользователя")]
        public int IdUser { get; set; }

        [Column("comment"), Comment("Комментарий")]
        [StringLength(255)]
        public string Comment { get; set; }
        
        [Column("is_deleted"), Comment("Помечен ли файл как удаленный")]
        public bool IsDeleted { get; set; }
        
        [JsonIgnore]
        [ForeignKey(nameof(IdUser))]
        public virtual User User { get; set; }
        
        [JsonIgnore]
        [ForeignKey(nameof(IdFile))]
        public virtual FileInfo FileInfo { get; set; }
    }
}