using Sockeye.Biz;
using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;

namespace Sockeye.Models
{

    public class Report
    {
        public long Id { get; set; }
        public uint Concurrency { get; set; }

        [Required]
        public string Name { get; set; }
        public bool Active { get; set; }
        public string Notes { get; set; }
        public AuthorizationRoles Roles { get; set; }
        [Required]
        public SockType SockType { get; set; }

        public bool IncludeWoItemDescendants {get;set;}


        public string Template { get; set; }
        public string Style { get; set; }
        public string JsPrerender { get; set; }
        public string JsHelpers { get; set; }
        [Required]
        public ReportRenderType RenderType { get; set; }

        //PDF options 
        //http://www.puppeteersharp.com/api/PuppeteerSharp.PdfOptions.html       
        public string HeaderTemplate { get; set; }
        public string FooterTemplate { get; set; }
        public bool DisplayHeaderFooter { get; set; }
        public ReportPaperFormat PaperFormat { get; set; }
        public bool Landscape { get; set; }
        public string MarginOptionsBottom { get; set; }
        public string MarginOptionsLeft { get; set; }
        public string MarginOptionsRight { get; set; }
        public string MarginOptionsTop { get; set; }
        public string PageRanges { get; set; }
        public bool PreferCSSPageSize { get; set; }
        public bool PrintBackground { get; set; }
        public decimal Scale { get; set; }



        public Report()
        {
            RenderType = ReportRenderType.PDF;
            SockType = SockType.NoType;
            Roles = AuthorizationRoles.All;
            Active = true;
            //these are pdf option defaults as per PuppeteerSharp
            DisplayHeaderFooter=false;
            PaperFormat=ReportPaperFormat.NotSet;
            Landscape=false;
            PreferCSSPageSize=false;
            PrintBackground=false;
            Scale=1;
        }

    }//eoc

}//eons
