using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

#nullable disable

namespace AsbCloudDb.Model
{
    [Table("t_user"), Comment("Пользователи облака")]
    public partial class User: IId
    {
        [Key]
        [Column("id")]
        public int Id { get; set; }

        [Column("id_customer")]
        public int? IdCustomer { get; set; }

        [Column("id_role")]
        public int? IdRole { get; set; }


        [Column("login")]
        [StringLength(255)]
        public string Login { get; set; }

        [Column("password_hash"), Comment("соленый хэш пароля.\nпервые 5 символов - соль")]
        [StringLength(255)]
        public string PasswordHash { get; set; }

        [Column("state"), Comment("состояние:\n100 - удален")]
        public short? State { get; set; }

        [Column("level")]
        public int? Level { get; set; }

        [Column("name")]
        [StringLength(255)]
        public string Name { get; set; }

        [Column("surname")]
        [StringLength(255)]
        public string Surname { get; set; }

        [Column("patronymic")]
        [StringLength(255)]
        public string Patronymic { get; set; }

        [ForeignKey(nameof(IdCustomer))]
        [InverseProperty(nameof(Model.Customer.Users))]
        public virtual Customer Customer { get; set; }

        [ForeignKey(nameof(IdRole))]
        [InverseProperty(nameof(Model.UserRole.Users))]
        public virtual UserRole Role { get; set; }
    }
}