using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using Newtonsoft.Json; namespace Sockeye.Models { public class GlobalBizSettings { //This is the replacement for most of the Global object settings in v7 which has been subdivided further in v8 into backup / ops / notification and this general biz //this object is only interested in Business object related settings and configuration specifically public long Id { get; set; }//this is always 1 as there is only ever one single global biz object public uint Concurrency { get; set; } //Global settings //############# NOTE: OTHER AREAS THAT MUST MATCH CHANGES HERE ARE: //GlobalBizSettingsController::GetClientGlobalBizSettings //ServerGlobalBizSettings //Picklist and other searches override the normal case insensitive value //this is precautionarily added for non latinate languages where it could be an issue public bool FilterCaseSensitive { get; set; } //ADDRESS / CONTACT INFO reporting etc public string WebAddress { get; set; } public string EmailAddress { get; set; } public string Phone1 { get; set; } public string Phone2 { get; set; } //POSTAL ADDRESS public string PostAddress { get; set; } public string PostCity { get; set; } public string PostRegion { get; set; } public string PostCountry { get; set; } public string PostCode { get; set; } //PHYSICAL ADDRESS public string Address { get; set; } public string City { get; set; } public string Region { get; set; } public string Country { get; set; } public string AddressPostal { get; set; } public decimal? Latitude { get; set; } public decimal? Longitude { get; set; } //CUSTOMER ACCESS FEATURES AND SETTINGS public bool CustomerAllowUserSettings { get; set; } public List CustomerAllowUserSettingsInTags { get; set; } = new List(); public List AllTags(){ var t=new List(); t.AddRange(this.CustomerAllowUserSettingsInTags); return t; } public GlobalBizSettings() { Id = 1;//always 1 FilterCaseSensitive = false; } } //Used internally and at client end as extended rights atop roles system in relation only to Contact (customer type users) public record CustomerRightsRecord(bool UserSettings, long EntityId, bool EntityActive); } /* CREATE TABLE [dbo].[AGLOBAL]( [ACREATED] [datetime] NULL, [AMODIFIED] [datetime] NULL, [ACREATOR] [uniqueidentifier] NULL, [AMODIFIER] [uniqueidentifier] NULL, [ATAXPARTPURCHASEID] [uniqueidentifier] NULL, [ATAXPARTSALEID] [uniqueidentifier] NULL, [ATAXRATESALEID] [uniqueidentifier] NULL, [AALLOWSCHEDULECONFLICTS] [bit] NOT NULL, [ALANGUAGE] [nvarchar](255) NULL, [AUSEREGIONS] [bit] NOT NULL, [AWORKORDERCLOSEDSTATUS] [uniqueidentifier] NULL, [AWORKORDERSUMMARYTEMPLATE] [nvarchar](500) NOT NULL, [AUSEINVENTORY] [bit] NOT NULL, [AUNITNAMEFORMAT] [smallint] NULL, [ASCHEDULEABLEUSERNAMEFORMAT] [smallint] NULL, [ACJKINDEX] [bit] NOT NULL, [APARTFORMAT] [smallint] NULL, [AWORKORDERCLOSEBYAGE] [int] NOT NULL, [AUSENOTIFICATION] [bit] NOT NULL, [ANOTIFYSMTPHOST] [nvarchar](255) NULL, [ANOTIFYSMTPACCOUNT] [nvarchar](255) NULL, [ANOTIFYSMTPPASSWORD] [nvarchar](255) NULL, [ANOTIFYSMTPFROM] [nvarchar](255) NULL, [ACOORDINATESTYLE] [smallint] NULL, [ADEFAULTLATITUDE] [smallint] NULL, [ADEFAULTLONGITUDE] [smallint] NULL, [ADEFAULTSERVICETEMPLATEID] [uniqueidentifier] NULL, [AMAXFILESIZEMB] [int] NULL, [ALABORSCHEDUSERDFLTTIMESPAN] [int] NOT NULL, [ATRAVELDFLTTIMESPAN] [int] NOT NULL, [ANOTIFYENCRYPTION] [nvarchar](255) NULL, [ASMTPRETRY] [bit] NOT NULL, [AFORMCUSTOM] [ntext] NULL, [ASIGNATURETITLE] [ntext] NULL, [ASIGNATUREHEADER] [ntext] NULL, [ASIGNATUREFOOTER] [ntext] NULL, [ASCHEDUSERNONTODAYSTARTTIME] [datetime] NULL, [AMAINGRIDAUTOREFRESH] [bit] NOT NULL */