namespace PARR.API.Contracts.V1.Requests
{
    public class JobRequest
    {

        public required Guid TnkId { get; set; }

        public required Guid GroupId { get; set; }

        public required string Name { get; set; }

        public int? MinValueRelationships { get; set; }

        public int? MaxValueRelationships { get; set; }

        public bool? IsParentRelationships { get; set; }

        public required string TemplateNameMask { get; set; }

        public required string WorkGroupMask { get; set; }

        public required string WorkName { get; set; }

        public required string ResponseAreaMask { get; set; }

        #region AutoControl

        public bool IsEnableAutoControl { get; set; }

        public bool InitUsedTemplateState { get; set; }

        public bool InitUsedScheduleState { get; set; }

        #endregion

        public required List<UnitFilterRequest> UnitFilters { get; set; }
    }


    public class UnitFilterRequest
    {
        ///// <summary>
        ///// Id = null в методе Create, в Update обязателен
        ///// </summary>
        //public Guid? Id { get; set; }

        public required string UnitFilterMask { get; set; }

        public List<FieldFilterRequest>? FieldFilters { get; set; }

        public List<RelationshipFilterRequest>? RelationshipFilters { get; set; }
    }


    public class FieldFilterRequest
    {

        public Guid FieldId { get; set; }

        public string? ValueMask { get; set; }

        public bool IsInverse { get; set; } = false;

    }


    public class RelationshipFilterRequest
    {
        public Guid FieldId { get; set; }

        public bool? IsParent { get; set; }

        public string? ValueMask { get; set; }

        public bool? IsFullMatch { get; set; }

        public bool? IsInverse { get; set; }
    }
}