using Microsoft.EntityFrameworkCore;
using PARR.Domain.Constants;
using PARR.Domain.Entities.Base;
using System.ComponentModel.DataAnnotations.Schema;

namespace PARR.Domain.Entities.Unit
{

    [Table("UnitInValues", Schema = DatabaseSchemas.Unit)]
    [Comment("Таблица связи ЭК с полями и со значениями")]
    [PrimaryKey(nameof(UnitId), nameof(FieldId), nameof(ValueId))]
    [Index(nameof(FieldId), nameof(ValueId))]
    [Index(nameof(UnitId), nameof(FieldId))]
    [Index(nameof(FieldId), nameof(UnitId))]
    public class UnitInValue : IBaseEntityDateModified, IBaseEntityDateCreated
    {
        public Guid UnitId { get; set; }

        public Guid FieldId { get; set; }

        public Guid ValueId { get; set; }

        public DateTimeOffset DateCreated { get; set; }

        public DateTimeOffset? DateModified { get; set; }


        [ForeignKey(nameof(UnitId))]
        public Unit? Unit { get; set; }

        [ForeignKey(nameof(FieldId))]
        public UnitField? Field { get; set; }

        [ForeignKey(nameof(ValueId))]
        public UnitFieldValue? Value { get; set; }
    }
}
