using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using Sockeye.Biz;

namespace Sockeye.PickList
{

    /*
         /// <param name="params">The SockType object type to select from</param>
            /// <param name="query">The query to filter the returned list by. Query text as provided will be case sensitively matched to all templated fields. 
            /// independentely of this, if an addition space separated string that begins with two consecutive periods is encountered that will be considered a separate match to the TAGS collection of each object
            /// So a tag query might be entered as "..zon some" which would match all tags LIKE 'zon' and template fields LIKE 'some'</param>
            /// <param name="inactive">Include inactive objects in the returned list </param>
            /// <param name="preIds">Return only specific items (for pre-selected items on forms) </param>
            /// <param name="variant">Some lists optionally take a variant string, e.g. User type "inside","outside" etc </param>
    */
    public sealed class PickListOptions
    {

        [FromBody]
        public SockType SockType { get; set; }

        [FromBody]
        public string Query { get; set; }

        [FromBody]
        public bool Inactive { get; set; }

        [FromBody]
        public List<long> PreselectedIds { get; set; }

        [FromBody]
        public string ListVariant { get; set; }

        [FromBody]
        public string Template { get; set; }

        public PickListOptions()
        {
            SockType = SockType.NoType;
            Query = string.Empty;
            Inactive = false;
            PreselectedIds = new List<long>();
            ListVariant = string.Empty;
            Template = string.Empty;
        }
    }

    public sealed class PickListSingleOptions
    {

        [FromBody]
        public SockType SockType { get; set; }

        [FromBody]
        public long Id { get; set; }

        [FromBody]
        public string ListVariant { get; set; }

        [FromBody]
        public string Template { get; set; }

        public PickListSingleOptions()
        {
            SockType = SockType.NoType;
            Id = 0;
            ListVariant = string.Empty;
            Template = string.Empty;
        }
    }

}