using System.ComponentModel.DataAnnotations;

namespace Sockeye.Models
{

    /*
    ## NOTE: there is only one formcustom per socktype, the formkey is the socktype enum name
    
        This is a *GLOBAL* setting that applies to ALL users
        for personal form settings (such as used by schedule form) see FormUserOptions.cs

     - Like DataFilter, holds a JSON fragment in one field and the form key in another field
                - JSON FRAGMENT holds items that differ from stock, Hide not valid for non hideable core fields           
                    - FieldKey "fld"
                    - Hide "hide"
                    - Required "required"
                    - Type One of values from AyDataType but not tags or enum (bool, date, date time, decimal, number, p icklist(FUTURE), and text)
                 - e.g.: [{fld:"ltkeyfieldname",hide:"true/false",required:"true/false", type:"bool"},{fld:"ltkeyfieldname",hide:"true/false",required:"true/false", type:"text"]

     */
    public class FormCustom
    {
        public long Id { get; set; }//Only one formcustom per object type 
        public uint Concurrency { get; set; }
      
        [Required, MaxLength(255)]
        public string FormKey { get; set; }//max 255 characters ascii set 
        public string Template { get; set; }//JSON fragment of form customization template, top level is array.

    }
}
