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

namespace PARR.Domain.Entities.Job
{
    [Table("RelationshipFilters", Schema = DatabaseSchemas.Job)]
    [Comment("Таблица фильтров связей ЭК")]
    [PrimaryKey(nameof(UnitFilterId), nameof(FieldId))]
    public class JobRelationshipFilter
    {
        public Guid UnitFilterId { get; set; }
        /// <summary>
        /// Родительская связь  - true,
        /// Дочерняя связь - false
        /// </summary>
        public bool IsParent { get; set; }

        public Guid FieldId { get; set; }

        public required string ValueMask { get; set; }

        /// <summary>
        /// Полное совпадение или хотябы одно
        /// true  - list.All()
        /// false - list.Any()
        /// </summary>
        public bool IsFullMatch { get; set; }

        /// <summary>
        /// Обратный фильтр, что у связи нет таких значений
        /// </summary>
        public bool IsInverse { get; set; }

        [ForeignKey(nameof(UnitFilterId))]
        public JobUnitFilter? UnitFilter { get; set; }


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