using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Net;
using System.Text;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Xml.Serialization;
using System.Xml.Linq;
using System.Globalization;

namespace Tessitura.Service.Contract
{

 
    public partial class BatchErrorMessage 
    {
        public int RequestId {get; set;}
        
        public int StatusCode {get; set;}
        
        public string StatusDescription {get; set;}

        public List<ErrorMessage> ErrorMessages { get; set; }        
    }

    public partial class BatchErrorMessages : List<BatchErrorMessage>
    {
        public override string ToString()
        {
            var sb = new StringBuilder();
            foreach (var bem in this)
            {
                foreach (var errorMessage in bem.ErrorMessages)
                {
                    sb.Append(errorMessage.Description + Environment.NewLine);
                }
            }
            return sb.ToString();
        }
    }
  
    public partial class BatchRequest
    {
        public BatchRequest()
        {
            Requests = new List<Request>();
        }

        public List<Request> Requests { get; set; }
    }

    [KnownType(typeof(XElement))]
    public partial class Request
    {
        public int Id { get; set; }

        public string HttpMethod { get; set; }

        public string Uri { get; set; }

        public bool ContinueOnError { get; set; }

        public object Content { get; set; }

        public IList<DependsOnRequest> DependsOnRequests { get; set; }

        public string ReturnTypeString { get; set; }

        public bool Equals(Request other)
        {
            if (ReferenceEquals(null, other)) return false;
            if (ReferenceEquals(this, other)) return true;
            return other.Id == Id;
        }

        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj)) return false;
            if (ReferenceEquals(this, obj)) return true;
            if (obj.GetType() != typeof (Request)) return false;
            return Equals((Request) obj);
        }

        public override int GetHashCode()
        {
            return Id;
        }
    }

    public partial class DependsOnRequest
    {
        public int? Id { get; set; }

        public string SourcePath { get; set; }

        public string TargetPath { get; set; }
        
        public bool IsUrlDependency { get; set; }
    }
  
    public partial class BatchResponse
    {
        public List<Response> Responses { get; set; }

        public bool BatchFailed { get; set; }
    }

    public partial class Response
    {
        public int RequestId { get; set; }

        public object ResponseObject { get; set; }

        public HttpStatusCode StatusCode { get; set; }

        public List<ErrorMessage> ErrorMessages { get; set; }
    }
  
    public partial class ErrorMessage
    {
        public string Code { get; set; }

        public string Description { get; set; }

        public string Details { get; set; }

        public string ErrorPath { get; set; }

        public override string ToString()
        {
            var msgParts = new List<string>();
            if (!string.IsNullOrWhiteSpace(Code))
            {
                msgParts.Add(Code);
            }
            if (!string.IsNullOrWhiteSpace(ErrorPath))
            {
                msgParts.Add(ErrorPath);
            }
            if (!string.IsNullOrWhiteSpace(Description))
            {
                msgParts.Add(Description);
            }
            return string.Join("; ", msgParts);
        }
    }

    public partial class ErrorMessages : List<ErrorMessage>
    {
        public override string ToString()
        {
            var sb = new StringBuilder();
            sb.Append("Validation Errors : ");
            foreach (var errorMessage in this)
            {
                sb.AppendLine(errorMessage.ToString());
            }
            return sb.ToString();
        }
    }
  
    public partial class NoResponse
    {
        
    }
  
    public partial class ObservableObject : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        protected void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
        {
            var handler = PropertyChanged;
            handler?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
  
    public partial class UpgradeLogs : List<UpgradeLog>
    {
    }

    public partial class UpgradeLog
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = true, Manual = true)]
        public int ScriptId { get; set; }

        [Documentation(Required = false, MaxLength = 16)]
        public string Version { get; set; }

        [Documentation(Required = true, FKTable = "TR_UPGRADE_CATEGORY", FKColumn = "id", FKResourceName = "UpgradeCategories")]
        public UpgradeCategorySummary UpgradeCategorySummary { get; set; }

        [Documentation(Required = false)]
        public int? HotFixNumber { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ReleaseDescription { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class DocumentationAttribute : System.Attribute
    {
        public bool RequiredForPost { get; set; }
        public string NotesForPost { get; set; }
        public bool RequiredForPut { get; set; }
        public string NotesForPut { get; set; }
        public bool Required { get; set; }
        public int MaxLength { get; set; }
        public string Description { get; set; }
        public string FKTable { get; set; }
        public string FKResourceName { get; set; }
        public string FKColumn { get; set; }
        public bool Manual { get; set; }
    }
  
    public partial class ListCriteria
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public int KeywordId { get; set; }

        //[DataMember]
        //[Documentation(Required = true)]
        //public int ListId { get; set; }

        public string Operator { get; set; }

        public string Value1 { get; set; }

        public string Value2 { get; set; }

        [Documentation(Required = true)]
        public string IsTop { get; set; }

        public string Condition { get; set; }

        public string ExtractionFlag { get; set; }

        public bool IncludePrimaryAffiliation { get; set; }

        public bool Inactive { get; set; }

    }

    public partial class ListCriterias : List<ListCriteria>
    {
        
    }
  
    [Serializable]
    public enum ControlGroupPermission
    {
        Read,
        ReadWrite,
    }
  
    public partial class DatabaseCheckRequest
    {
        public string ServerName { get; set; }
    }
  
    public partial class DatabaseCheckResponse
    {
        public bool Match { get; set; }
    }
  
    public partial class Default
    {
        public string Cached { get; set; }

        public DateTime CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public string Value { get; set; }

        public string Description { get; set; }

        public string Id { get; set; }

        public DateTime UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public string ParentTable { get; set; }
    }
  
    public partial class Dependencies : List<Dependency>
    {
    }
  
    public partial class Dependency
    {
        public bool Success { get; set; }

        public string Name { get; set; }

        public string Description { get; set; }
    }
  
    public partial class Diagnostic
    {
        public string Description { get; set; }

        public int Id { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreatedBy { get; set; }
    }
  
    public partial class Document
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public byte[] Contents { get; set; }

        [Documentation(Required = true, MaxLength = 255)]
        public string FileName { get; set; }
    }
  
    public partial class Documents : List<Document>
    {
    }
  
    public partial class DocumentSettings
    {
        public int MaxRequestLength { get; set; }

        public int MaxAllowedContentLength { get; set; }

        public int MaxReceivedMessageSize { get; set; }

        public int MaxStringContentLength { get; set; }

        public int MaxArrayLength { get; set; }
    }
  
    public partial class DocumentSummaries : List<DocumentSummary>
    {
    }
  
    public partial class DocumentSummary
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, MaxLength = 255)]
        public string FileName { get; set; }

        [Documentation(Required = false)]
        public DateTime? UpdatedDateTime { get; set; }
    }
  
    public partial class EmailAttachment
    {
        public string Name { get; set; }

        public byte[] AttachmentBytes { get; set; }
    }
  
    public partial class EmailAttachments : List<EmailAttachment>
    {
    }
  
    public partial class EmailSendRequest
    {
        public string RecipientAddress { get; set; }

        public string HtmlBody { get; set; }

        public string PlainTextBody { get; set; }

        public string FromAddress { get; set; }

        public string Subject { get; set; }

        public bool SendAsHtml { get; set; }

        public int EmailProfileId { get; set; }

        public EmailAttachments Attachments { get; set; }
    }
  
    [Serializable]
    public partial class Entity
    {
        public int Id { get; set; }
    }
  
    public partial class EntitySummaries : List<EntitySummary>
    {
    }
  
    [Serializable]
    public partial class EntitySummary
    {
        public int Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class NameValue
    {
        public string Name { get; set; }

        public string Value { get; set; }
    }
  
    public partial class NameValues : List<NameValue>
    {
    }
  
    [AttributeUsage(AttributeTargets.Property)]
    public partial class RelationAttribute : System.Attribute
    {
        public RelationAttribute(string linkName)
        {
            Name = linkName;
        }

        public string Name { get; private set; }
    }
  
    [AttributeUsage(AttributeTargets.Property)]
    public partial class ResourceAttribute : System.Attribute
    {
        public ResourceAttribute(string resourceName)
        {
            Name = resourceName;
        }

        public string Name { get; private set; }
    }
  
    public partial class SeatServerStatus
    {
        public bool IsListening { get; set; }

        public int ConnectionsCount { get; set; }
    }
  
    public partial class Status
    {
        public bool Success { get; set; }

        public DateTime TimeStamp { get; set; }

        public Dependencies Dependencies { get; set; }
    }
  
    public partial class User
    {
        public string Id { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

        public bool Inactive { get; set; }

        public int? WorkerConstituentId { get; set; }

        public bool Locked { get; set; }    
    }
  
    public partial class Users : List<User>
    {
    }
  
    public partial class AccountResponse : ObservableObject
    {
        private PaymentMethodGroupSummary paymentMethodGroup;
        private string accountNumber;
        private AccountTypeSummary accountType;
        private string bankIdentifierCode;
        private int? cardExpiryMonth;
        private int? cardExpiryYear;
        private int constituentId;
        private string createdBy;
        private DateTime? createdDateTime;
        private string createLocation;
        private int id;
        private bool inactive;
        private string mandateNumber;
        private int? mandateType;
        private string merchantId;
        private string name;
        private string numberFirstSix;
        private string numberLastFour;
        private DateTime signatureDate;
        private string token;
        private string updatedBy;
        private DateTime? updatedDateTime;

        public string AccountNumber
        {
            get { return accountNumber; }
            set
            {
                accountNumber = value;
                NotifyPropertyChanged();
            }
        }

        public AccountTypeSummary AccountType
        {
            get { return accountType; }
            set
            {
                accountType = value;
                NotifyPropertyChanged();
            }
        }

        public string BankIdentifierCode
        {
            get { return bankIdentifierCode; }
            set
            {
                bankIdentifierCode = value;
                NotifyPropertyChanged();
            }
        }

        public int? CardExpiryMonth
        {
            get { return cardExpiryMonth; }
            set
            {
                cardExpiryMonth = value;
                NotifyPropertyChanged();
            }
        }

        public int? CardExpiryYear
        {
            get { return cardExpiryYear; }
            set
            {
                cardExpiryYear = value;
                NotifyPropertyChanged();
            }
        }

        public int ConstituentId
        {
            get { return constituentId; }
            set
            {
                constituentId = value;
                NotifyPropertyChanged();
            }
        }

        public string CreatedBy
        {
            get { return createdBy; }
            set
            {
                createdBy = value;
                NotifyPropertyChanged();
            }
        }

        public DateTime? CreatedDateTime
        {
            get { return createdDateTime; }
            set
            {
                createdDateTime = value;
                NotifyPropertyChanged();
            }
        }

        public string CreateLocation
        {
            get { return createLocation; }
            set
            {
                createLocation = value;
                NotifyPropertyChanged();
            }
        }

        public int Id
        {
            get { return id; }
            set
            {
                id = value;
                NotifyPropertyChanged();
            }
        }

        public bool Inactive
        {
            get { return inactive; }
            set
            {
                inactive = value;
                NotifyPropertyChanged();
            }
        }

        public string MandateNumber
        {
            get { return mandateNumber; }
            set
            {
                mandateNumber = value;
                NotifyPropertyChanged();
            }
        }

        public int? MandateType
        {
            get { return mandateType; }
            set
            {
                mandateType = value;
                NotifyPropertyChanged();
            }
        }

        public string MerchantId
        {
            get { return merchantId; }
            set
            {
                merchantId = value;
                NotifyPropertyChanged();
            }
        }

        public string Name
        {
            get { return name; }
            set
            {
                name = value;
                NotifyPropertyChanged();
            }
        }

        public string NumberFirstSix
        {
            get { return numberFirstSix; }
            set
            {
                numberFirstSix = value;
                NotifyPropertyChanged();
            }
        }

        public string NumberLastFour
        {
            get { return numberLastFour; }
            set
            {
                numberLastFour = value;
                NotifyPropertyChanged();
            }
        }

        public PaymentMethodGroupSummary PaymentMethodGroup
        {
            get { return paymentMethodGroup; }
            set
            {
                paymentMethodGroup = value; 
                NotifyPropertyChanged();
            }
        }

        public DateTime SignatureDate
        {
            get { return signatureDate; }
            set
            {
                signatureDate = value;
                NotifyPropertyChanged();
            }
        }

        public string Token
        {
            get { return token; }
            set
            {
                token = value;
                NotifyPropertyChanged();
            }
        }

        public string UpdatedBy
        {
            get { return updatedBy; }
            set
            {
                updatedBy = value;
                NotifyPropertyChanged();
            }
        }

        public DateTime? UpdatedDateTime
        {
            get { return updatedDateTime; }
            set
            {
                updatedDateTime = value;
                NotifyPropertyChanged();
            }
        }
    }
  
    public partial class AccountsResponse : List<AccountResponse>
    {
    }
  
    [Serializable]
    public partial class Address
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public Entity AffiliatedConstituent { get; set; }

        [Documentation(Required = false, FKTable = "TR_SIGNOR", FKColumn = "id", FKResourceName = "SalutationTypes")]
        public SalutationTypeSummary AltSalutationType { get; set; }

        [Documentation(Required = true, FKTable = "TR_ADDRESS_TYPE", FKColumn = "id", FKResourceName = "AddressTypes")]
        public AddressTypeSummary AddressType { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string City { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(Required = false, MaxLength = 8)]
        public string DeliveryPoint { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDate { get; set; }

        [Documentation(Required = false)]
        public int? GeoArea { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public bool? Label { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 12)]
        public string Months { get; set; }

        [Documentation(Required = false)]
        public int? NcoaAction { get; set; }

        [Documentation(Required = false)]
        public int? NcoaSession { get; set; }

        [Documentation(Required = false, MaxLength = 10)]
        public string PostalCode { get; set; }

        public string PostalCodeFormatted { get; set; }

        [Documentation(Required = true)]
        public bool? PrimaryIndicator { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDate { get; set; }

        [Documentation(Required = false, FKTable = "TR_STATE", FKResourceName = "States", FKColumn = "id", Manual = true)]
        public StateSummary State { get; set; }

        [Documentation(Required = true, MaxLength = 64)]
        public string Street1 { get; set; }

        [Documentation(Required = false, MaxLength = 64)]
        public string Street2 { get; set; }

        [Documentation(Required = false, MaxLength = 64)]
        public string Street3 { get; set; }

        [Documentation(Required = false, FKTable = "TR_COUNTRY", FKColumn = "id", FKResourceName = "Countries")]
        public CountrySummary Country { get; set; }

        public bool EditIndicator { get; set; }

        public bool IsFromAffiliation { get; set; }
    }
  
    public partial class AddressContactPoint
    {
        public int? Id { get; set; }

        public string Street1 { get; set; }

        public string Street2 { get; set; }

        public string Street3 { get; set; }

        public string City { get; set; }

        public string StateCode { get; set; }

        public string PostalCode { get; set; }

        public int? CountryId { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class AddressDetail
    {
        public int? Id { get; set; }

        public Entity AffiliatedConstituent { get; set; }

        public SalutationTypeSummary AltSalutationType { get; set; }

        public AddressTypeSummary AddressType { get; set; }

        public string City { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public Entity Constituent { get; set; }

        public string DeliveryPoint { get; set; }

        public DateTime? EndDate { get; set; }

        public int? GeoArea { get; set; }

        public bool? Inactive { get; set; }

        public bool Label { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public string Months { get; set; }

        public int? NcoaAction { get; set; }

        public int? NcoaSession { get; set; }

        public string PostalCode { get; set; }

        public string PostalCodeFormatted { get; set; }

        public bool? PrimaryIndicator { get; set; }

        public DateTime? StartDate { get; set; }

        public StateSummary State { get; set; }

        public string Street1 { get; set; }

        public string Street2 { get; set; }

        public string Street3 { get; set; }

        public CountrySummary Country { get; set; }

        public bool EditIndicator { get; set; }

        public int? PhoneId1 { get; set; }

        public string PhoneNumber1 { get; set; }

        public string PhoneNumber1Formatted { get; set; }

        public bool? AllowTelemarketing1 { get; set; }

        public string DayEveningIndicator1 { get; set; }

        public string PhoneSearch1 { get; set; }

        public bool EditIndicator1 { get; set; }

        public DateTime? UpdatedDateTime1 { get; set; }

        public int? PhoneId2 { get; set; }

        public string PhoneNumber2 { get; set; }

        public string PhoneNumber2Formatted { get; set; }

        public bool? AllowTelemarketing2 { get; set; }

        public string DayEveningIndicator2 { get; set; }

        public string PhoneSearch2 { get; set; }

        public bool EditIndicator2 { get; set; }

        public DateTime? UpdatedDateTime2 { get; set; }

        public int? PhoneId3 { get; set; }

        public string PhoneNumber3 { get; set; }

        public string PhoneNumber3Formatted { get; set; }

        public bool? AllowTelemarketing3 { get; set; }

        public string DayEveningIndicator3 { get; set; }

        public string PhoneSearch3 { get; set; }

        public bool EditIndicator3 { get; set; }

        public DateTime? UpdatedDateTime3 { get; set; }
    }
  
    public partial class AddressDetails : List<AddressDetail>
    {
    }
  
    public partial class Addresses : List<Address>
    {
    }
  
    public partial class AddressSummary
    {
        public int? Id { get; set; }

        public AddressTypeSummary AddressType { get; set; }
    }
  
    public partial class Affiliation
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_AFFILIATION_TYPE", FKColumn = "id", FKResourceName = "AffiliationTypes")]
        public AffiliationTypeSummary AffiliationType { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string AffiliatedName { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public DateTime? EndDate { get; set; }

        public Entity GroupConstituent { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public bool? Inactive { get; set; }

        public Entity IndividualConstituent { get; set; }

        [Documentation(Required = true)]
        public bool? IsAllowedToTransact { get; set; }

        [Documentation(Required = true)]
        public bool? IsIncludedInSearchResults { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, MaxLength = 1024)]
        public string Note { get; set; }

        [Documentation(Required = true)]
        public string IndividualConstituentName { get; set; }

        [Documentation(Required = true)]
        public string GroupConstituentName { get; set; }

        [Documentation(Required = false)]
        public decimal? Salary { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDate { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string Title { get; set; }

        [Documentation(Required = true)]
        public bool PrimaryIndicator { get; set; }

        public bool EditIndicator { get; set; }

        [Documentation(Required = false)]
        public int? NameIndicator { get; set; }

        [Documentation(Required = false, FKTable = "T_ADDRESS", FKColumn = "address_no", FKResourceName = "Addresses")]
        public int? AddressId { get; set; }

        [Documentation(Required = false, FKTable = "T_EADDRESS", FKColumn = "eaddress_no", FKResourceName = "ElectronicAddresses")]
        public int? ElectronicAddressId { get; set; }

        [Documentation(Required = false, FKTable = "TX_CUST_SAL", FKColumn = "salutation_no", FKResourceName = "Salutations")]
        public int? SalutationId { get; set; }
    }
  
    public partial class AffiliationIdsToBeDeleted : List<int>
    {
    }
  
    public partial class AffiliationInfo
    {
        public int? Id { get; set; }

        public AffiliationTypeSummary AffiliationType { get; set; }

        public bool? Inactive { get; set; }

        public bool? IsAllowedToTransact { get; set; }

        public bool? IsIncludedInSearchResults { get; set; }

        public DateTime? StartDate { get; set; }

        public DateTime? EndDate { get; set; }

        public int? NameIndicator { get; set; }

        public string Note { get; set; }

        public decimal? Salary { get; set; }

        public string Title { get; set; }

        public bool PrimaryIndicator { get; set; }

        public bool EditIndicator { get; set; }

        public int ConstituentId { get; set; }

        public int? RelatedConstituentId { get; set; }

        public bool RelatedConstituentInactive { get; set; }

        public string RelatedConstituentLastName { get; set; }

        public string RelatedConstituentMiddleName { get; set; }

        public string RelatedConstituentFirstName { get; set; }

        public int RelatedConstituentNameStatusId { get; set; }

        public string RelatedConstituentNameStatusDescription { get; set; }

        public PrefixSummary RelatedConstituentPrefix { get; set; }

        public SuffixSummary RelatedConstituentSuffix { get; set; }

        public string RelatedConstituentGender { get; set; }

        public string RelatedConstituentSortName { get; set; }

        public ConstituentTypeSummary RelatedConstituentType { get; set; }

        public int? Rank { get; set; }
    }
  
    public partial class AffiliationInfos : List<AffiliationInfo>
    {
    }
  
    public partial class Affiliations : List<Affiliation>
    {
    }
  
    public partial class AffiliationToAssociationInfo
    {
        public int AffiliationId { set; get; }

        public int AssociationTypeId { set; get; }
    }
  
    public partial class AffiliationToAssociationInfos : List<AffiliationToAssociationInfo>
    {
    }
  
    public partial class Alias
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string AliasFirstName { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string AliasLastName { get; set; }

        [Documentation(Required = true, FKTable = "TR_ALIAS_TYPE", FKColumn = "id", FKResourceName = "AliasTypes")]
        public AliasTypeSummary AliasType { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        public bool EditIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Aliases : List<Alias>
    {
    }
  
    public partial class Association
    {
        public Entity AssociatedConstituent { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string AssociatedName { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public AssociationTypeSummary AssociationType { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        public Entity Constituent { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDate { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public bool? IsIncludedInSearchResults { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 1024)]
        public string Note { get; set; }

        [Documentation(Required = false)]
        public DateTime? BirthDate { get; set; }

        [Documentation(Required = false)]
        public string Gender { get; set; }

        [Documentation(Required = false, FKTable = "T_ASSOCIATION", FKColumn = "association_no", FKResourceName = "Associations")]
        public Entity ReciprocalAssociation { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDate { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class AssociationIdsToBeDeleted : List<int>
    {
    }
  
    public partial class Associations : List<Association>
    {
    }
  
    public partial class AssociationToAffiliationInfo
    {
        public int AssociationId { set; get; }

        public int AffiliationTypeId { set; get; }
    }
  
    public partial class AssociationToAffiliationInfos : List<AssociationToAffiliationInfo>
    {
    }
  
    public partial class AttachedToLogin
    {
        public bool IsAttachedToLogin { get; set; }
    }
  
    public partial class Attendance
    {
        [Documentation(Required = true)]
        public int AdmissionAdult { get; set; }

        [Documentation(Required = true)]
        public int AdmissionChild { get; set; }

        [Documentation(Required = true)]
        public int AdmissionOther { get; set; }

        [Documentation(Required = false)]
        public DateTime? AttendDateTime { get; set; }

        [Documentation(Required = false)]
        public int? CompositeId { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Device { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public MembershipLevelSummary MembershipLevel { get; set; }

        [Documentation(Required = false)]
        public int? OrderId { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ScanSource { get; set; }

        [Documentation(Required = false)]
        public int? TicketId { get; set; }

        [Documentation(Required = false, FKTable = "TR_NSCAN_ACCESS_AREAS", FKColumn = "id", FKResourceName = "NscanAccessAreas")]
        public NScanAccessAreaSummary Area { get; set; }

        [Documentation(Required = false)]
        public int? Membership { get; set; }
        
        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(Required = false, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "Performances")]
        public PerformanceSummary Performance { get; set; }

        [Documentation(Required = false)]
        public ConstituentDisplaySummary Recipient { get; set; }
    }

    public partial class Attendances : List<Attendance>
    {
    }
  
    public partial class AttendanceHistory
    {
        [Documentation(Required = true)]
        public int AdmissionAdult { get; set; }

        [Documentation(Required = true)]
        public int AdmissionChild { get; set; }

        [Documentation(Required = true)]
        public int AdmissionOther { get; set; }

        [Documentation(Required = false)]
        public DateTime? AttendDateTime { get; set; }

        [Documentation(Required = false)]
        public int? CompositeId { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Device { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public HistoryMembershipLevelSummary MembershipLevel { get; set; }

        [Documentation(Required = false)]
        public int? OrderId { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ScanSource { get; set; }

        [Documentation(Required = false)]
        public int? TicketId { get; set; }

        [Documentation(Required = false, FKTable = "TR_NSCAN_ACCESS_AREAS", FKColumn = "id", FKResourceName = "NScanAccessAreas")]
        public EntitySummary Area { get; set; }

        [Documentation(Required = false)]
        public int? Membership { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(Required = false)]
        public ConstituentDisplaySummary Recipient { get; set; }

        [Documentation(Required = false, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "Performances")]
        public HistoryPerformanceSummary Performance { get; set; }

        [Documentation(Required = false, FKTable = "T_ZONE", FKColumn = "zone_no", FKResourceName = "Zones")]
        public HistoryZoneSummary Zone { get; set; }
    }

    public partial class AttendanceHistories : List<AttendanceHistory>
    {
    }

  
    public partial class Attribute
    {
        [Documentation(Required = true, FKTable = "T_KEYWORD", FKColumn = "keyword_no", FKResourceName = "Keywords")]
        public KeywordSummary Keyword { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Value { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public KeywordConstituentType KeywordConstituentType { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class Attributes : List<Attribute>
    {
    }
  
    public partial class CalculatedMembership
    {
        public string MembershipLevel { get; set; }

        public decimal? MembershipAmount { get; set; }

        public decimal? CurrentMembershipAmount { get; set; }

        public decimal? ContributionAmount { get; set; }

        public decimal? AVCAmount { get; set; }

        public DateTime? InitialDate { get; set; }

        public DateTime? ExpirationDate { get; set; }

        public DateTime? InceptionDate { get; set; }

        public EntitySummary CurrentStatus { get; set; }

        public string CurrentRecord { get; set; }

        public int? Trend { get; set; }

        public int? MacroTrend { get; set; }

        public string NRRStatus { get; set; }

        public int? ParentConstituentMembershipId { get; set; }

        public string DeclineBenefits { get; set; }

        public int? CampaignId { get; set; }

        public int? MembershipMode { get; set; }

        public string RenewUpgradeOverride { get; set; }
    }
  
    public partial class CalculatedMembershipLevelSummary
    {
        public string Id { get; set; }
        public string Description { get; set; }
        public decimal? StartAmount { get; set; }
        public decimal? EndAmount { get; set; }
    }
  
    public partial class CalculatedMembershipOrgSummary
    {
        public int Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class CalculatedMembershipSummary
    {
        public DateTime? InitialDate { get; set; }
        public DateTime? ExpirationDate { get; set; }
        public CalculatedMembershipOrgSummary MembershipOrg { get; set; }
        public CalculatedMembershipLevelSummary MembershipLevel { get; set; }
        public CalculatedMembershipSummaryStatus CurrentStatus { get; set; }
        public string CurrentRecord { get; set; }
        public int CustomerMembershipNo { get; set; }
        public DateTime CreateDate { get; set; }
    }
  
    public partial class CalculatedMembershipSummaryStatus : EntitySummary
    {
    }
  
    public partial class CalculateMembershipRequest
    {
        public int MembershipOrganizationId{ get; set; }

        public string RealOrMirror { get; set; }

        public string DeclineBenefits { get; set; }

        public string MembershipLevelOverride { get; set; }

        public string RenewUpgradeIndicator { get; set; }

        public int? CrediteeId { get; set; }

        public DateTime? CalcContributionDate { get; set; }

        public decimal? CalcContributionAmount { get; set; }

        public DateTime? CalcInitialDate { get; set; }

        public DateTime? CalcExpirationDate { get; set; }

        public int? CalcConstituentId { get; set; }

        public int? CalcCampaignId { get; set; }
    }
  
    public partial class CalculateMembershipResponse
    {
        public CalculatedMembership CalculatedMembership { get; set; }

        public CurrentMembership CurrentMembershipSummary { get; set; }
    }
  
    public partial class Constituencies : List<Constituency>
    {
    }
  
    public partial class Constituency
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public ConstituencyTypeSummary ConstituencyType { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        public DateTime? EndDate { get; set; }

        public DateTime? StartDate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class Constituent
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CUST_TYPE", FKColumn = "id", FKResourceName = "ConstituentTypes")]
        public ConstituentTypeSummary ConstituentType { get; set; }

        public string DisplayName { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, FKTable = "TR_EMRKT_IND", FKColumn = "id", FKResourceName = "EmarketIndicators")]
        public EmarketIndicatorSummary EmarketIndicator { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string FirstName { get; set; }

        [Documentation(Required = true, FKTable = "TR_CUST_INACTIVE", FKColumn = "id", FKResourceName = "ConstituentInactives")]
        public ConstituentInactiveSummary Inactive { get; set; }

        [Documentation(Required = false, FKTable = "TR_INACTIVE_REASON", FKColumn = "id", FKResourceName = "InactiveReasons")]
        public InactiveReasonSummary InactiveReason { get; set; }

        [Documentation(Required = false)]
        public DateTime? LastActivityDate { get; set; }

        [Documentation(Required = false)]
        public DateTime? LastGiftDate { get; set; }

        [Documentation(Required = false)]
        public DateTime? LastTicketDate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 55)]
        public string LastName { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string SortName { get; set; }

        [Documentation(Required = false, FKTable = "TR_MAIL_IND", FKColumn = "id", FKResourceName = "MailIndicators")]
        public MailIndicatorSummary MailIndicator { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string MiddleName { get; set; }

        [Documentation(Required = false)]
        public NameStatusSummary NameStatus { get; set; }

        [Documentation(Required = false, FKTable = "TR_ORIGINAL_SOURCE", FKColumn = "id", FKResourceName = "OriginalSources")]
        public OriginalSourceSummary OriginalSource { get; set; }

        [Documentation(Required = false, FKTable = "TR_PHONE_IND", FKColumn = "id", FKResourceName = "PhoneIndicators")]
        public PhoneIndicatorSummary PhoneIndicator { get; set; }

        [Documentation(Required = true, FKTable = "TR_PREFIX", FKColumn = "id", FKResourceName = "Prefixes")]
        public PrefixSummary Prefix { get; set; }

        [Documentation(Required = false)]
        public string Gender { get; set; }

        [Documentation(Required = true, FKTable = "TR_SUFFIX", FKColumn = "id", FKResourceName = "Suffixes")]
        public SuffixSummary Suffix { get; set; }
    }

    public partial class Constituents : List<Constituent>
    {
        
    }
  
    public partial class ConstituentContributions : List<ConstituentContribution>
    {
    }

    public partial class ConstituentContribution
    {
        public ConstituentDisplaySummary Constituent { get; set; }

        public DateTime? ContributionDate { get; set; }

        public decimal ReceivedAmount { get; set; }

        public decimal ContributionAmount { get; set; }

        public string ContributionType { get; set; }

        public EntitySummary Campaign { get; set; }

        public EntitySummary Appeal { get; set; }

        public EntitySummary MediaType { get; set; }

        public EntitySummary Fund { get; set; }

        public int? ReferenceNumber { get; set; }

        public int? AccountId { get; set; }

        public int CurrentConstituentId { get; set; }

        public string BillAccountNumber { get; set; }

        public decimal? CreditedAmount { get; set; }

        public int? MatchReferenceNumber { get; set; }

        public bool IsMatchingGift { get; set; }

        public EntitySummary Designation { get; set; }

        public int? CrediteeTypeId { get; set; }

        public EntitySummary BillingType { get; set; }

        public EntitySummary Channel { get; set; }

        public decimal BalanceAmount { get; set; }

        public EntitySummary Source { get; set; }

        public string NoteIndicator { get; set; }

        public int? SortOrder { get; set; }

        public ConstituentDisplaySummary Owner { get; set; }

        public ConstituentDisplaySummary Initiator { get; set; }

        public ConstituentDisplaySummary Creditee { get; set; }

        public ConstituentDisplaySummary Worker { get; set; }

        public int? MirrorLock { get; set; }

        public bool IsEditable { get; set; }

        public EntitySummary Plan { get; set; }
    }
  
    public partial class ConstituentDetail
    {
        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public ConstituentTypeSummary ConstituentType { get; set; }

        public string DisplayName { get; set; }

        public int? Id { get; set; }

        public EmarketIndicatorSummary EmarketIndicator { get; set; }

        public string FirstName { get; set; }

        public ConstituentInactiveSummary Inactive { get; set; }

        public InactiveReasonSummary InactiveReason { get; set; }

        public DateTime? LastActivityDate { get; set; }

        public DateTime? LastGiftDate { get; set; }

        public DateTime? LastTicketDate { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public string LastName { get; set; }

        public string SortName { get; set; }

        public MailIndicatorSummary MailIndicator { get; set; }

        public string MiddleName { get; set; }

        public NameStatusSummary NameStatus { get; set; }

        public OriginalSourceSummary OriginalSource { get; set; }

        public PhoneIndicatorSummary PhoneIndicator { get; set; }

        public PrefixSummary Prefix { get; set; }

        public string Gender { get; set; }

        public SuffixSummary Suffix { get; set; }

        public Addresses Addresses { get; set; }

        public ElectronicAddresses ElectronicAddresses { get; set; }

        public Salutations Salutations { get; set; }

        public Phones PhoneNumbers { get; set; }
    }
  
    public partial class ConstituentDevelopmentInfo
    {
        public int? Id { get; set; }

        public string Constituencies { get; set; }

        public string MembershipLevel { get; set; }

        public string CurrentStatus { get; set; }

        public DateTime? MembershipExpiration { get; set; }

        public decimal? LastContributionAmount { get; set; }

        public decimal? LastContributionReceived { get; set; }

        public DateTime? LastContributionDate { get; set; }

        public string LastContributionFund { get; set; }

        public decimal? LastYearContribution { get; set; }
    }
  
    public partial class ConstituentDisplaySummaries : List<ConstituentDisplaySummary>
    {
    }
  
    [Serializable]
    public partial class ConstituentDisplaySummary
    {
        public int? Id { get; set; }

        public string SortName { get; set; }

        public string DisplayName { get; set; }
    }
  
    public partial class ConstituentMiniSnapshot
    {
        public int? Id { get; set; }

        public string CreateLocation { get; set; }

        public ConstituentTypeSummary ConstituentType { get; set; }

        public string FirstName { get; set; }

        public ConstituentInactiveSummary Inactive { get; set; }

        public InactiveReasonSummary InactiveReason { get; set; }

        public DateTime? LastActivityDate { get; set; }

        public string LastName { get; set; }

        public MailIndicatorSummary MailIndicator { get; set; }

        public EmarketIndicatorSummary EmarketIndicator { get; set; }

        public string MiddleName { get; set; }

        public NameStatusSummary NameStatus { get; set; }

        public OriginalSourceSummary OriginalSource { get; set; }

        public PhoneIndicatorSummary PhoneIndicator { get; set; }

        public PrefixSummary Prefix { get; set; }

        public string Gender { get; set; }

        public SuffixSummary Suffix { get; set; }

        public AffiliationInfos Affiliates { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public string SortName { get; set; }
    }
  
    public partial class ConstituentSearchResponse
    {
        public ConstituentSummaries ConstituentSummaries { get; set; }

        public SearchMetadata SearchMetadata { get; set; }
    }
  
    public partial class ConstituentShortDisplayNameSummary
    {
        public int? Id { get; set; }

        public string SortName { get; set; }

        public string ShortDisplayName { get; set; }
    }
  
    public partial class ConstituentSnapshot
    {
        public int? Id { get; set; }

        public string CreateLocation { get; set; }

        public ConstituentTypeSummary ConstituentType { get; set; }

        public string DisplayName { get; set; }

        public string FirstName { get; set; }

        public ConstituentInactiveSummary Inactive { get; set; }

        public InactiveReasonSummary InactiveReason { get; set; }

        public DateTime? LastActivityDate { get; set; }

        public string LastName { get; set; }

        public MailIndicatorSummary MailIndicator { get; set; }

        public EmarketIndicatorSummary EmarketIndicator { get; set; }

        public string MiddleName { get; set; }

        public NameStatusSummary NameStatus { get; set; }

        public OriginalSourceSummary OriginalSource { get; set; }

        public PhoneIndicatorSummary PhoneIndicator { get; set; }

        public PrefixSummary Prefix { get; set; }

        public string Gender { get; set; }

        public SuffixSummary Suffix { get; set; }

        public Salutation Salutation { get; set; }

        public Address Address { get; set; }

        public ElectronicAddress ElectronicAddress { get; set; }

        public Phones PrimaryPhoneNumbers { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public string SortName { get; set; }

        public AffiliationInfos Affiliates { get; set; }
    }
  
    public partial class ConstituentSummaries : List<ConstituentSummary>
    {
    }
  
    public partial class ConstituentSummary
    {
        public int? Id { get; set; }

        public string DisplayName { get; set; }

        public string FirstName { get; set; }

        public string MiddleName { get; set; }

        public string LastName { get; set; }

        public string Street1 { get; set; }

        public string Street2 { get; set; }

        public string Street3 { get; set; }

        public string City { get; set; }

        public string State { get; set; }

        public string PostalCode { get; set; }

        public string Country { get; set; }

        public string FullNameAlias { get; set; }

        public string ConstituentType { get; set; }

        public string TypeDescription { get; set; }

        public string ConstituentGroup { get; set; }

        public string A12Indicator { get; set; }

        public string ForSort { get; set; }

        public string Inactive { get; set; }

        public string Prefix { get; set; }

        public string Suffix { get; set; }

        public int NumberOfAffiliates { get; set; }

        public int AffiliationId { get; set; }

        public int ResultGrouping { get; set; }

        public int Totals { get; set; }

        public bool? IsPrimaryAffiliation { get; set; }

        public bool? IsSearchMatch { get; set; }
    }
  
    public partial class ContactPermission
    {
        [Documentation(Required = false)]
        public string Answer { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public Entity Constituent { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public DateTime? LastAskedDateTime { get; set; }
          
        [Documentation(Required = false, Description = "Whether constituent should be asked for this permission type. This is generated by the service and is not included in a PUT or POST.")]
        public bool ShouldAsk { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTACT_PERM_TYPE", FKColumn = "id", FKResourceName = "ContactPermissionTypes")]
        public ContactPermissionTypeSummary Type { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public bool EditIndicator { get; set; }
    }

    public partial class ContactPermissions : List<ContactPermission>
    {
    }
  
    public partial class ContactPermissionsTransactionRequest
    {
        [Documentation(Required = true)]
        public int OwnerId { get; set; }

        [Documentation(Required = false)]
        public int? InitiatorId { get; set; }

        [Documentation(Required = false)]
        public string ProductionSeasonIds { get; set; }

        [Documentation(Required = true)]
        public bool ReturnRequiredOnly { get; set; }

    }
  
    public partial class ContactPoint
    {
        public int? Id { get; set; }

        public int ConstituentId { get; set; }

        public virtual int ContactPointCategoryId { get; set; }

        public EntitySummary Type { get; set; }

        public AddressContactPoint Address { get; set; }

        public PhoneContactPoint Phone { get; set; }

        public ElectronicAddressContactPoint ElectronicAddress { get; set; }
    }
  
    public partial class ContactPointPurposeMap
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        public ContactPoint ContactPoint { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public bool EditIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTACT_POINT_CATEGORY", FKColumn = "id", FKResourceName = "ContactPointCategories")]
        public ContactPointCategorySummary ContactPointCategory { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTACT_POINT_PURPOSE", FKColumn = "id", FKResourceName = "ContactPointPurposes")]
        public ContactPointPurposeSummary Purpose { get; set; }
    }
  
    public partial class ContactPointPurposeMaps : List<ContactPointPurposeMap>
    {
    }
  
    public partial class ContactPoints : List<ContactPoint>
    {
    }
  
    public partial class CreateCardNumberAccountRequest
    {
        [Documentation(Required=true)]
        public string AccountNumber { get; set; }

        [Documentation(Required = true)]
        public int? CardExpiryMonth { get; set; }

        [Documentation(Required = true)]
        public int? CardExpiryYear { get; set; }

        [Documentation(Required = true)]
        public int? ConstituentId { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public string Name { get; set; }

        [Documentation(Required = false, NotesForPost="Required when tokenization enabled")]
        public int? PaymentMethodGroupId { get; set; }

        [Documentation(Required = true)]
        public string TransactionOrigin { get; set; }

        [Documentation(Required = false)]
        public int? ExclusiveToControlledBatchId { get; set; }

        [Documentation(Required = false, NotesForPost="Accepted only for controlled batches")]
        public VantivEncryptedCard VantivEncryptedCard { get; set; }
    }
  
    public partial class CreateDirectDebitAccountRequest
    {
        [Documentation(Required=true)]
        public string AccountNumber { get; set; }

        [Documentation(Required = true)]
        public int? CardExpiryMonth { get; set; }

        [Documentation(Required = true)]
        public int? CardExpiryYear { get; set; }

        [Documentation(Required = true)]
        public int? ConstituentId { get; set; }

        [Documentation(Required = false)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public string Name { get; set; }
    }
  
    public partial class CreateSepaAccountRequest
    {
        [Documentation(Required = true)]
        public string AccountNumber { get; set; }

        [Documentation(Required = true)]
        public string BankIdentifierCode { get; set; }

        [Documentation(Required = true)]
        public int? ConstituentId { get; set; }

        [Documentation(Required = false)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public string MandateNumber { get; set; }

        [Documentation(Required = true)]
        public int? MandateType { get; set; }

        [Documentation(Required = true)]
        public string Name { get; set; }

        [Documentation(Required = true)]
        public DateTime? SignatureDate { get; set; }
    }
  
    public partial class CreateVantivEncryptedCardAccountRequest
    {
        [Documentation(Required = true, NotesForPost = "Manual or swiped data from Vantiv encrypted devices (IDTECH M130 or Ingenico iPP320")]
        public VantivEncryptedCard VantivEncryptedCard { get; set; }

        [Documentation(Required = true)]
        public int? ConstituentId { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false, NotesForPost = "Only used if name is not included in the VantivEncryptedCard data.")]
        public string Name { get; set; }

        [Documentation(Required = true)]
        public int? PaymentMethodGroupId { get; set; }

        [Documentation(Required = false)]
        public int? ExclusiveToControlledBatchId { get; set; }
    }
  
    public partial class CurrentMembership
    {
        public DateTime? InitialDate { get; set; }
        public DateTime? ExpirationDate { get; set; }
        public EntitySummary MembershipOrg { get; set; }
        public CurrentMembershipLevelSummary MembershipLevel { get; set; }
        public EntitySummary CurrentStatus { get; set; }
        public string CurrentRecord { get; set; }
        public int ConstituentMembershipId { get; set; }
        public DateTime CreateDate { get; set; }
    }
  
    public partial class CurrentMembershipLevelSummary
    {
        public int Id { get; set; }
        public string Description { get; set; }
        public decimal? StartAmount { get; set; }
        public decimal? EndAmount { get; set; }
    }
  
    public partial class CurrentMembershipOrgSummary : EntitySummary
    {
    }
  
    public partial class CurrentMembershipStatus : EntitySummary
    {
    }
  
    [Serializable]
    public partial class ElectronicAddress
    {
        [Documentation(Required = true, MaxLength = 80)]
        public string Address { get; set; }

        public Entity AffiliatedConstituent { get; set; }

        [Documentation(Required = false, FKTable = "TR_SIGNOR", FKColumn = "id", FKResourceName = "SalutationTypes")]
        public SalutationTypeSummary AltSalutationType { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_EADDRESS_TYPE", FKColumn = "id", FKResourceName = "ElectronicAddressTypes")]
        public ElectronicAddressTypeSummary ElectronicAddressType { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDate { get; set; }

        [Documentation(Required = false)]
        public bool? AllowHtmlFormat { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public bool AllowMarketing { get; set; }

        /// <summary>
        /// Used to check the active month boxes on an eaddress.  Passed as an array of 12 characters representing the 12 months of the year.  Pass Y to check a month and N to not check a month (i.e. YYYNNYYYYYYY). 
        /// </summary>
        [Documentation(Required = true, MaxLength = 12)]
        public string Months { get; set; }

        [Documentation(Required = true)]
        public bool? PrimaryIndicator { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDate { get; set; }

        public bool EditIndicator { get; set; }

        public bool IsFromAffiliation { get; set; }

        public bool IsEmail { get; set; }
    }
  
    public partial class ElectronicAddressContactPoint
    {
        public int? Id { get; set; }

        public string ElectronicAddress { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class ElectronicAddresses : List<ElectronicAddress>
    {
    }
  
    public partial class FlexHeader
    {
        public int ConstituentId { get; set; }

        public string FullName1 { get; set; }

        public string FullName2 { get; set; }

        public string AllConst { get; set; }

        public string Inactive { get; set; }

        public int ConstituentTypeId { get; set; }

        public int ConstituentGroupId { get; set; }

        public string Ico09 { get; set; }

        public string Ico10 { get; set; }

        public string Ico11 { get; set; }

        public string Ico12 { get; set; }

        public string WorkerInd { get; set; }

        public NameValues Values { get; set; }
    }
 public partial class GiftAidDeclaration {
        
        public DateTime? ConfirmDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required = true, RequiredForPut = true, RequiredForPost = true)]
        public bool? EligibleIndicator { get; set; }
        
        public DateTime? EndDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }
        
        public string Notes { get; set; }
        
        [Documentation(Required = true, RequiredForPut = true, RequiredForPost = true, Manual = true)]
        public DateTime? ReceivedDateTime { get; set; }
        
        [Documentation(Required = true, RequiredForPut = true, RequiredForPost = true, Manual = true)]
        public DateTime? StartDateTime { get; set; }
        
        [Documentation(Required = true, FKTable = "TR_GIFTAID_CONTACT_METHOD", FKColumn = "id", FKResourceName = "GiftAidContactMethods")]
        public GiftAidContactMethodSummary ContactMethod { get; set; }
        
        [Documentation(Required = true)]
        public Entity Constituent { get; set; }
        
        [Documentation(Required = true, FKTable = "TR_GIFTAID_DOCUMENT_STATUS", FKColumn = "id", FKResourceName = "GiftAidDocumentStatuses")]
        public GiftAidDocumentStatusSummary DocumentStatus { get; set; }
        
        [Documentation(Required = true, FKTable = "TR_GIFTAID_TYPE", FKColumn = "id", FKResourceName = "GiftAidTypes")]
        public GiftAidTypeSummary GiftAidType { get; set; }
        
        [Documentation(Required = false, FKTable = "TR_GIFTAID_INELIGIBLE_REASON", FKColumn = "id", FKResourceName = "GiftAidIneligibleReasons")]
        public GiftAidIneligibleReasonSummary IneligibleReason { get; set; }
    }
    
    public partial class GiftAidDeclarations : List<GiftAidDeclaration> {
    }
  
    public partial class GroupToIndividualRequest
    {
        public Merge Merge { set; get; }

        public IndividualConstituent IndividualConstituent { set; get; }

        public AssociationIdsToBeDeleted AssociationIdsToBeDeleted { set; get; }

        public AffiliationIdsToBeDeleted AffiliationIdsToBeDeleted { set; get; }

        public AffiliationToAssociationInfos AffiliationsToAssociationsInfo { set; get; }

        public AssociationToAffiliationInfos AssociationsToAffiliationsInfo { set; get; }
    }
  
    public partial class HistoryMembershipLevelSummary
    {
        public int Id { get; set; }

        public string Code { get; set; }

        public string Description { get; set; }

    }
  
    public partial class HistoryOrderSummary
    {
        public int Id { get; set; }
        public DateTime OrderDateTime { get; set; }
    }
  
    public partial class HistoryPackageSummary
    {
        public int Id { get; set; }
        public string Code { get; set; }
        public string Description { get; set; }
        public PackageTypeSummary PackageType { get; set; }
    }
  
    public partial class HistoryPerformanceSummary
    {
        public int Id { get; set; }
        public string PerformanceCode { get; set; }
        public DateTime PerformanceDateTime { get; set; }
        public string Name { get; set; } 
    }
  
    public partial class HistoryZoneSummary
    {
        public int Id { get; set; }
        public string Description { get; set; }
        public string ShortDescription { get; set; }
        public string ZoneTime { get; set; }
    }
  
    public partial class IndividualConstituent
    {
        public string FirstName { set; get; }

        public string MiddleName { set; get; }

        public string LastName { set; get; }

        public int? PrefixId { set; get; }

        public int? SuffixId { set; get; }

        public string Gender { set; get; }

        public ConstituentType ConstituentType { set; get; }
    }
  
    public partial class IndividualToHouseholdRequest
    {
        public int ConstituentTypeId { get; set; }

        public int? AffiliationTypeId { get; set; }
    }
  
    public partial class IndividualToOrganizationRequest
    {
        public string LastName { set; get; }

        public int ConstituentTypeId { set; get; }

        public AssociationIdsToBeDeleted AssociationIdsToBeDeleted { set; get; }

        public AffiliationIdsToBeDeleted AffiliationIdsToBeDeleted { set; get; }

        public AffiliationToAssociationInfos AffiliationsToAssociationsInfo { set; get; }

        public AssociationToAffiliationInfos AssociationsToAffiliationsInfo { set; get; }
    }
  
    public partial class Interest
    {
        [Documentation(Required = true, FKTable = "TR_TKW", FKColumn = "id", FKResourceName = "InterestTypes")]
        public InterestTypeSummary InterestType { get; set; }

        [Documentation(Required = true)]
        public Entity Constituent { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public bool Selected { get; set; }

        [Documentation(Required = false)]
        public int? Weight { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class Interests : List<Interest>
    {
    }
  
    public partial class Issue
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public ActivityTypeSummary ActivityType { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTACT_TYPE", FKColumn = "id", FKResourceName = "ContactTypes")]
        public ContactTypeSummary ContactType { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(Required = false)]
        public DateTime? IssueDate { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string Notes { get; set; }

        [Documentation(Required = false, FKTable = "TR_ORIGIN", FKColumn = "id", FKResourceName = "")]
        public OriginSummary Origin { get; set; }

        [Documentation(Required = false)]
        public int? PerformanceId { get; set; }

        [Documentation(Required = false)]
        public int? PackageId { get; set; }

        [Documentation(Required = false)]
        public bool UrgentIndicator { get; set; }

        public bool ResolvedIndicator { get; set; }

        [Documentation(Required = true)]
        public bool HasReminder { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class IssueAction
    {
        [Documentation(Required = false, FKTable = "TR_ACTION", FKColumn = "id", FKResourceName = "ActionTypes")]
        public ActionTypeSummary ActionType { get; set; }

        [Documentation(Required = false)]
        public DateTime? ActionDate { get; set; }

        [Documentation(Required = false, FKTable = "T_CUST_ACTIVITY", FKColumn = "activity_no", FKResourceName = "Issues")]
        public Entity Issue { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Notes { get; set; }

        [Documentation(Required = false)]
        public bool Resolved { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public bool EditIndicator { get; set; }


        [Documentation(Required = false)]
        public DateTime? LetterPrintedDate { get; set; }
    }
  
    public partial class IssueActions : List<IssueAction>
    {
    }
  
    public partial class Issues : List<Issue>
    {
    }
  
    [Serializable]
    public partial class LoginCredentials
    {
        public int ConstituentId { get; set; }

        public string PasswordToken { get; set; }

        public string EmailAddress { get; set; }

        public bool AllowHtmlFormat { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

        public string DisplayName { get; set; }

        public string Login { get; set; }

        public bool IsTemporary { get; set; }

        public string EnvelopeSalutation1 { get; set; }

        public string EnvelopeSalutation2 { get; set; }

        public string LetterSalutation { get; set; }

        public string BusinessTitle { get; set; }
    }
  
    public partial class MembershipDetail
    {
        public int Id { get; set; }
        public ConstituentDisplaySummary Constituent { get; set; }
        public bool IsCurrent { get; set; }
        public bool IsDefault { get; set; }
        public DateTime InitiationDate { get; set; }
        public DateTime ExpirationDate { get; set; }
        public DateTime InceptionDate { get; set; }
        public int BenefitProvidingConstituentId { get; set; }
        public DateTime LapseDate { get; set; }
        public DateTime RenewalDate { get; set; }
        public bool DeclinedBenefits { get; set; }
        public string MacroTrend { get; set; }
        public string MicroTrend { get; set; }
        public MembershipLevelSummary MembershipLevel { get; set; }
        public EntitySummary CurrentStatus { get; set; }
    }
  
    public partial class MembershipDetails : List<MembershipDetail>
    {
    }
  
    public partial class Merge
    {
        public int ConstituentIdToKeep { set; get; }

        public int ConstituentIdToDelete { set; get; }
    }
  
    public partial class PackageHistories : List<PackageHistory>
    {
    }

    public partial class PackageHistory
    {
        public int Id { get; set; }

        public SeasonSummary Season { get; set; }

        public HistoryPackageSummary Package { get; set; }

        public HistoryOrderSummary Order { get; set; }

        public ModeOfSaleSummary ModeOfSale { get; set; }

        public ZoneSummary Zone { get; set; }

        public EntitySummary PriceType { get; set; }

        public int? ConstituentId { get; set; }

        public string Role { get; set; }

        public decimal? Amount { get; set; }

        public int? NumberOfSeats { get; set; }

        public int? PerformanceCount { get; set; }

        public string Locations { get; set; }
    }
  
    public partial class Phone
    {
        [Documentation(Required = false)]
        public AddressSummary Address { get; set; }

        [Documentation(Required = false)]
        public bool? AllowTelemarketing { get; set; }

        [Documentation(Required = false)]
        public string DayEveningIndicator { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        [Documentation(Required = false, MaxLength = 32)]
        public string PhoneNumber { get; set; }

        public string PhoneFormatted { get; set; }

        public string PhoneSearch { get; set; }

        [Documentation(Required = false)]
        public PhoneTypeSummary PhoneType { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class PhoneContactPoint
    {
        public int? Id { get; set; }

        public int? AddressId { get; set; }

        public string PhoneNumber { get; set; }
    }
  
    public partial class Phones : List<Phone>
    {
    }
  
    public partial class ProgramListing
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(Required = false, FKTable = "TR_DONATION_LEVEL", FKColumn = "id", FKResourceName = "DonationLevels")]
        public DonationLevelSummary DonationLevel { get; set; }

        [Documentation(Required = true, FKTable = "T_PROGRAM", FKColumn = "program_no", FKResourceName = "Programs")]
        public ProgramType ProgramType { get; set; }

        [Documentation(Required = false, MaxLength = 70)]
        public string ProgramName { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string SortName { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class ProgramListings : List<ProgramListing>
    {
    }
  
    public partial class Ranking
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public Entity Constituent { get; set; }

        [Documentation(Required = true)]
        public RankTypeSummary RankType { get; set; }

        [Documentation(Required = false)]
        public int? Rank { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class Rankings : List<Ranking>
    {
    }
  
    public partial class Relationship
    {
        [Documentation(Required = false, MaxLength = 160)]
        public string AssociatedConstituentName { get; set; }

        [Documentation(Required = false)]
        public int AssociatedConstituentId { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string AssociatedConstituentSortName { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        public int ConstituentId { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDate { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public bool? IsAllowedToTransact { get; set; }

        [Documentation(Required = true)]
        public bool? IsIncludedInSearchResults { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 1024)]
        public string Note { get; set; }

        [Documentation(Required = true)]
        public bool PrimaryIndicator { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string RelationshipCategoryDescription { get; set; }

        [Documentation(Required = true)]
        public int RelationshipCategoryId { get; set; }

        [Documentation(Required = true, MaxLength = 11)]
        public string RelationshipContext { get; set; }

        public int? Id { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string RelationshipTypeDescription { get; set; }

        [Documentation(Required = true)]
        public int RelationshipTypeId { get; set; }

        [Documentation(Required = false)]
        public int ReciprocalRelationshipId { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDate { get; set; }

        [Documentation(Required = false)]
        public decimal? Salary { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string Title { get; set; }

        [Documentation(Required = false)]
        public DateTime? BirthDate { get; set; }

        [Documentation(Required = false)]
        public string Gender { get; set; }

        [Documentation(Required = true)]
        public bool? IsEditable { get; set; }

        [Documentation(Required = false)]
        public int? NameIndicator { get; set; }

        [Documentation(Required = false)]
        public int Rank { get; set; }
    }
  
    public partial class Relationships : List<Relationship>
    {
    }
  
    public partial class Salutation
    {
        public string BusinessTitle { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public Entity Constituent { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public bool DefaultIndicator { get; set; }

        public string EnvelopeSalutation1 { get; set; }

        public string EnvelopeSalutation2 { get; set; }

        [Documentation(Required = false)]
        public bool Label { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public string LetterSalutation { get; set; }

        [Documentation(Required = true, FKTable = "TR_SIGNOR", FKColumn = "id", FKResourceName = "SalutationTypes")]
        public SalutationTypeSummary SalutationType { get; set; }

        public bool EditIndicator { get; set; }

        public bool IsFromAffiliation { get; set; }
    }
  
    public partial class SalutationResponse
    {
        public string EnvelopeSalutation1 { get; set; }

        public string EnvelopeSalutation2 { get; set; }

        public string LetterSalutation { get; set; }

        public string GroupName { get; set; }

        public string SortName { get; set; }
    }
  
    public partial class Salutations : List<Salutation>
    {
    }
  
    public partial class SearchMetadata
    {
        public SearchTokens SearchTokens { get; set; }

        public int Total { get; set; }
    }
  
    public partial class SearchRequest
    {
        public string CardNumber { get; set; }
    }
  
    public partial class SearchToken
    {
        public string Key { get; set; }

        public string Value { get; set; }
    }
  
    public partial class SearchTokens : List<SearchToken>
    {
    }
  
    public partial class SpecialActivity
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public int? ConstituentId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Notes { get; set; }

        [Documentation(Required = false)]
        public int? NumberOfAttendees { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string Performance { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public DateTime? SpecialActivityDateTime { get; set; }

        [Documentation(Required = false)]
        public SpecialActivityStatusSummary Status { get; set; }

        [Documentation(Required = false, FKTable = "TR_SPECIAL_ACTIVITY", FKColumn = "id", FKResourceName = "SpecialActivityTypes")]
        public SpecialActivityTypeSummary Type { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int? WorkerConstituentId { get; set; }
    }

    public partial class SpecialActivities : List<SpecialActivity>
    {
    }
  
    public partial class TicketHistories : List<TicketHistory>
    {
    }

    public partial class TicketHistory
    {
        public int Id { get; set; }

        public SeasonSummary Season { get; set; }

        public TitleSummary Title { get; set; }

        public ProductionSummary Production { get; set; }

        public EntitySummary ProductionSeason { get; set; }

        public HistoryPerformanceSummary Performance { get; set; }

        public HistoryPackageSummary Package { get; set; }

        public TheaterSummary Theater { get; set; }

        public HistoryOrderSummary Order { get; set; }

        public ModeOfSaleSummary ModeOfSale { get; set; }

        public ZoneSummary Zone { get; set; }

        public EntitySummary PriceType { get; set; }

        public EntitySummary Rule { get; set; }

        public int? ConstituentId { get; set; }

        public string Role { get; set; }

        public string TicketType { get; set; }

        public decimal? Amount { get; set; }

        public int? NumberOfSeats { get; set; }

        public string Locations { get; set; }
    }
  
    public partial class UpdateCardNumberAccountRequest
    {
        [Documentation(Required = false)]
        public int? CardExpiryMonth { get; set; }

        [Documentation(Required = false)]
        public int? CardExpiryYear { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public string Name { get; set; }

        [Documentation(Required = false, NotesForPost = "Required when tokenization enabled")]
        public int? PaymentMethodGroupId { get; set; }

        [Documentation(Required = true)]
        public string TransactionOrigin { get; set; }
    }
  
    public partial class UpdateDirectDebitAccountRequest
    {
        [Documentation(Required = true)]
        public int? CardExpiryMonth { get; set; }

        [Documentation(Required = true)]
        public int? CardExpiryYear { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public string Name { get; set; }
    }
  
    public partial class UpdateSepaAccountRequest
    {
        [Documentation(Required = true)]
        public string BankIdentifierCode { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public int? MandateType { get; set; }

        [Documentation(Required = true)]
        public string Name { get; set; }

        [Documentation(Required = true)]
        public DateTime? SignatureDate { get; set; }
    }
  
    public partial class WebLogin
    {
        [Documentation(Required = false)]
        public DateTime? ConstituentUpdateDate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public Entity Constituent { get; set; }

        [Documentation(Required = false, FKTable = "T_EADDRESS", FKColumn = "eaddress_no", FKResourceName = "ElectronicAddresses")]
        public Entity Email { get; set; }

        [Documentation(Required = true)]
        public int FailedAttempts { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false)]
        public DateTime? LastLoginDate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public DateTime? LockedDate { get; set; }

        [Documentation(Required = true, MaxLength = 80)]
        public string Login { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_LOGIN_TYPE", FKColumn = "id", FKResourceName = "LoginTypes")]
        public LoginTypeSummary LoginType { get; set; }

        [Documentation(Required = true)]
        public bool PrimaryIndicator { get; set; }

        [Documentation(Required = true)]
        public bool? TemporaryIndicator { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class WebLogins : List<WebLogin>
    {
    }
 public partial class WorkerQualification {
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=false)]
        public DateTime? EndDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=false)]
        public DateTime? StartDateTime { get; set; }
        
        [Documentation(Required=true, FKTable="T_CUSTOMER", FKColumn="customer_no", FKResourceName="Constituents")]
        public ConstituentDisplaySummary Constituent { get; set; }
        
        [Documentation(Required=true, FKTable="TR_QUALIFICATION", FKColumn="id", FKResourceName="Qualifications")]
        public QualificationSummary Qualification { get; set; }
    }
    
    public partial class WorkerQualifications : List<WorkerQualification> {
    }
  
    [Serializable]
    public partial class CustomDataItem
    {
        public string Name { get; set; }

        /// <summary>
        /// The index for the custom data element.
        /// </summary>
        [Documentation(Required = true)]
        public int? Index { get; set; }

        public int? KeywordId { get; set; }

        public bool? IsDropdown { get; set; }

        /// <summary>
        /// The value for the custom data element.
        /// </summary>
        [Documentation(Required = true)]
        public string Value { get; set; }

        public string DataType { get; set; }

        public string Description { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    [Serializable]
    public partial class CustomDataItems : List<CustomDataItem>
    {
    }
  
    public partial class LocalProcedureRequest
    {
        public int? ProcedureId { get; set; }

        public string ProcedureName { get; set; }

        public string Parameters { get; set; }
    }
  
    public partial class SendTemplateEmailRequest
    {
        public int TemplateId { get; set; }

        public string EmailAddress { get; set; }

        public int EmailProfileId { get; set; }
    }
  
    [Serializable]
    public partial class Booking
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public BookingAssignments Assignments { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public int BookingSource { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public BookingCategorySummary Category { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 8000)]
        public string ConfirmationText { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 8000)]
        public string Notes { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 100)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public DateTime? DefaultDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public int? DefaultDuration { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public int? DefaultCount { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public bool EditIndicator { get; set; }

    }

    [Serializable]
    public partial class Bookings : List<Booking>
    {
    }

    [Serializable]
    public partial class BookingSummary
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 100)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public BookingCategorySummary Category { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public bool EditIndicator { get; set; }
    }


    [Serializable]
    public partial class BookingSummaries : List<BookingSummary>
    {
    }

  
    [Serializable]
    public partial class BookingAssignment
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public QualificationIds Qualifications { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public ResourceSummary Resource { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public ResourceTypeSummary ResourceType { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public ResourceSchedule Schedule { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true, FKTable = "T_BOOKING", FKColumn = "id", FKResourceName = "Bookings")]
        public int? BookingId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 8000)]
        public string ConfirmationText { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 8000)]
        public string Notes { get; set; }

        [Documentation(Required = false)]
        public bool IgnoreScheduleConflicts { get; set; }

        [Documentation(Required = false)]
        public virtual string OverriddenBy { get; set; }

        [Documentation(Required = false)]
        public virtual DateTime? OverrideDateTime { get; set; }

        [Documentation(Required = false)]
        public virtual bool EditIndicator { get; set; }

        [Documentation(Required = false)]
        public virtual bool ViewIndicator { get; set; }
    }

    [Serializable]
    public partial class BookingAssignments : List<BookingAssignment>
    {
    }

    [Serializable]
    public partial class BookingAssignmentSummary
    {
   
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public ResourceSummary Resource { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public ResourceTypeSummary ResourceType { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true, FKTable = "T_BOOKING", FKColumn = "id", FKResourceName = "Bookings")]
        public int? BookingId { get; set; }
    }

    [Serializable]
    public partial class BookingAssignmentSummaries : List<BookingAssignmentSummary>
    {
    }
  
    public partial class BookingTemplate
    {
        [Documentation(Required = false, FKResourceName = "BookingTemplateAssignments", FKTable = "T_BOOKING_TEMPLATE_ASSIGNMENTS", FKColumn = "id")]
        public BookingTemplateAssignments Assignments { get; set; }

        [Documentation(Required = true, FKResourceName = "BookingCategory", FKTable = "TR_BOOKING_CATEGORY", FKColumn = "id")]
        public BookingCategorySummary Category { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ConfirmationText { get; set; }

        [Documentation(Required = false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = true, MaxLength = 100)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public bool EditIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Notes { get; set; }

        [Documentation(Required=false)]
        public DateTime? OverrideTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }
    }
  
    public partial class BookingTemplateAssignment
    {
        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false)]
        public virtual bool EditIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = false)]
        public int? MinutesDuration { get; set; }

        [Documentation(Required = true)]
        public int MinutesOffset { get; set; }

        [Documentation(Required = false)]
        public int? OverrideCount { get; set; }

        [Documentation(Required = false, FKResourceName = "Qualifications", FKTable = "TR_QUALIFICATION", FKColumn = "id")]
        public List<int> Qualifications { get; set; }

        [Documentation(Required = true, FKResourceName = "ResourceTypes", FKTable = "TR_RESOURCE_TYPE", FKColumn = "id")]
        public ResourceTypeSummary ResourceType { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false)]
        public virtual bool ViewIndicator { get; set; }
    }

    public partial class BookingTemplateAssignments : List<BookingTemplateAssignment>
    {
    }
  
    public partial class BookingTemplateSummary
    {
        public BookingCategorySummary Category { get; set; }

        public string Description { get; set; }

        public int Id { get; set; }

        public bool Inactive { get; set; }
    }

    public partial class BookingTemplateSummaries : List<BookingTemplateSummary>
    {
    }
  
    [Serializable]
    public partial class QualificationIds : List<int>
    {

    }
  
    [Serializable]
    public partial class Resource
    {
        [Documentation(Required = false)]
        public int? Capacity { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 8000)]
        public string DefaultConfirmationText { get; set; }

        [Documentation(Required = true, RequiredForPost = true, RequiredForPut = true, MaxLength = 100)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 8000)]
        public string Notes { get; set; }

        [Documentation(Required = false)]
        public ConstituentDisplaySummary Constituent { get; set; }

        [Documentation(Required = true, FKTable = "TR_RESOURCE_TYPE", FKColumn = "id", FKResourceName = "ResourceTypes")]
        public ResourceTypeSummary ResourceType { get; set; }

        [Documentation(Required = false, Description = "Edit rights based on Resource Type control group.  Generated.")]
        public bool EditIndicator { get; set; }
    }

    [Serializable]
    public partial class Resources : List<Resource>
    {
    }

    [Serializable]
    public partial class ResourceSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public int? Capacity { get; set; }

        public bool? Inactive { get; set; }
        
        public ResourceTypeSummary ResourceType { get; set; }

        public Entity Constituent { get; set; }
    }

    [Serializable]
    public partial class ResourceSummaries : List<ResourceSummary>
    {
    }
  
    public partial class ResourceDetail
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public EntitySummary ResourceType { get; set; }

        public EntitySummary ResourceCategory { get; set; }

        public EntitySummaries Qualifications { get; set; }

        public int? ConstituentId { get; set; }

        public ResourceScheduleOccurrences ScheduleOccurrences { get; set; }
    }

    public partial class ResourceDetails : List<ResourceDetail> { }

  
    [Serializable]
    public partial class ResourceSchedule
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public DateTime? RecurrenceEndDate { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public int RecurrencePattern { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public int? RecurrenceInterval { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public int? RecurrenceOrdinal { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public string RecurrenceDayOfWeek { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public int? ResourceId { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, FKTable = "T_BOOKING_ASSIGNMENT", FKColumn = "id", FKResourceName = "BookingAssignments")]
        public int? BookingAssignmentId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, FKTable = "T_CUSTOMER", FKColumn = "id", FKResourceName = "Constituents")]
        public int? ConstituentId { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true, FKTable = "TR_SCHEDULE_TYPE", FKColumn = "id", FKResourceName = "ScheduleTypes")]
        public ScheduleTypeSummary Type { get; set; }

        [Documentation(Required = false)]
        public int? Count { get; set; }

        public bool? OverrideConflicts { get; set; }
    }

    [Serializable]
    public partial class ResourceSchedules : List<ResourceSchedule>
    {
    }
  
    public partial class ResourceScheduleOccurrence
    {
        public int ScheduleId { get; set; }

        public string ScheduleDescription { get; set; }

        public int ScheduleTypeId { get; set; }

        public DateTime? StartDateTime { get; set; }

        public DateTime? EndDateTime { get; set; }

        public int? RecurrencePattern { get; set; }

        public bool IsShared { get; set; }

        public int? Count { get; set; }

        public int? BookingAssignmentId { get; set; }

        public EntitySummary Booking { get; set; }
    }

    public partial class ResourceScheduleOccurrences : List<ResourceScheduleOccurrence>
    {
    }
  
    [Serializable]
    public partial class ResourceType
    {
        public ResourceCategorySummary Category { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = true)]
        public bool RequireAvailability { get; set; }

        [Documentation(Required = true)]
        public bool CanBeShared { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(Required = true)]
        public bool HasCapacity { get; set; }


        [Documentation(Required = false)]
        public bool EditIndicator { get; set; }
    }

    [Serializable]
    public partial class ResourceTypes : List<ResourceType>
    {
    }

    [Serializable]
    public partial class ResourceTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public ResourceCategorySummary Category { get; set; }

        public bool RequireAvailability { get; set; }

        public bool? Inactive { get; set; }

        public bool CanBeShared { get; set; }

        public bool HasCapacity { get; set; }

        public bool EditIndicator { get; set; }

    }

    [Serializable]
    public partial class ResourceTypeSummaries : List<ResourceTypeSummary>
    {
    }
  
    public partial class ResourceUsage
    {
        public bool HasSchedules { get; set; }

        public bool HasAssignments { get; set; }
    }
  
    public partial class ScheduleOccurrence
    {
        public int ScheduleId { get; set; }

        public string ScheduleDescription { get; set; }

        public int ScheduleTypeId { get; set; }

        public DateTime? StartDateTime { get; set; }

        public DateTime? EndDateTime { get; set; }

        public int? RecurrencePattern { get; set; }

        public bool IsShared { get; set; }

        public int? Count { get; set; }

        public int? BookingAssignmentId { get; set; }

        public int? ConstituentId { get; set; }

        public EntitySummary Resource { get; set; }

        public EntitySummary Booking { get; set; }

        public EntitySummary ResourceType { get; set; }

        public EntitySummary ResourceCategory { get; set; }
    }

    public partial class ScheduleOccurrences : List<ScheduleOccurrence>
    {
    }
  
    public partial class ScheduleOccurrencesRequest
    {
        /// <summary>
        /// A comma separated list of resource ids.
        /// </summary>
        [Documentation(Required = false)]
        public string ResourceIds { get; set; }

        /// <summary>
        /// A comma separated list of constituent ids.
        /// </summary>
        [Documentation(Required = false)]
        public string ConstituentIds { get; set; }

        /// <summary>
        /// A comma separated list of resource type ids. Only (TBD) schedules are returned.
        /// </summary>
        [Documentation(Required = false)]
        public string ResourceTypeIds { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(Required = false)]
        public bool ExpandWorkerAssignments { get; set; }
    }
  
    public partial class Appeal
    {
        [Documentation(Required = false)]
        public virtual decimal AppealItemizedCost { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public virtual DateTime? EndDateTime { get; set; }

        [Documentation(Required = false)]
        public virtual decimal GiftAmount { get; set; }

        [Documentation(Required = false)]
        public virtual decimal GoalAmount { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public virtual int NumSuccessConstituents { get; set; }

        [Documentation(Required = true)]
        public virtual int NumTargetConstituents { get; set; }

        [Documentation(Required = false)]
        public virtual decimal PledgeReceivedAmount { get; set; }

        [Documentation(Required = false)]
        public virtual decimal PledgeAmount { get; set; }

        [Documentation(Required = false)]
        public virtual DateTime? StartDateTime { get; set; }

        [Documentation(Required = true)]
        public virtual string Status { get; set; }

        [Documentation(Required = true, FKTable = "T_CAMPAIGN", FKColumn = "campaign_no", FKResourceName = "Campaigns")]
        public virtual CampaignSummary Campaign { get; set; }

        [Documentation(Required = false, FKTable = "TR_Appeal_Category", FKColumn = "id", FKResourceName = "")]
        public virtual AppealCategorySummary Category { get; set; }

        [Documentation(Required = true)]
        public virtual ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Appeals : List<Appeal>
    {
    }
  
    public partial class AppealSummaries : List<AppealSummary>
    {
    }
  
    public partial class AppealSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class Batch
    {
        [Documentation(Required = false)]
        public decimal AmtPosted { get; set; }

        [Documentation(Required = false, FKTable = "TR_BATCH_TYPE", FKColumn = "id", FKResourceName = "BatchTypes")]
        public BatchTypeSummary BatchType { get; set; }

        [Documentation(Required = false)]
        public DateTime? CloseDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 8)]
        public string ClosedBy { get; set; }

        [Documentation(Required = true)]
        public string CntlIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Notes { get; set; }

        [Documentation(Required = false)]
        public int NumAccCc { get; set; }

        [Documentation(Required = false)]
        public int NumRejCc { get; set; }

        [Documentation(Required = false, MaxLength = 16)]
        public string OpenLoc { get; set; }

        [Documentation(Required = false, MaxLength = 8, FKTable = "T_METUSER", FKColumn = "userid", FKResourceName = "")]
        public string Owner { get; set; }

        [Documentation(Required = false)]
        public int PostId { get; set; }

        [Documentation(Required = false, MaxLength = 8)]
        public string PostedBy { get; set; }

        [Documentation(Required = false)]
        public DateTime? PostedDateTime { get; set; }

        [Documentation(Required = false)]
        public string Status { get; set; }

        [Documentation(Required = false)]
        public decimal TallyPlAmount { get; set; }

        [Documentation(Required = false)]
        public decimal TallyReAmount { get; set; }

        [Documentation(Required = false, MaxLength = 13)]
        public string UniqueTag { get; set; }

        public virtual DateTime? UpdatedDateTime { get; set; }

        public virtual string UpdatedBy { get; set; }
    }
  
    public partial class Batches : List<Batch>
    {
    }
  
    public partial class BatchTypeUserGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_BATCH_TYPE", FKColumn = "id", FKResourceName = "BatchTypes")]
        public BatchTypeSummary BatchType { get; set; }

        [Documentation(Required = true, MaxLength = 8, FKTable = "T_METUSERGROUP", FKColumn = "UG_id", FKResourceName = "")]
        public UserGroupSummary UserGroup { get; set; }
    }
  
    public partial class BatchTypeUserGroups : List<BatchTypeUserGroup>
    {
    }
  
    public partial class Campaign
    {
        [Documentation(Required = false)]
        public bool? AutoRestrictContributionsBeforeStartDate { get; set; }

        [Documentation(Required = false)]
        public string Type { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public int? CategoryId { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(Required = false)]
        public DateTime? EventDateTime { get; set; }

        [Documentation(Required = false)]
        public decimal? EventExpense { get; set; }

        [Documentation(Required = false)]
        public decimal? EventMinimumAmount { get; set; }

        [Documentation(Required = false)]
        public int? FYear { get; set; }

        [Documentation(Required = false)]
        public decimal? GiftAmount { get; set; }

        [Documentation(Required = false)]
        public decimal? GoalAmount { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public string MembershipIncludesMatchingGifts { get; set; }

        [Documentation(Required = false)]
        public decimal? MinimumPledgeAmount { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Notes { get; set; }

        [Documentation(Required = false)]
        public int? NumSuccessCust { get; set; }

        [Documentation(Required = false)]
        public int? NumTargetCust { get; set; }

        [Documentation(Required = false)]
        public int? NumTickets { get; set; }

        [Documentation(Required = false)]
        public decimal? PledgeReceivedAmount { get; set; }

        [Documentation(Required = false)]
        public decimal? PledgeAmount { get; set; }

        [Documentation(Required = false)]
        public string SingleOpenPledgeIndicator { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = false)]
        public string Status { get; set; }

        [Documentation(Required = false)]
        public decimal? TotalTicketIncome { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class CampaignDesignation
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "T_CAMPAIGN", FKColumn = "campaign_no", FKResourceName = "Campaigns")]
        public CampaignSummary Campaign { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONT_DESIGNATION", FKColumn = "id", FKResourceName = "ContributionDesignations")]
        public ContributionDesignationSummary Designation { get; set; }

        [Documentation(Required = true)]
        public bool DefaultIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class CampaignDesignations : List<CampaignDesignation>
    {
    }
  
    public partial class CampaignFund
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "T_CAMPAIGN", FKColumn = "campaign_no", FKResourceName = "Campaigns")]
        public CampaignSummary Campaign { get; set; }

        [Documentation(Required = true, FKTable = "T_FUND", FKColumn = "fund_no", FKResourceName = "Funds")]
        public FundSummary Fund { get; set; }

        [Documentation(Required = true)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class CampaignFunds : List<CampaignFund>
    {
    }
  
    public partial class CampaignSummaries : List<CampaignSummary>
    {
    }
  
    public partial class CampaignSummary
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public int? FYear { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false, FKTable = "T_MEMB_ORG", FKColumn = "memb_org_no", FKResourceName = "MembershipOrganizations")]
        public MembershipOrganizationSummary MembershipOrganization { get; set; }
    }
  
    public partial class Contribution
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public int? AccountId { get; set; }

        [Documentation(Required = false)]
        public int? AppealId { get; set; }

        [Documentation(Required = false, FKTable = "T_BATCH", FKColumn = "batch_no", FKResourceName = "Batches")]
        public int? BatchId { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string BillingAccount { get; set; }

        [Documentation(Required = false)]
        public int? BillingTypeId { get; set; }

        [Documentation(Required = false)]
        public short? BusinessUnitId { get; set; }

        [Documentation(Required = false, FKTable = "T_CAMPAIGN", FKColumn = "campaign_no", FKResourceName = "Campaigns")]
        public CampaignSummary Campaign { get; set; }

        [Documentation(Required = false)]
        public string Cancel { get; set; }

        [Documentation(Required = false, FKTable = "TR_SALES_CHANNEL", FKColumn = "id", FKResourceName = "SalesChannels")]
        public SalesChannelSummary Channel { get; set; }

        [Documentation(Required = false)]
        public decimal ContributionAmount { get; set; }

        [Documentation(Required = false)]
        public short ContributionDesignation { get; set; }

        [Documentation(Required = false)]
        public DateTime? ContributionDateTime { get; set; }

        [Documentation(Required = false)]
        public string Type { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom0 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom1 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom2 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom3 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom4 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom5 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom6 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom7 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom8 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom9 { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public ConstituentDisplaySummary Initiator { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public ConstituentDisplaySummary Constituent { get; set; }

        [Documentation(Required = false, FKTable = "T_FUND", FKColumn = "fund_no", FKResourceName = "Funds")]
        public FundSummary Fund { get; set; }

        [Documentation(Required = false, FKTable = "T_PLAN", FKColumn = "plan_no", FKResourceName = "Plans")]
        public PlanSummary Plan { get; set; }

        [Documentation(Required = false)]
        public DateTime? KindGiftTransferDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string KindGiftDescription { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public string MatchIndicator { get; set; }

        [Documentation(Required = false)]
        public int? MatchingContributionId { get; set; }

        [Documentation(Required = false, FKTable = "TR_MEDIA_TYPE", FKColumn = "id", FKResourceName = "MediaTypes")]
        public MediaTypeSummary MediaType { get; set; }

        [Documentation(Required = false)]
        public int MirrorLock { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Notes { get; set; }

        [Documentation(Required = false)]
        public DateTime? PaymentEndDateTime { get; set; }

        [Documentation(Required = false)]
        public int? PledgeStatusId { get; set; }

        [Documentation(Required = false)]
        public DateTime? PaymentStartDateTime { get; set; }

        [Documentation(Required = false)]
        public decimal ReceivedAmount { get; set; }

        [Documentation(Required = false, MaxLength = 8)]
        public string Solicitor { get; set; }

        [Documentation(Required = false)]
        public int? SourceId { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class Contributions : List<Contribution>
    {
    }
  
    public partial class Fund
    {
        [Documentation(Required = true, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int? BusinessUnitId { get; set; }

        [Documentation(Required = false, FKTable = "TR_CONSTITUENCY", FKColumn = "id", FKResourceName = "ConstituencyTypes")]
        public int? ConstituencyId { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_GIFTAID_TYPE", FKColumn = "id", FKResourceName = "GiftAidTypes")]
        public int? GiftAidTypeId { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public bool? TicketingIndicator { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class FundSummaries : List<FundSummary>
    {
    }
  
    public partial class FundSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public int? BusinessUnitId { get; set; }

        public bool Inactive { get; set; }

        public bool? TicketingIndicator { get; set; }

        public bool? EditIndicator { get; set; }

        public int ConstituencyId { get; set; }
    }
  
    public partial class GiftCertificateInfo
    {
        public string GiftCertificateNumber { get; set; }

        public decimal OriginalAmount { get; set; }

        public decimal UsedAmount { get; set; }

        public decimal Balance { get; set; }

        public DateTime OriginalDate { get; set; }

        public int? PrintCount { get; set; }

        public DateTime? LastPrintDate { get; set; }

        /// <summary>
        /// The batch that has the gift certificate locked, if any.
        /// </summary>
        public int? BatchId { get; set; }

        /// <summary>
        /// The web session key of a current web session that has used amounts from this gift certificate.
        /// </summary>
        public string SessionKey { get; set; }
    }
  
    public partial class GiftCertificateRedemptionRequest
    {
         public string Number { get; set; }

        public int? BatchId { get; set; }

        public bool LockForBatch { get; set; }

        public int? PaymentMethodId { get; set; }
    }
  
    public partial class GiftCertificateTransactions : List<GiftCertificateTransaction>
    {
        
    }

    public partial class GiftCertificateTransaction
    {
        public string Action { get; set; }

        public decimal Amount { get; set; }

        public DateTime TransactionDate { get; set; }

        public int PaymentId { get; set; }
    }
  
    public partial class List
    {
        [Documentation(Required = true, FKTable = "TR_LIST_CATEGORY", FKColumn = "id", FKResourceName = "ListCategories")]
        public ListCategorySummary Category { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(Required = true)]
        public int? ConstituentCount { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public ListCriterias Criteria { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public bool? IsDynamic { get; set; }

        public bool? IsManual { get; set; }

        [Documentation(Required = false)]
        public DateTime? LastUsedDateTime { get; set; }

        public ListRelationshipOptions RelationshipOptions { get; set; }

        [Documentation(Required = true)]
        public bool? TMSIndicator { get; set; }

        [Documentation(Required = true)]
        public bool? TStatsIndicator { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public bool? EditIndicator { get; set; }

        [Documentation(Required = false)]
        public string ListSql { get; set; }
    }
  
    public partial class ListContent
    {
        public ListContent()
        {
        }

        public ListContent(int constituentId)
        {
            ConstituentId = constituentId;
        }

        public int ConstituentId { get; set; }
    }
  
    public partial class ListContentDetail
    {
        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public ConstituentDisplaySummary Constituent { get; set; }
    }
  
    public partial class ListContents : List<ListContent>
    {
        public ListContents()
        {
        }

        public ListContents(List<int> constituentIds)
        {
            constituentIds.ForEach(i => Add(new ListContent(i)));
        }
    }
  
    public partial class ListContentsDetails : List<ListContentDetail>
    {
    }
  
    public partial class ListRelationshipOptions
    {
        public string AssociatedTypes { get; set; }

        public bool AssociatedInactive { get; set; }

        public bool AssociatedUseDates { get; set; }

        public ListSummary AssociatedList { get; set; }

        public string AffiliatedGroupTypes { get; set; }

        public bool AffiliatedGroupInactive { get; set; }

        public bool AffiliatedGroupUseDates { get; set; }

        public ListSummary AffiliatedGroupList { get; set; }

        public string AffiliatedIndividualTypes { get; set; }

        public bool AffiliatedIndividualInactive { get; set; }

        public bool AffiliatedIndividualUseDates { get; set; }

        public ListSummary AffiliatedIndividualList { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }


        public bool KeepOrReplaceOriginal { get; set; }

        public bool ReplaceIndividuals { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

    }
  
    public partial class Lists : List<List>
    {
    }
  
    public partial class ListSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public int? ConstituentCount { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class MembershipLevel
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = true, MaxLength = 3)]
        public string Code { get; set; }

        [Documentation(Required = true, FKTable = "T_MEMB_ORG", FKColumn = "memb_org_no", FKResourceName = "MembershipOrganizations")]
        public MembershipOrganizationSummary MembershipOrganization { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public int? Rank { get; set; }

        [Documentation(Required = false)]
        public decimal? StartAmount { get; set; }

        [Documentation(Required = false)]
        public decimal? EndAmount { get; set; }

        public bool EditIndicator { get; set; }

        [Documentation(Required = false)]
        public string Initiation { get; set; }

        [Documentation(Required = false)]
        public int? Expiry { get; set; }

        [Documentation(Required = false)]
        public int? Renewal { get; set; }

        [Documentation(Required = false)]
        public int? LapseSuspended { get; set; }

        [Documentation(Required = false)]
        public int? Reinstate { get; set; }

        [Documentation(Required = false)]
        public decimal? GoodsAndServicesValue { get; set; }

        [Documentation(Required = false)]
        public int? NumberOfIssues { get; set; }

        [Documentation(Required = false)]
        public decimal? MinimumPaymentAmount { get; set; }

        [Documentation(Required = false)]
        public int? Cancel { get; set; }

        [Documentation(Required = false, FKTable = "TR_CONSTITUENCY", FKColumn = "id", FKResourceName = "ConstituencyTypes")]
        public ConstituencyType ConstituencyType { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = false, FKTable = "TR_MEMB_LEVEL_CATEGORY", FKColumn = "id", FKResourceName = "MembershipLevelCategories")]
        public MembershipLevelCategory Category { get; set; }

        [Documentation(Required = false)]
        public int? Suspend { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = true)]
        public string ExpiresEndOfMonth { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class MembershipLevels : List<MembershipLevel>
    {
    }
  
    public partial class MembershipLevelSummaries : List<MembershipLevelSummary>
    {
    }
  
    public partial class MembershipLevelSummary
    {
        public MembershipOrganizationSummary MembershipOrganization { get; set; }

        public string Code { get; set; }

        public int Id { get; set; }

        public string Description { get; set; }

        public decimal? StartAmount { get; set; }

        public decimal? EndAmount { get; set; }

        public int Rank { get; set; }

        public ConstituencyTypeSummary ConstituencyType { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class MembershipOrganization
    {
        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public bool EditIndicator { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class MembershipOrganizations : List<MembershipOrganization>
    {
    }
  
    public partial class MembershipOrganizationSummaries : List<MembershipOrganizationSummary>
    {
    }
  
    public partial class MembershipOrganizationSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class Plan
    {
        [Documentation(Required = false)]
        public decimal? AskAmount { get; set; }

        [Documentation(Required = true, FKTable = "T_CAMPAIGN", FKColumn = "campaign_no", FKResourceName = "Campaigns")]
        public CampaignSummary Campaign { get; set; }

        [Documentation(Required = false)]
        public DateTime? CompleteByDateTime { get; set; }

        [Documentation(Required = false)]
        public decimal? ContributionAmount { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONT_DESIGNATION", FKColumn = "id", FKResourceName = "ContributionDesignations")]
        public ContributionDesignationSummary ContributionDesignation { get; set; }

        public bool? HasSteps { get; set; }

        public bool? HasOpenSteps { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        public CustomDataItems CustomDataItems { get; set; }

        public bool? EditIndicator { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public ConstituentDisplaySummary Constituent { get; set; }

        [Documentation(Required = false, FKTable = "T_FUND", FKColumn = "fund_no", FKResourceName = "Funds")]
        public FundSummary Fund { get; set; }

        [Documentation(Required = false)]
        public decimal? GoalAmount { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public string Notes { get; set; }

        [Documentation(Required = false, FKTable = "TR_PLAN_PRIORITY", FKColumn = "id", FKResourceName = "PlanPriorities")]
        public PlanPrioritySummary Priority { get; set; }

        [Documentation(Required = true)]
        public decimal? Probability { get; set; }

        [Documentation(Required = false)]
        public decimal? RecordedAmount { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public string PlanAssociates { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = true, FKTable = "TR_PLAN_STATUS", FKColumn = "id", FKResourceName = "PlanStatuses")]
        public PlanStatusSummary Status { get; set; }

        [Documentation(Required = true, FKTable = "TR_PLAN_TYPE", FKColumn = "id", FKResourceName = "PlanTypes")]
        public PlanTypeSummary Type { get; set; }

        [Documentation(Required = true, FKTable = "TR_PLAN_SOURCE", FKColumn = "id", FKResourceName = "PlanSources")]
        public PlanSourceSummary OriginalSource { get; set; }

        public ConstituentShortDisplayNameSummary PrimaryWorker { get; set; }

        public StepTypeSummary LastStepType { get; set; }

        public DateTime? LastStepDate { get; set; }

        public StepTypeSummary NextStepType { get; set; }

        public DateTime? NextStepDate { get; set; }

        public string LastWorkerDisplayName { get; set; }
    }
  
    public partial class PlanAssociate
    {
        public int AssociateId { get; set; }

        public int PlanId { get; set; }
    }
  
    public partial class PlanAssociates : List<PlanAssociate>
    {
    }
  
    public partial class Plans : List<Plan>
    {
    }
  
    public partial class PlanSummary
    {
        public CampaignSummary Campaign { get; set; }

        public ContributionDesignationSummary ContributionDesignation { get; set; }

        public ConstituentDisplaySummary Constituent { get; set; }

        public FundSummary Fund { get; set; }

        public int? Id { get; set; }
    }
  
    public partial class PlanWorker
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public ConstituentDisplaySummary Worker { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public bool PrimaryIndicator { get; set; }

        [Documentation(Required = true)]
        public bool ShowInPortfolio { get; set; }

        [Documentation(Required = true, FKTable = "TR_WORKER_ROLE", FKColumn = "id", FKResourceName = "WorkerRoles")]
        public WorkerRoleSummary Role { get; set; }

        [Documentation(Required = true, FKTable = "T_PLAN", FKColumn = "plan_no", FKResourceName = "Plans")]
        public Entity Plan { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class PlanWorkers : List<PlanWorker>
    {
    }
  
    public partial class Portfolio
    {
        public ConstituentDisplaySummary Constituent { get; set; }

        public PortfolioPlans Plans { get; set; }

        public int TotalPlans { get; set; }

        public int Page { get; set; }

        public int PageSize { get; set; }
    }
  
    public partial class PortfolioCustomDataItem
    {
        public string Name { get; set; }

        public int? Index { get; set; }

        public int? CustomElementId { get; set; }

        public string Value { get; set; }

        public string Description { get; set; }

        public string DataType { get; set; }

        public Boolean IsDropdown { get; set; }
    }
  
    public partial class PortfolioCustomDataItems : List<PortfolioCustomDataItem>
    {
    }
  
    public partial class PortfolioPlan
    {
        public string ActiveWorkers { get; set; }

        public StepTypeSummary LastStepType { get; set; }

        public DateTime? LastStepDate { get; set; }

        public StepTypeSummary NextStepType { get; set; }

        public DateTime? NextStepDate { get; set; }

        public decimal? AskAmount { get; set; }

        public CampaignSummary Campaign { get; set; }

        public DateTime? CompleteByDateTime { get; set; }

        public decimal? ContributionAmount { get; set; }

        public ContributionDesignationSummary ContributionDesignation { get; set; }

        public bool HasSteps { get; set; }

        public bool HasOpenSteps { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public PortfolioCustomDataItems CustomPlanElements { get; set; }

        public PortfolioCustomDataItems CustomPortfolioElements { get; set; }

        public bool? EditIndicator { get; set; }

        public ConstituentDisplaySummary Constituent { get; set; }

        public FundSummary Fund { get; set; }

        public decimal? GoalAmount { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public string Notes { get; set; }

        public PlanPrioritySummary Priority { get; set; }

        public decimal? Probability { get; set; }

        public decimal? RecordedAmount { get; set; }

        public int? Id { get; set; }

        public DateTime? StartDateTime { get; set; }

        public PlanStatusSummary Status { get; set; }

        public PlanTypeSummary Type { get; set; }

        public PlanSourceSummary OriginalSource { get; set; }

        public ConstituentShortDisplayNameSummary PrimaryWorker { get; set; }

        public string LastWorkerDisplayName { get; set; }
    }
  
    public partial class PortfolioPlans : List<PortfolioPlan>
    {
    }
  
    public partial class PortfolioPlanSummaries : List<PortfolioPlanSummary>
    {
    }
  
    public partial class PortfolioPlanSummary
    {
        public StepTypeSummary LastStepType { get; set; }

        public DateTime? LastStepDate { get; set; }

        public StepTypeSummary NextStepType { get; set; }

        public DateTime? NextStepDate { get; set; }

        public decimal? AskAmount { get; set; }

        public CampaignSummary Campaign { get; set; }

        public DateTime? CompleteByDateTime { get; set; }

        public decimal? ContributionAmount { get; set; }

        public ContributionDesignationSummary ContributionDesignation { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public bool? EditIndicator { get; set; }

        public ConstituentDisplaySummary Constituent { get; set; }

        public FundSummary Fund { get; set; }

        public decimal? GoalAmount { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public string Notes { get; set; }

        public PlanPrioritySummary Priority { get; set; }

        public decimal? Probability { get; set; }

        public decimal? RecordedAmount { get; set; }

        public int? Id { get; set; }

        public DateTime? StartDateTime { get; set; }

        public PlanStatusSummary Status { get; set; }

        public PlanTypeSummary Type { get; set; }

        public PlanSourceSummary OriginalSource { get; set; }
    }
  
    public partial class Premium
    {
        [Documentation(Required = false)]
        public DateTime? AvailableDateTime { get; set; }

        [Documentation(Required = false)]
        public decimal CostAmount { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = false)]
        public int? NumUnits { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public decimal ValueAmount { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public int? ControlGroup { get; set; }

        [Documentation(Required = false, FKTable = "TR_SHIP_METHOD", FKColumn = "id", FKResourceName = "ShipMethods")]
        public int? DeliveryMethodId { get; set; }
    }

    public partial class Premiums : List<Premium>
    {
    }
  
    public partial class Source
    {
        [Documentation(Required = false)]
        public decimal? AcquisitionCost { get; set; }

        [Documentation(Required = false)]
        public DateTime? AcquisitionDateTime { get; set; }

        [Documentation(Required = false)]
        public int? PromotionStatus { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public decimal DeliveryCost { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(Required = false)]
        public decimal FulfillCost { get; set; }

        [Documentation(Required = false)]
        public string HotlistStatus { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string Segment { get; set; }

        [Documentation(Required = false)]
        public int NumContacts { get; set; }

        [Documentation(Required = false)]
        public int NumSuccessConstituents { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string Provider { get; set; }

        [Documentation(Required = false)]
        public string RestrictedUsage { get; set; }

        [Documentation(Required = false)]
        public string SourceType { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = true)]
        public AppealSummary Appeal { get; set; }

        [Documentation(Required = false, FKTable = "T_LIST", FKColumn = "list_no", FKResourceName = "Lists")]
        public ListSummary List { get; set; }

        [Documentation(Required = true, FKTable = "TR_MEDIA_TYPE", FKColumn = "id", FKResourceName = "MediaTypes")]
        public MediaTypeSummary MediaType { get; set; }

        [Documentation(Required = false, FKTable = "TR_SOURCE_GROUP", FKColumn = "id", FKResourceName = "SourceGroups")]
        public SourceGroupSummary SourceGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Sources : List<Source>
    {
    }
  
    public partial class SourceSummaries : List<SourceSummary>
    {
    }
  
    public partial class SourceSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public AppealSummary Appeal { get; set; }
    }
  
    public partial class Step
    {
        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public ConstituentDisplaySummary Associate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public DateTime? CompletedOnDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public DateTime? DueDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string NewValue { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public string Notes { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string OldValue { get; set; }

        [Documentation(Required = true, FKTable = "T_PLAN", FKColumn = "plan_no", FKResourceName = "Plans")]
        public PlanSummary Plan { get; set; }

        [Documentation(Required = true, FKTable = "TR_STEP_TYPE", FKColumn = "id", FKResourceName = "StepTypes")]
        public StepTypeSummary Type { get; set; }

        [Documentation(Required = false)]
        public int? Priority { get; set; }

        [Documentation(Required = true)]
        public DateTime? StepDateTime { get; set; }

        [Documentation(Required = false)]
        public int? WarningDays { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public ConstituentShortDisplayNameSummary Worker { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class Steps : List<Step>
    {
    }
  
    public partial class Worker
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true, FKTable = "TR_WORKER_TYPE", FKColumn = "id", FKResourceName = "WorkerTypes")]
        public WorkerTypeSummary WorkerType { get; set; }

        public int ConstituentId { get; set; }

        public string SortName { get; set; }

        public string ShortDisplayName { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

        public PrefixSummary Prefix { get; set; }

        public SuffixSummary Suffix { get; set; }

        public ConstituentInactiveSummary ConstituentInactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class Workers : List<Worker>
    {
    }
  
    public partial class WorkerSummaries : List<WorkerSummary>
    {
    }
  
    public partial class WorkerSummary
    {
        public bool? Inactive { get; set; }

        public WorkerTypeSummaries WorkerTypes { get; set; }

        public int ConstituentId { get; set; }

        public string SortName { get; set; }

        public string ShortDisplayName { get; set; }
    }
  
    public partial class AccountReferenceNumberRequest
    {
        public int ConstituentId { get; set; }

        public string ReferenceNumber { get; set; }
    }
  
    public partial class AccountRequest
    {
        public int ConstituentId { get; set; }

        public int? PaymentMethodGroupId { get; set; }

        public bool Inactive { get; set; }

        public CardData Card { get; set; }

        public bool IsECommerce { get; set; }
    }
  
    public partial class AccountTokenRequest
    {
        public int ConstituentId { get; set; }

        public int PaymentMethodGroupId { get; set; }

        public CardData Card { get; set; }

        public string Token { get; set; }

        public bool IsECommerce { get; set; }
    }
  
    public partial class AuthorizationRequest
    {
        public decimal Amount { get; set; }

        public int PaymentId { get; set; }

        public int? ConstituentId { get; set; }

        public CardData Card { get; set; }

        public ThreeDSecureData ThreeDSecureData { get; set; }

        public BillingAddress BillingAddress { get; set; }

        public string AuthorizationCode { get; set; }

        public string ReferenceNumber { get; set; }

        public string TransactionOrigin { get; set; }

        public int PaymentMethodId { get; set; }

        public bool IsECommerce { get; set; }

        public bool AllowPartialAuth { get; set; }

        public string UserData { get; set; }

        public bool? StoreAccount { get; set; }
    }
  
    public partial class AuthorizationResponse
    {
        public string ResponseCode { get; set; }

        public string ResponseMessage { get; set; }

        public string AuthorizationCode { get; set; }

        public string ReferenceNumber { get; set; }

        public int AccountId { get; set; }

        public string CVVResponseCode { get; set; }

        public string AVSResponseCode { get; set; }

        public bool Succeeded { get; set; }

        public bool IsPartialAuth { get; set; }

        public decimal AuthorizedAmount { get; set; }

        public decimal BalanceAmount { get; set; }

        public string BalanceCurrencyCode { get; set; }
    }
  
    public partial class BillingAddress
    {
        public string PostalCode { get; set; }

        public string Street1 { get; set; }
    }
  
    public partial class CardData
    {
        public string CardHolderName { get; set; }

        public string CardNumber { get; set; }

        public string Cvv2 { get; set; }

        public string ExpirationDate { get; set; }

        public string Track1 { get; set; }

        public string Track2 { get; set; }

        public VantivEncryptedCard VantivEncryptedCard { get; set; }

        public string PaymentExpressToken { get; set; }

        public int? AccountId { get; set; }
    }

  
    public partial class ConfirmAuthorizationRequest
    {
        public decimal Amount { get; set; }

        public int PaymentId { get; set; }

        public string TransactionOrigin { get; set; }

        public int PaymentMethodId { get; set; }

        public bool IsECommerce { get; set; }

        public string UserData { get; set; }
    }
  
    public partial class ConfirmAuthorizationResponse
    {
        public string ResponseMessage { get; set; }

        public string ResponseCode { get; set; }

        public bool Succeeded { get; set; }
    }
  
    public partial class PaymentAccountResponse
    {
        public string ResponseCode { get; set; }

        public string ResponseMessage { get; set; }

        public int AccountId { get; set; }
    }
 public partial class PaymentGatewayActivity {
        
        [Documentation(Required=false, MaxLength=24)]
        public string AccountNumber { get; set; }
        
        [Documentation(Required=false)]
        public int? AccountId { get; set; }
        
        [Documentation(Required=false)]
        public decimal Amount { get; set; }
        
        [Documentation(Required=false, MaxLength=30)]
        public string AuthCode { get; set; }
        
        [Documentation(Required=false, MaxLength=64)]
        public string AvsAddress { get; set; }
        
        [Documentation(Required=false, MaxLength=10)]
        public string AvsPostalcode { get; set; }
        
        [Documentation(Required=false, MaxLength=1)]
        public string AvsResultCode { get; set; }
        
        [Documentation(Required=false)]
        public decimal? BalanceAmount { get; set; }
        
        [Documentation(Required=false, MaxLength=3)]
        public string BalanceCurrencyCode { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=false)]
        public int? ConstituentId { get; set; }

        [Documentation(Required = false, MaxLength = 1)]
        public string CvvResultCode { get; set; }

        [Documentation(Required=false, MaxLength=1)]
        public string EcommerceIndicator { get; set; }

        [Documentation(Required=false, MaxLength=16, NotesForPost = "Vantiv EMV Data")]
        public string EmvApplicationName { get; set; }

        [Documentation(Required = false, MaxLength = 32, NotesForPost = "Vantiv EMV Data")]
        public string EmvApplicationIdentifier { get; set; }

        [Documentation(Required = false, MaxLength = 1, NotesForPost = "Vantiv EMV Data")]
        public string EmvPinVerified { get; set; }

        [Documentation(Required = false, MaxLength= 3, NotesForPost = "Vantiv EMV Data")]
        public string EmvHostResponseCode { get; set; }

        [Documentation(Required = false, MaxLength = 150, NotesForPost = "Vantiv EMV Data")]
        public string EmvHostResponseMessage { get; set; }

        [Documentation(Required = false, MaxLength = 20, NotesForPost = "Vantiv EMV Data")]
        public string EmvCryptogram { get; set; }

        [Documentation(Required=false, MaxLength=10)]
        public string EntryMethod { get; set; }
        
        [Documentation(Required=false, MaxLength=6)]
        public string ExpirationDate { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=false, MaxLength=3)]
        public string MerchantId { get; set; }
        
        [Documentation(Required=false, MaxLength=56)]
        public string Name { get; set; }
        
        [Documentation(Required=false, MaxLength=20)]
        public string Origin { get; set; }
        
        [Documentation(Required=true)]
        public PaymentGatewayTransactionType PaymentGatewayTransactionTypeId { get; set; }
        
        [Documentation(Required=false)]
        public int? PaymentMethodGroupId { get; set; }
        
        [Documentation(Required=false)]
        public int? PaymentMethodId { get; set; }
        
        [Documentation(Required=false)]
        public int? PaymentId { get; set; }
        
        [Documentation(Required=false)]
        public int? ProviderCommunicationDurationMs { get; set; }
        
        [Documentation(Required=false)]
        public DateTime? ProviderTransactionDateTime { get; set; }
        
        [Documentation(Required=false, MaxLength=32)]
        public string ReferenceNumber { get; set; }
        
        [Documentation(Required=false, MaxLength=20)]
        public string ResponseCode { get; set; }
        
        [Documentation(Required=false, MaxLength=4000)]
        public string ResponseMessage { get; set; }
        
        [Documentation(Required=true, MaxLength=1)]
        public string Success { get; set; }

        [Documentation(Required = false, MaxLength = 16)]
        public string TerminalIdentifier { get; set; }

        [Documentation(Required=false, MaxLength=4000)]
        public string UserData { get; set; }
    }
    
    public partial class PaymentGatewayActivities : List<PaymentGatewayActivity> {
    }
  
    public enum PaymentProvider
    {
        Transcend,
        SecureCXL,
        Element,
        PaymentExpress,
        EPay,
        MasterCard,
        NoProcessorConfigured
    }

    public enum StoreCreditCardOption
    {
        [EnumMember]
        Yes,
        [EnumMember]
        Manual,
        [EnumMember]
        No
    }

    public partial class PaymentGatewayConfiguration
    {
        public PaymentProvider Provider { get; set; }

        public bool HasMultipleAccounts { get; set; }

        public bool CanTokenize { get; set; }

        public bool TokenizeCards { get; set; }

        public StoreCreditCardOption StoreCreditCardOption { get; set; }

        public bool CanRefundByReference { get; set; }

        public bool CanRefundUsingCardDetails { get; set; }

        public bool CanReverseCardReaderPayments { get; set; }

        public bool CanForceAuth { get; set; }

        public bool CanReverseCreditByReference { get; set; }

        public bool MustFilterTokens { get; set; }

        public bool CanReversePaymentByReference { get; set; }
    }
  
    public partial class ReversalRequest
    {
        public int PaymentId { get; set; }

        public decimal Amount { get; set; }

        public int PaymentMethodId { get; set; }

        public int? ConstituentId { get; set; }

        public string TransactionOrigin { get; set; }

        public bool IsECommerce { get; set; }

        public bool IsSwiped { get; set; }

        public bool IsElementDebit { get; set; }

        public string UserData { get; set; }
    }
  
    public partial class ReversalResponse
    {
        public string ResponseMessage { get; set; }

        public string ResponseCode { get; set; }

        public bool Succeeded { get; set; }
    }
  
    public partial class ThreeDSecureData
    {
        public string EciIndicatorType { get; set; }

        public string SecureTransactionId { get; set; }

        public string SecureTransactionSecurity { get; set; }

        public string VerAuthValue { get; set; }

        public string VerCertificateSerialCardHolder { get; set; }

        public string VerCertificateSerialCardAcceptor { get; set; }

        public string VerHashResult { get; set; }

        public string MpiSessionId { get; set; }
    }
  
    [XmlRoot("DvcMsg")]
    public partial class VantivEncryptedCard
    {
        [XmlAttribute("Ver")]
        public string Version { get; set; }

        [XmlElement("Dvc")]
        public VantivDevice vantivDevice { get; set; }

        [XmlElement("Card")]
        public VantivCard vantivCard { get; set; }

        [XmlElement("Addr")]
        public VantivAddr vantivAddr { get; set; }

        [XmlElement("Tran")]
        public VantivTran vantivTran { get; set; }
    }

    public partial class VantivAddr
    {
        [XmlAttribute("AVSAddr")]
        public string AvsAddr { get; set; }

        [XmlAttribute("AVSZip")]
        public string AvsZip { get; set; }
    }

    public partial class VantivDevice
    {
        [XmlAttribute("DvcType")]
        public string DvcType { get; set; }

        [XmlAttribute("DvcSN")]
        public string DvcSN { get; set; }

        [XmlAttribute("Entry")]
        public string Entry { get; set; }
    }

    public partial class VantivCard
    {
        [XmlAttribute("ECData")]
        public string ECData { get; set; }

        [XmlAttribute("ETrk1")]
        public string ETrk1 { get; set; }

        [XmlAttribute("ETrk2")]
        public string ETrk2 { get; set; }

        [XmlAttribute("CDataKSN")]
        public string CDataKSN { get; set; }

        [XmlAttribute("DbtKSN")]
        public string DbtKSN { get; set; }

        [XmlAttribute("DbtPINB")]
        public string DbtPINB { get; set; }

        [XmlAttribute("Exp")]
        public string Exp { get; set; }

        [XmlAttribute("MskPAN")]
        public string MskPAN { get; set; }

        [XmlAttribute("CHolder")]
        public string CHolder { get; set; }

        [XmlAttribute("EFormat")]
        public string EFormat { get; set; }
    }

    public partial class VantivTran
    {
        [XmlAttribute("TranType")]
        public string TranType { get; set; }
    }
  
    public partial class CalculateMembershipResponse
    {
         
    }
  
    public partial class AccountType
    {
        [Documentation(Required = false, MaxLength = 32)]
        public string CardLength { get; set; }

        [Documentation(Required = false, MaxLength = 32)]
        public string CardPrefix { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string EditMask { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public string Mod10Indicator { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string CardtypeIndicator { get; set; }
    }
  
    public partial class AccountTypes : List<AccountType>
    {
    }
  
    public partial class AccountTypeSummaries : List<AccountTypeSummary>
    {
    }
  
    public partial class AccountTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 32)]
        public string CardPrefix { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string CardtypeIndicator { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string EditMask { get; set; }
    }
  
    public partial class ActionType
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public bool? LetterIndicator { get; set; }
    }
  
    public partial class ActionTypes : List<ActionType>
    {
    }
  
    public partial class ActionTypeSummaries : List<ActionTypeSummary>
    {
    }
  
    public partial class ActionTypeSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ActivityCategories : List<ActivityCategory>
    {
    }
  
    public partial class ActivityCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public bool AutoClose { get; set; }
    }
  
    public partial class ActivityCategorySummaries : List<ActivityCategorySummary>
    {
    }
  
    public partial class ActivityCategorySummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ActivityType
    {
        [Documentation(Required = true, FKTable = "TR_CUST_ACTIVITY_CATEGORY", FKColumn = "id", FKResourceName = "ActivityCategories")]
        public ActivityCategorySummary Category { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public string PerfIndicator { get; set; }
    }
  
    public partial class ActivityTypes : List<ActivityType>
    {
    }
  
    public partial class ActivityTypeSummaries : List<ActivityTypeSummary>
    {
    }
  
    public partial class ActivityTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public ActivityCategorySummary Category { get; set; }
    }
  
    public partial class AddressType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class AddressTypes : List<AddressType>
    {
    }
  
    public partial class AddressTypeSummaries : List<AddressTypeSummary>
    {
    }
  
    [Serializable]
    public partial class AddressTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class AffiliationType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public bool UseSalary { get; set; }

        [Documentation(Required = true)]
        public bool UseTitle { get; set; }

        [Documentation(Required = true)]
        public bool IsAllowedToTransactDefault { get; set; }

        [Documentation(Required = true)]
        public bool IsIncludedInSearchResultsDefault { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = true, FKTable = "TR_RELATIONSHIP_CATEGORY", FKColumn = "id", FKResourceName = "RelationshipCategories")]
        public RelationshipCategorySummary RelationshipCategory { get; set; }
    }
  
    public partial class AffiliationTypes : List<AffiliationType>
    {
    }
  
    public partial class AffiliationTypeSummaries : List<AffiliationTypeSummary>
    {
    }
  
    public partial class AffiliationTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public bool UseSalary { get; set; }

        public bool UseTitle { get; set; }

        public bool IsIncludedInSearchResultsDefault { get; set; }

        public RelationshipCategorySummary RelationshipCategory { get; set; }
    }
  
    public partial class AliasType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
    }
  
    public partial class AliasTypes : List<AliasType>
    {
    }
  
    public partial class AliasTypeSummaries : List<AliasTypeSummary>
    {
    }
  
    public partial class AliasTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class AppealCategories : List<AppealCategory>
    {
    }
  
    public partial class AppealCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class AppealCategorySummaries : List<AppealCategorySummary>
    {
    }
  
    public partial class AppealCategorySummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class AssetType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class AssetTypes : List<AssetType>
    {
    }
  
    public partial class AssetTypeSummaries : List<AssetTypeSummary>
    {
    }
  
    public partial class AssetTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class AssociationType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public bool UseBirthDate { get; set; }

        [Documentation(Required = true)]
        public bool UseGender { get; set; }

        [Documentation(Required = true)]
        public bool IsIncludedInSearchResultsDefault { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = true, FKTable = "TR_RELATIONSHIP_CATEGORY", FKColumn = "id", FKResourceName = "RelationshipCategories")]
        public RelationshipCategorySummary RelationshipCategory { get; set; }

        [Documentation(Required = true, FKTable = "TR_ASSOCIATION_TYPE", FKColumn = "id", FKResourceName = "AssociationTypes")]
        public Entity ReciprocalType { get; set; }
    }
  
    public partial class AssociationTypes : List<AssociationType>
    {
    }
  
    public partial class AssociationTypeSummaries : List<AssociationTypeSummary>
    {
    }
  
    public partial class AssociationTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public Entity ReciprocalType { get; set; }

        public RelationshipCategorySummary RelationshipCategory { get; set; }
    }
  
    public partial class BatchType
    {
        [Documentation(Required = true)]
        public int? Category { get; set; }

        [Documentation(Required = true)]
        public bool CntlIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_BATCH_TYPE_GROUP", FKColumn = "id", FKResourceName = "BatchTypeGroups")]
        public BatchTypeGroupSummary BatchTypeGroup { get; set; }

        [Documentation(Required = false, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public BusinessUnitSummary BusinessUnit { get; set; }
    }
  
    public partial class BatchTypeGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class BatchTypeGroups : List<BatchTypeGroup>
    {
    }
  
    public partial class BatchTypeGroupSummaries : List<BatchTypeGroupSummary>
    {
    }
  
    public partial class BatchTypeGroupSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class BatchTypes : List<BatchType>
    {
    }
  
    public partial class BatchTypeSummaries : List<BatchTypeSummary>
    {
    }
  
    public partial class BatchTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public bool CntlIndicator { get; set; }

        public int? Category { get; set; }
    }
 public partial class BillingSchedule {
        
        public string BillAmounts { get; set; }
        
        public string BillDates { get; set; }
        
        public DateTime? CreatedDateTime { get; set; }
        
        public string CreateLocation { get; set; }
        
        public string CreatedBy { get; set; }
        
        public string Description { get; set; }
        
        public int? Id { get; set; }
        
        public bool Inactive { get; set; }
        
        public DateTime? UpdatedDateTime { get; set; }
        
        public string UpdatedBy { get; set; }
        
        public string LongDescription { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
    
    public partial class BillingSchedules : List<BillingSchedule> {
    }
    
    public partial class BillingScheduleSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
    
    public partial class BillingScheduleSummaries : List<BillingScheduleSummary> {
    }
  
    public partial class BillingType
    {
        public string AutoBillingIndicator { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public string Description { get; set; }

        public int? Id { get; set; }

        public bool Inactive { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }
    }

    public partial class BillingTypes : List<BillingType>
    {
    }

    public partial class BillingTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }

    public partial class BillingTypeSummaries : List<BillingTypeSummary>
    {
    }
  
    [Serializable]
    public partial class BookingCategory
    {
        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroup ControlGroup { get; set; }

        [Documentation(Required = false)]
        public bool EditIndicator { get; set; }
    }

    [Serializable]
    public partial class BookingCategories : List<BookingCategory>
    {
    }

    [Serializable]
    public partial class BookingCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }

        public bool EditIndicator { get; set; }
    }

    [Serializable]
    public partial class BookingCategorySummaries : List<BookingCategorySummary>
    {
    }
  
    public partial class BusinessUnit
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class BusinessUnits : List<BusinessUnit>
    {
    }
  
    public partial class BusinessUnitSummaries : List<BusinessUnitSummary>
    {
    }
  
    public partial class BusinessUnitSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class CardReaderType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }

    public partial class CardReaderTypes : List<CardReaderType>
    {
    }

    public partial class CardReaderTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }

    public partial class CardReaderTypeSummaries : List<CardReaderTypeSummary>
    {
    }
  
    public partial class CardType
    {
        public string AcceptanceFlag { get; set; }

        public string CardDescription { get; set; }

        public int? CardLength { get; set; }

        public string CardTypeMnemonic { get; set; }

        public int? CheckDigitType { get; set; }

        public int? ConsecutiveTransactions { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public string CreditDebitIndicator { get; set; }

        public string ExpiryDateFormat { get; set; }

        public string StartDateFormat { get; set; }

        public int? Id { get; set; }

        public string IssueNumberMax { get; set; }

        public string IssueNumberMin { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public int? IssueIdLength { get; set; }

        public int? ServiceCodeLength { get; set; }

        public int? PosExpDate { get; set; }

        public int? PosIssueId { get; set; }

        public int? PosMidSentenal { get; set; }

        public int? PosServiceCode { get; set; }

        public int? PosStartDate { get; set; }

        public string RangeEnd { get; set; }

        public string RangeStart { get; set; }

        public int? SequenceCode { get; set; }
    }
  
    public partial class CardTypes : List<CardType>
    {
    }
  
    public partial class CardTypeSummaries : List<CardTypeSummary>
    {
    }
  
    public partial class CardTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class Color
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public int ColorValue { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Colors : List<Color>
    {
    }
  
    public partial class ColorSummaries : List<ColorSummary>
    {
    }
  
    public partial class ColorSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public virtual int ColorValue { get; set; }
    }
  
    public partial class Composer
    {
        [Documentation(Required = false, MaxLength = 16)]
        public string Bio { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string FirstName { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string LastName { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string MiddleName { get; set; }
    }
  
    public partial class Composers : List<Composer>
    {
    }
  
    public partial class ComposerSummaries : List<ComposerSummary>
    {
    }
  
    public partial class ComposerSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ConstituencyType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string ShortDescription { get; set; }

        [Documentation(Required = true)]
        public int? Rank { get; set; }
    }
  
    public partial class ConstituencyTypes : List<ConstituencyType>
    {
    }
  
    public partial class ConstituencyTypeSummaries : List<ConstituencyTypeSummary>
    {
    }
  
    public partial class ConstituencyTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public string ShortDescription { get; set; }

        public int Rank { get; set; }
    }
  
    public partial class ConstituentGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ConstituentGroups : List<ConstituentGroup>
    {
    }
  
    public partial class ConstituentGroupSummaries : List<ConstituentGroupSummary>
    {
    }
  
    public partial class ConstituentGroupSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ConstituentInactive
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ConstituentInactives : List<ConstituentInactive>
    {
    }
  
    public partial class ConstituentInactiveSummaries : List<ConstituentInactiveSummary>
    {
    }
  
    public partial class ConstituentInactiveSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ConstituentType
    {
        [Documentation(Required = true, FKTable = "TR_ADDRESS_TYPE", FKColumn = "id", FKResourceName = "AddressTypes")]
        public int? AddressTypeId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CUST_GROUP", FKColumn = "id", FKResourceName = "ConstituentGroups")]
        public ConstituentGroupSummary ConstituentGroup { get; set; }

        [Documentation(Required = false)]
        public bool? DefaultIndicator { get; set; }

        [Documentation(Required = true, FKTable = "TR_SALUTATION_FORMAT", FKColumn = "id", FKResourceName = "")]
        public int? DefaultSalutationId { get; set; }

        [Documentation(Required = false, FKTable = "TR_CUST_TYPE", FKColumn = "id", FKResourceName = "ConstituentTypes")]
        public int? DefaultAffiliatedConstituentTypeId { get; set; }

        [Documentation(Required = false, FKTable = "TR_AFFILIATION_TYPE", FKColumn = "id", FKResourceName = "AffiliationTypes")]
        public int? DefaultAffiliationTypeId { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true, FKTable = "TR_EADDRESS_TYPE", FKColumn = "id", FKResourceName = "ElectronicAddressTypes")]
        public int? ElectronicAddressTypeId { get; set; }

        [Documentation(Required = true)]
        public bool GiftAidIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, FKTable = "TR_LOGIN_TYPE", FKColumn = "id", FKResourceName = "LoginTypes")]
        public int? LoginTypeId { get; set; }
    }
  
    public partial class ConstituentTypeAffiliate
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_CUST_TYPE", FKColumn = "id", FKResourceName = "ConstituentTypes")]
        public ConstituentTypeSummary ConstituentType { get; set; }

        [Documentation(Required = true, FKTable = "TR_AFFILIATION_TYPE", FKColumn = "id", FKResourceName = "AffiliationTypes")]
        public AffiliationTypeSummary AffiliationType { get; set; }

        [Documentation(Required = false)]
        public bool? HouseholdPrimary { get; set; }

        [Documentation(Required = false)]
        public bool? ShowWithGroup { get; set; }

        [Documentation(Required = false)]
        public int? Rank { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ConstituentTypeAffiliates : List<ConstituentTypeAffiliate>
    {
    }
  
    public partial class ConstituentTypeAffiliateSummaries : List<ConstituentTypeAffiliateSummary>
    {
    }
  
    public partial class ConstituentTypeAffiliateSummary
    {
        public int? Id { get; set; }

        public Entity ConstituentType { get; set; }

        public Entity AffiliationType { get; set; }

        public bool? HouseholdPrimary { get; set; }

        public bool? ShowWithGroup { get; set; }

        public int? Rank { get; set; }
    }
  
    public partial class ConstituentTypes : List<ConstituentType>
    {
    }
  
    public partial class ConstituentTypeSummaries : List<ConstituentTypeSummary>
    {
    }
  
    public partial class ConstituentTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public ConstituentGroupSummary ConstituentGroup { get; set; }
    }
 public partial class ContactPermissionCategory {
        
        [Documentation(Required=false)]
        public int? AskFrequencyMonths { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=true, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required=true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=true, FKTable="TR_CONTROL_GROUP", FKColumn="id", FKResourceName="ControlGroups")]
        public ControlGroup ControlGroup { get; set; }
    }
    
    public partial class ContactPermissionCategories : List<ContactPermissionCategory> {
    }
    
    public partial class ContactPermissionCategorySummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }

        public bool? Inactive { get; set; }

        public int? AskFrequencyMonths { get; set; }
    }

    public partial class ContactPermissionCategorySummaries : List<ContactPermissionCategorySummary> {
    }
 public partial class ContactPermissionType {
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=false)]
        public string DefaultValueForAdd { get; set; }
        
        [Documentation(Required=true, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required=true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=false)]
        public bool Presenter { get; set; }
        
        [Documentation(Required=true)]
        public int Rank { get; set; }
        
        [Documentation(Required=true, MaxLength=10)]
        public string ShortDescription { get; set; }
        
        [Documentation(Required=true, FKTable="TR_CONTACT_PERM_CATEGORY", FKColumn="id", FKResourceName="ContactPermissionCategories")]
        public ContactPermissionCategory Category { get; set; }
        
        [Documentation(Required=false, FKTable="TR_CONTACT_POINT_CATEGORY", FKColumn="id", FKResourceName="ContactPointCategories")]
        public ContactPointCategory DefaultContactPointCategory { get; set; }

        [Documentation(Required = false)]
        public bool EditIndicator { get; set; }
    }
    
    public partial class ContactPermissionTypes : List<ContactPermissionType> {
    }
    
    public partial class ContactPermissionTypeSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }

        public bool Inactive { get; set; }

        public ContactPermissionCategorySummary Category { get; set;}

        public bool Presenter { get; set; }

        public int Rank { get; set; }

        public string DefaultValueForAdd { get; set; }

        public bool EditIndicator { get; set; }
    }

    public partial class ContactPermissionTypeSummaries : List<ContactPermissionTypeSummary> {
    }
  
    public partial class ContactPointCategories : List<ContactPointCategory>
    {
    }
  
    public partial class ContactPointCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 128)]
        public string ContactPointKey { get; set; }

        [Documentation(Required = true, MaxLength = 128)]
        public string ContactPointTable { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ContactPointCategoryPurpose
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTACT_POINT_CATEGORY", FKColumn = "id", FKResourceName = "ContactPointCategories")]
        public ContactPointCategorySummary ContactPointCategory { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTACT_POINT_PURPOSE", FKColumn = "id", FKResourceName = "ContactPointPurposes")]
        public ContactPointPurposeSummary Purpose { get; set; }
    }
  
    public partial class ContactPointCategoryPurposes : List<ContactPointCategoryPurpose>
    {
    }
  
    public partial class ContactPointCategoryPurposeSummaries : List<ContactPointCategoryPurposeSummary>
    {
    }
  
    public partial class ContactPointCategoryPurposeSummary
    {
        public int? Id { get; set; }

        public ContactPointPurposeSummary Purpose { get; set; }
    }
  
    public partial class ContactPointCategorySummaries : List<ContactPointCategorySummary>
    {
    }
  
    public partial class ContactPointCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class ContactPointPurpose
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTACT_POINT_PURPOSE_CATEGORY", FKColumn = "id", FKResourceName = "PurposeCategories")]
        public PurposeCategorySummary PurposeCategory { get; set; }
    }
  
    public partial class ContactPointPurposes : List<ContactPointPurpose>
    {
    }
  
    public partial class ContactPointPurposeSummaries : List<ContactPointPurposeSummary>
    {
    }
  
    public partial class ContactPointPurposeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public PurposeCategorySummary PurposeCategory { get; set; }
    }
  
    public partial class ContactType
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ContactTypes : List<ContactType>
    {
    }
  
    public partial class ContactTypeSummaries : List<ContactTypeSummary>
    {
    }
  
    public partial class ContactTypeSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ContributionDesignation
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 100)]
        public string LetterText { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class ContributionDesignations : List<ContributionDesignation>
    {
    }
  
    public partial class ContributionDesignationSummaries : List<ContributionDesignationSummary>
    {
    }
  
    public partial class ContributionDesignationSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    [Serializable]
    public partial class ControlGroup
    {
        public string CreatedBy { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public ControlGroupPermission Permission { get; set; }

        public string UpdatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }
    }
  
    public partial class ControlGroups : List<ControlGroup>
    {
    }
  
    public partial class ControlGroupSummaries : List<ControlGroupSummary>
    {
    }
  
    [Serializable]
    public partial class ControlGroupSummary
    {
        public string Description { get; set; }

        public int Id { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class Countries : List<Country>
    {
    }
  
    public partial class Country
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string DecimalSeparator { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false)]
        public string IsoAlpha3Code { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 5)]
        public string PhoneCode { get; set; }

        [Documentation(Required = false, MaxLength = 40)]
        public string PhoneEditstring { get; set; }

        [Documentation(Required = false, MaxLength = 40)]
        public string PhoneMask { get; set; }

        [Documentation(Required = false, MaxLength = 32)]
        public string PhoneValidLengths { get; set; }

        [Documentation(Required = true)]
        public bool ReqCity { get; set; }

        [Documentation(Required = false)]
        public bool? ReqPcode { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string ShortDesc { get; set; }

        [Documentation(Required = false)]
        public string UseAvs { get; set; }

        [Documentation(Required = false)]
        public string UseStateField { get; set; }

        [Documentation(Required = false, MaxLength = 15)]
        public string ZipEditstring { get; set; }

        [Documentation(Required = false, MaxLength = 15)]
        public string ZipMask { get; set; }

        [Documentation(Required = false, MaxLength = 32)]
        public string ZipValidLengths { get; set; }
    }
  
    public partial class CountrySummaries : List<CountrySummary>
    {
    }
  
    [Serializable]
    public partial class CountrySummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class CriterionOperator
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = true, MaxLength = 15)]
        public string Symbol { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class CriterionOperators : List<CriterionOperator>
    {
    }
  
    public partial class CriterionOperatorSummaries : List<CriterionOperatorSummary>
    {
    }
  
    public partial class CriterionOperatorSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }

        public string Symbol { get; set; }
    }
 public partial class CurrencyType {
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=false, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required=true, MaxLength=1)]
        public bool Inactive { get; set; } // TODO - SCG: Remove MaxLength attribute
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=true)]
        public decimal Rate { get; set; }
    }
    
    public partial class CurrencyTypes : List<CurrencyType> {
    }
    
    public partial class CurrencyTypeSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }

        public decimal Rate { get; set; }
    }
    
    public partial class CurrencyTypeSummaries : List<CurrencyTypeSummary> {
    }
  
    public partial class DeliveryMethod
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public bool PrintAtHome { get; set; }

        [Documentation(Required = true)]
        public bool RequireAddress { get; set; }
    }
  
    public partial class DeliveryMethods : List<DeliveryMethod>
    {
    }
  
    public partial class DeliveryMethodSummaries : List<DeliveryMethodSummary>
    {
    }
  
    public partial class DeliveryMethodSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class Design
    {
        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public string Description { get; set; }

        public string DesignCategory { get; set; }

        public int? Id { get; set; }

        public string DesignType { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public short? MaxCol { get; set; }

        public short? MaxRow { get; set; }

        public PrinterSummary Printer { get; set; }

        public short? X2val { get; set; }

        public short? Y2val { get; set; }

        public int? ZebraDesignNumber { get; set; }
    }
  
    public partial class DesignationCode
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class DesignationCodes : List<DesignationCode>
    {
    }
  
    public partial class DesignationCodeSummaries : List<DesignationCodeSummary>
    {
    }
  
    public partial class DesignationCodeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class Designs : List<Design>
    {
    }
  
    public partial class DesignSummaries : List<DesignSummary>
    {
    }
  
    public partial class DesignSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class DiscountType
    {
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public bool Inactive { get; set; }

        [Documentation(Required = true)]
        public bool PercentIndicator { get; set; }

        [Documentation(Required = true)]
        public bool RespectMinimumPrice { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 10)]
        public string ShortDescription { get; set; }
    }
  
    public partial class DiscountTypes : List<DiscountType>
    {
    }
  
    public partial class DiscountTypeSummaries : List<DiscountTypeSummary>
    {
    }
  
    public partial class DiscountTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class DonationLevel
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false, FKTable = "T_PROGRAM", FKColumn = "program_no", FKResourceName = "Programs")]
        public ProgramType ProgramType { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class DonationLevels : List<DonationLevel>
    {
    }
  
    public partial class DonationLevelSummaries : List<DonationLevelSummary>
    {
    }
  
    public partial class DonationLevelSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ElectronicAddressPurpose
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ElectronicAddressPurposes : List<ElectronicAddressPurpose>
    {
    }
  
    public partial class ElectronicAddressType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool IsEmail { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ElectronicAddressTypes : List<ElectronicAddressType>
    {
    }
  
    public partial class ElectronicAddressTypeSummaries : List<ElectronicAddressTypeSummary>
    {
    }
  
    [Serializable]
    public partial class ElectronicAddressTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public bool IsEmail { get; set; }
    }
  
    public partial class EmailProfile
    {
        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 100)]
        public string Description { get; set; }

        [Documentation(Required = true, MaxLength = 255)]
        public string EmailBcc { get; set; }

        [Documentation(Required = true, MaxLength = 255)]
        public string EmailCc { get; set; }

        [Documentation(Required = true, MaxLength = 100)]
        public string EmailDefaultSubject { get; set; }

        [Documentation(Required = true, MaxLength = 255)]
        public string EmailFrom { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 100)]
        public string SMTPPassword { get; set; }

        [Documentation(Required = true)]
        public int SMTPPort { get; set; }

        [Documentation(Required = true, MaxLength = 255)]
        public string SMTPServer { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string SMTPUserName { get; set; }

        [Documentation(Required = true)]
        public bool UseSsl { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }

    public partial class EmailProfiles : List<EmailProfile>
    {
    }

    public partial class EmailProfileSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }
    }

    public partial class EmailProfileSummaries : List<EmailProfileSummary>
    {
    }
  
    public partial class EmarketIndicator
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class EmarketIndicators : List<EmarketIndicator>
    {
    }
  
    public partial class EmarketIndicatorSummaries : List<EmarketIndicatorSummary>
    {
    }
  
    public partial class EmarketIndicatorSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class Era
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Eras : List<Era>
    {
    }
  
    public partial class EraSummaries : List<EraSummary>
    {
    }
  
    public partial class EraSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class Format
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public bool Inactive { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string GooesoftReportId { get; set; }

        [Documentation(Required = false, FKTable = "TR_FORM_NAME", FKColumn = "id", FKResourceName = "FormNames")]
        public EntitySummary FormName { get; set; }

        [Documentation(Required = false)]
        public int? ReceiptCounter { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string DataObject { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(Required = false, FKTable = "T_TEMPLATE", FKColumn = "id", FKResourceName = "Templates")]
        public int? TemplateId { get; set; }

        [Documentation(Required = true)]
        public string EmailIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }

    public partial class Formats : List<Format>
    {
    }

    public partial class FormatSummaries : List<FormatSummary>
    {
    }

    public partial class FormatSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool Inactive { get; set; }
    }
 public partial class GiftAidContactMethod {
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required = true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }
    }
    
    public partial class GiftAidContactMethods : List<GiftAidContactMethod> {
    }
    
    public partial class GiftAidContactMethodSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }
    
    public partial class GiftAidContactMethodSummaries : List<GiftAidContactMethodSummary> {
    }
 public partial class GiftAidDocumentStatus {
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required = true)]
        public bool? Inactive { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }
    }
    
    public partial class GiftAidDocumentStatuses : List<GiftAidDocumentStatus> {
    }
    
    public partial class GiftAidDocumentStatusSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }
    
    public partial class GiftAidDocumentStatusSummaries : List<GiftAidDocumentStatusSummary> {
    }
 public partial class 
        GiftAidIneligibleReason {
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required = true)]
        public bool? Inactive { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }
    }
    
    public partial class GiftAidIneligibleReasons : List<GiftAidIneligibleReason> {
    }
    
    public partial class GiftAidIneligibleReasonSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }
    
    public partial class GiftAidIneligibleReasonSummaries : List<GiftAidIneligibleReasonSummary> {
    }
 public partial class GiftAidRate {
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }
        
        public DateTime? EndDateTime { get; set; }
        
        [Documentation(Required = true)]
        public decimal Rate { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required = true)]
        public DateTime? StartDateTime { get; set; }
    }
    
    public partial class GiftAidRates : List<GiftAidRate> {
    }
    
    public partial class GiftAidRateSummary {
        
        public int? Id { get; set; }

        public decimal Rate { get; set; }
    }
    
    public partial class GiftAidRateSummaries : List<GiftAidRateSummary> {
    }
 public partial class GiftAidStatus {
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required = true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }
    }
    
    public partial class GiftAidStatuses : List<GiftAidStatus> {
    }
    
    public partial class GiftAidStatusSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }
    
    public partial class GiftAidStatusSummaries : List<GiftAidStatusSummary> {
    }
 public partial class GiftAidType {
        
        public string CharityClaimsRef { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required = true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
    
    public partial class GiftAidTypes : List<GiftAidType> {
    }
    
    public partial class GiftAidTypeSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }
    }
    
    public partial class GiftAidTypeSummaries : List<GiftAidTypeSummary> {
    }
  
    public partial class GlAccount
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string AccountNumber { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class GlAccounts : List<GlAccount>
    {
    }
  
    public partial class GlAccountSummaries : List<GlAccountSummary>
    {
    }
  
    public partial class GlAccountSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public string AccountNumber { get; set; }
    }
  
    public partial class HoldCodeCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }

    public partial class HoldCodeCategories : List<HoldCodeCategory>
    {
    }

    public partial class HoldCodeCategorySummary
    {
        [Documentation(RequiredForPut = true)]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }
    }

    public partial class HoldCodeCategorySummaries : List<HoldCodeCategorySummary>
    {
    }
  
    public partial class InactiveReason
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class InactiveReasons : List<InactiveReason>
    {
    }
  
    public partial class InactiveReasonSummaries : List<InactiveReasonSummary>
    {
    }
  
    public partial class InactiveReasonSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class InterestCategories : List<InterestCategory>
    {
    }
  
    public partial class InterestCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class InterestCategorySummaries : List<InterestCategorySummary>
    {
    }
  
    public partial class InterestCategorySummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }
    }
  
    public partial class InterestType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_TKW_CATEGORY", FKColumn = "id", FKResourceName = "InterestCategories")]
        public InterestCategorySummary Category { get; set; }

        [Documentation(Required = true)]
        public string UsedIn { get; set; }

        [Documentation(Required = true)]
        public bool SearchIndicator { get; set; }
    }
  
    public partial class InterestTypes : List<InterestType>
    {
    }
  
    public partial class InterestTypeSummaries : List<InterestTypeSummary>
    {
    }
  
    public partial class InterestTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public string UsedIn { get; set; }

        public InterestCategorySummary Category { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class Keyword
    {
        [Documentation(Required = false, FKTable = "TR_KEYWORD_CATEGORY", FKColumn = "id", FKResourceName = "KeywordCategories")]
        public KeywordCategorySummary Category { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public int? ConstituentType { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string CustomDefaultValue { get; set; }

        [Documentation(Required = false)]
        public int? CustomId { get; set; }

        [Documentation(Required = false)]
        public int? CustomLimit { get; set; }

        [Documentation(Required = false)]
        public bool? CustomRequired { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string DataType { get; set; }

        [Documentation(Required = false, MaxLength = 100)]
        public string DetailColumn { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string DetailTable { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string EditMask { get; set; }

        [Documentation(Required = false)]
        public DateTime? FrequentUpdateDate { get; set; }

        [Documentation(Required = false)]
        public bool? UseForSearch { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ExtendedDescription { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public bool? MultipleValue { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ReferenceDescriptionColumn { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ReferenceIdcolumn { get; set; }

        [Documentation(Required = false, MaxLength = 100)]
        public string ReferenceSort { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ReferenceTable { get; set; }

        [Documentation(Required = false, MaxLength = 100)]
        public string ReferenceWhere { get; set; }

        [Documentation(Required = false)]
        public int? SortOrder { get; set; }

        [Documentation(Required = false)]
        public string KeywordUse { get; set; }

        [Documentation(Required = false)]
        public bool? ValuesCodedIndicator { get; set; }

        [Documentation(Required = true)]
        public string PrimaryGroupDefault { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ParentTable { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ParentKeyColumn { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string KeyColumn { get; set; }

        public bool? EditIndicator { get; set; }

        [Documentation(Required = false, MaxLength = 1024)]
        public string HelpText { get; set; }
    }
  
    public partial class KeywordCategories : List<KeywordCategory>
    {
    }
  
    public partial class KeywordCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class KeywordCategorySummaries : List<KeywordCategorySummary>
    {
    }
  
    public partial class KeywordCategorySummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class KeywordConstituentType
    {
        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false)]
        public int? Rank { get; set; }
    }
  
    public partial class KeywordDataItem
    {
        public string Id { get; set; }

        public string Value { get; set; }
    }
  
    public partial class KeywordDataItems : List<KeywordDataItem>
    {
    }
  
    public partial class Keywords : List<Keyword>
    {
    }
  
    public partial class KeywordSummaries : List<KeywordSummary>
    {
    }
  
    public partial class KeywordSummary
    {
        public string Description { get; set; }

        public int Id { get; set; }

        public string EditMask { get; set; }

        public string DataType { get; set; }

        public bool? MultipleValue { get; set; }

        public KeywordCategorySummary Category { get; set; }
    }
  
    public partial class Language
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Languages : List<Language>
    {
    }
  
    public partial class LanguageSummaries : List<LanguageSummary>
    {
    }
  
    public partial class LanguageSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ListCategories : List<ListCategory>
    {
    }
  
    public partial class ListCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ListCategorySummaries : List<ListCategorySummary>
    {
    }
  
    public partial class ListCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class LoginType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class LoginTypes : List<LoginType>
    {
    }
  
    public partial class LoginTypeSummaries : List<LoginTypeSummary>
    {
    }
  
    public partial class LoginTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class MachineSetting
    {
        [Documentation(Required = true, MaxLength = 255)]
        public string CardReaderHost { get; set; }

        [Documentation(Required = true)]
        public int CardReaderPort { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public bool TnspaySoftwareTerminal { get; set; }

        [Documentation(Required = false)]
        public int? TriposLane { get; set; }

        [Documentation(Required = true, MaxLength = 16)]
        public string WorkstationName { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string DropPath { get; set; }

        [Documentation(Required = true, FKTable = "TR_CARDREADER_TYPE", FKColumn = "id", FKResourceName = "CardReaderTypes")]
        public CardReaderTypeSummary CardReaderType { get; set; }
    }

    public partial class MachineSettings : List<MachineSetting>
    {
    }

    public partial class MachineSettingSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }

    public partial class MachineSettingSummaries : List<MachineSettingSummary>
    {
    }
  
    public partial class MailIndicator
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class MailIndicators : List<MailIndicator>
    {
    }
  
    public partial class MailIndicatorSummaries : List<MailIndicatorSummary>
    {
    }
  
    public partial class MailIndicatorSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class MediaType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public decimal? GenerateCost { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class MediaTypes : List<MediaType>
    {
    }
  
    public partial class MediaTypeSummaries : List<MediaTypeSummary>
    {
    }
  
    public partial class MediaTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class MembershipLevelCategories : List<MembershipLevelCategory>
    {
    }
  
    public partial class MembershipLevelCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class MembershipLevelCategorySummaries : List<MembershipLevelCategorySummary>
    {
    }
  
    public partial class MembershipLevelCategorySummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class NameStatus
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class NameStatuses : List<NameStatus>
    {
    }
  
    public partial class NameStatusSummaries : List<NameStatusSummary>
    {
    }
  
    public partial class NameStatusSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
 public partial class NScanAccessArea {
        
        [Documentation(Required=true, MaxLength=20)]
        public string AreaCode { get; set; }
        
        [Documentation(Required=false, MaxLength=255)]
        public string ConstituencyIds { get; set; }
        
        [Documentation(Required=true)]
        public ControlGroupSummary ControlGroup { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=false, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(Required=false)]
        public DateTime? EndDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required=true)]
        public bool Inactive { get; set; }
        
        [Documentation(Required=false)]
        public int? KeywordId { get; set; }
        
        [Documentation(Required=false, MaxLength=30)]
        public string KeywordValue { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=false)]
        public int? ListId { get; set; }
        
        [Documentation(Required=false)]
        public int? MaxEntries { get; set; }
        
        [Documentation(Required=false, MaxLength=255)]
        public string MembershipLevelIds { get; set; }
        
        [Documentation(Required=false, MaxLength=255)]
        public string PerformanceIds { get; set; }
        
        [Documentation(Required=false, MaxLength=255)]
        public string PriceTypeIds { get; set; }
        
        [Documentation(Required=false, MaxLength=255)]
        public string PriceZoneIds { get; set; }
        
        [Documentation(Required=false, MaxLength=1)]
        public bool PromptQuantity { get; set; }
        
        [Documentation(Required=false)]
        public DateTime? StartDateTime { get; set; }
    }
    
    public partial class NScanAccessAreas : List<NScanAccessArea> {
    }
    
    public partial class NScanAccessAreaSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }

        public bool Inactive { get; set; }
    }
    
    public partial class NScanAccessAreaSummaries : List<NScanAccessAreaSummary> {
    }
  
    public partial class OrderCategories : List<OrderCategory>
    {
    }
  
    public partial class OrderCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class OrderCategorySummaries : List<OrderCategorySummary>
    {
    }
  
    public partial class OrderCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }
    }
 public partial class Organization {
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=true, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required=true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
    
    public partial class Organizations : List<Organization> {
    }
    
    public partial class OrganizationSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }
    
    public partial class OrganizationSummaries : List<OrganizationSummary> {
    }
  
    public partial class Origin
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, FKTable = "TR_CUST_ACTIVITY_TYPE", FKColumn = "id", FKResourceName = "ActivityTypes")]
        public Entity ActivityType { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class OriginalSource
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class OriginalSources : List<OriginalSource>
    {
    }
  
    public partial class OriginalSourceSummaries : List<OriginalSourceSummary>
    {
    }
  
    public partial class OriginalSourceSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class Origins : List<Origin>
    {
    }
  
    public partial class OriginSummaries : List<OriginSummary>
    {
    }
  
    public partial class OriginSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class PackageType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PackageTypes : List<PackageType>
    {
    }
  
    public partial class PackageTypeSummaries : List<PackageTypeSummary>
    {
    }
  
    public partial class PackageTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }
    }
 public partial class PaymentGatewayTransactionType {
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=true, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required=true, MaxLength=1)]
        public bool Inactive { get; set; } // TODO - SCG: Remove MaxLength attribute
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
    
    public partial class PaymentGatewayTransactionTypes : List<PaymentGatewayTransactionType> {
    }
    
    public partial class PaymentGatewayTransactionTypeSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }
    
    public partial class PaymentGatewayTransactionTypeSummaries : List<PaymentGatewayTransactionTypeSummary> {
    }
  
    public partial class PaymentMethodGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string MerchantId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroup ControlGroup { get; set; }
    }
  
    public partial class PaymentMethodGroups : List<PaymentMethodGroup>
    {
    }
  
    public partial class PaymentMethodGroupSummaries : List<PaymentMethodGroupSummary>
    {
    }
  
    public partial class PaymentMethodGroupSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class PaymentType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PaymentTypes : List<PaymentType>
    {
    }
  
    public partial class PaymentTypeSummaries : List<PaymentTypeSummary>
    {
    }
  
    public partial class PaymentTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class PerformanceStatus
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PerformanceStatuses : List<PerformanceStatus>
    {
    }
  
    public partial class PerformanceStatusSummaries : List<PerformanceStatusSummary>
    {
    }
  
    public partial class PerformanceStatusSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class PerformanceType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PerformanceTypes : List<PerformanceType>
    {
    }
  
    public partial class PerformanceTypeSummaries : List<PerformanceTypeSummary>
    {
    }
  
    public partial class PerformanceTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class PhoneIndicator
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PhoneIndicators : List<PhoneIndicator>
    {
    }
  
    public partial class PhoneIndicatorSummaries : List<PhoneIndicatorSummary>
    {
    }
  
    public partial class PhoneIndicatorSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class PhoneType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public string DayEveningIndicator { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public bool? AllowMarketing { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PhoneTypes : List<PhoneType>
    {
    }
  
    public partial class PhoneTypeSummaries : List<PhoneTypeSummary>
    {
    }
  
    public partial class PhoneTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class PlanPriorities : List<PlanPriority>
    {
    }
  
    public partial class PlanPriority
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public int? Ranking { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PlanPrioritySummaries : List<PlanPrioritySummary>
    {
    }
  
    public partial class PlanPrioritySummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public int? Ranking { get; set; }
    }
  
    public partial class PlanSource
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PlanSources : List<PlanSource>
    {
    }
  
    public partial class PlanSourceSummaries : List<PlanSourceSummary>
    {
    }
  
    public partial class PlanSourceSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class PlanStatus
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public int Rank { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PlanStatuses : List<PlanStatus>
    {
    }
  
    public partial class PlanStatusSummaries : List<PlanStatusSummary>
    {
    }
  
    public partial class PlanStatusSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public int Rank { get; set; }
    }
  
    public partial class PlanType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PlanTypes : List<PlanType>
    {
    }
  
    public partial class PlanTypeSummaries : List<PlanTypeSummary>
    {
    }
  
    public partial class PlanTypeSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class PortfolioCustomElement
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public int DataType { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public string SqlQuery { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PortfolioCustomElements : List<PortfolioCustomElement>
    {
    }
  
    public partial class PortfolioCustomElementSummaries : List<PortfolioCustomElementSummary>
    {
    }
  
    public partial class PortfolioCustomElementSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class Prefix
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Prefixes : List<Prefix>
    {
    }
  
    public partial class PrefixSummaries : List<PrefixSummary>
    {
    }
  
    public partial class PrefixSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class Premiere
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Premieres : List<Premiere>
    {
    }
  
    public partial class PremiereSummaries : List<PremiereSummary>
    {
    }
  
    public partial class PremiereSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class PriceCategories : List<PriceCategory>
    {
    }
  
    public partial class PriceCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public int Rank { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PriceCategorySummaries : List<PriceCategorySummary>
    {
    }
  
    public partial class PriceCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }

        public int Rank { get; set; }
    }
  
    public partial class PriceLayerType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public bool ExcludeFromRules { get; set; }

        [Documentation(Required = true)]
        public int Rank { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_CATEGORY", FKColumn = "id", FKResourceName = "PriceCategories")]
        public PriceCategorySummary PriceCategory { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PriceLayerTypes : List<PriceLayerType>
    {
    }
  
    public partial class PriceLayerTypeSummaries : List<PriceLayerTypeSummary>
    {
    }
  
    public partial class PriceLayerTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public PriceCategorySummary PriceCategory { get; set; }

        public bool? Inactive { get; set; }

        public int Rank { get; set; }
    }
  
    public partial class PriceTypeCategories : List<PriceTypeCategory>
    {
    }
  
    public partial class PriceTypeCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 15)]
        public string ShortDescription { get; set; }
    }
  
    public partial class PriceTypeCategorySummaries : List<PriceTypeCategorySummary>
    {
    }
  
    public partial class PriceTypeCategorySummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }
    }
  
    public partial class PriceTypeGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PriceTypeGroups : List<PriceTypeGroup>
    {
    }
  
    public partial class PriceTypeGroupSummaries : List<PriceTypeGroupSummary>
    {
    }
  
    public partial class PriceTypeGroupSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class PriceTypeReason
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string ShortDescription { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string TicketText { get; set; }
    }
  
    public partial class PriceTypeReasons : List<PriceTypeReason>
    {
    }
  
    public partial class PriceTypeReasonSummaries : List<PriceTypeReasonSummary>
    {
    }
  
    public partial class PriceTypeReasonSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class PricingRuleCategories : List<PricingRuleCategory>
    {
    }
  
    public partial class PricingRuleCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PricingRuleCategorySummaries : List<PricingRuleCategorySummary>
    {
    }
  
    public partial class PricingRuleCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class PricingRuleCriterionType
    {
        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public string Description { get; set; }

        public int? Id { get; set; }

        public bool Inactive { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }
    }
  
    public partial class PricingRuleCriterionTypes : List<PricingRuleCriterionType>
    {
    }
  
    public partial class PricingRuleCriterionTypeSummaries : List<PricingRuleCriterionTypeSummary>
    {
    }
  
    public partial class PricingRuleCriterionTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class PricingRuleMessageType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PricingRuleMessageTypes : List<PricingRuleMessageType>
    {
    }
  
    public partial class PricingRuleMessageTypeSummaries : List<PricingRuleMessageTypeSummary>
    {
    }
  
    public partial class PricingRuleMessageTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class PricingRuleType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PricingRuleTypes : List<PricingRuleType>
    {
    }
  
    public partial class PricingRuleTypeSummaries : List<PricingRuleTypeSummary>
    {
    }
  
    public partial class PricingRuleTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class PricingTemplateCategory
    {
        public int? Id { get; set; }

        public string Description { get; set; }


        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }
    }
  
    public partial class Printer
    {
        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public short MaxCol { get; set; }

        [Documentation(Required = false)]
        public short MaxRow { get; set; }

        [Documentation(Required = false)]
        public short? MaxX2val { get; set; }

        [Documentation(Required = false)]
        public short? MaxY2val { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public string Type { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Printers : List<Printer>
    {
    }
  
    public partial class PrinterSummaries : List<PrinterSummary>
    {
    }
  
    public partial class PrinterSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public string Type { get; set; }
    }
  
    public partial class Program
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
    }
  
    public partial class Programs : List<Program>
    {
    }
  
    public partial class ProgramSummaries : List<ProgramSummary>
    {
    }
  
    public partial class ProgramSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }
    }
  
    public partial class ProgramType
    {
        [Documentation(Required = false, MaxLength = 20)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
    }
  
    public partial class PurposeCategories : List<PurposeCategory>
    {
    }
  
    public partial class PurposeCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PurposeCategorySummaries : List<PurposeCategorySummary>
    {
    }
  
    public partial class PurposeCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class Qualification
    {
        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_QUALIFICATION_CATEGORY", FKColumn = "id", FKResourceName = "QualificationCategories")]
        public QualificationCategorySummary Category { get; set; }
    }

    public partial class Qualifications : List<Qualification>
    {
    }

    public partial class QualificationSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        [Documentation(Required = true, FKTable = "TR_QUALIFICATION_CATEGORY", FKColumn = "id", FKResourceName = "QualificationCategories")]
        public QualificationCategorySummary Category { get; set; }

        public bool Inactive { get; set; }
    }

    public partial class QualificationSummaries : List<QualificationSummary>
    {
    }
 public partial class QualificationCategory {
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=false, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required=true, MaxLength=1)]
        public bool Inactive { get; set; } // TODO - SCG: Remove MaxLength attribute
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=true, FKTable="TR_CONTROL_GROUP", FKColumn="id", FKResourceName="ControlGroups")]
        public ControlGroup ControlGroup { get; set; }
    }
    
    public partial class QualificationCategories : List<QualificationCategory> {
    }
    
    public partial class QualificationCategorySummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }
    }
    
    public partial class QualificationCategorySummaries : List<QualificationCategorySummary> {
    }
 public partial class QueryElement {
        
        [Documentation(Required=true)]
        public KeywordCategorySummary Category { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=true, MaxLength=255)]
        public string DataFrom { get; set; }
        
        [Documentation(Required=true, MaxLength=255)]
        public string DataSelect { get; set; }
        
        [Documentation(Required=false, MaxLength=255)]
        public string DataWhere { get; set; }
        
        [Documentation(Required=true, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=true)]
        public bool PrimaryGroupDefault { get; set; }
        
        [Documentation(Required=false)]
        public bool SingleRow { get; set; }
        
        [Documentation(Required=true, FKTable="TR_CONTROL_GROUP", FKColumn="id", FKResourceName="ControlGroups")]
        public ControlGroup ControlGroup { get; set; }
    }
    
    public partial class QueryElements : List<QueryElement> {
    }
    
    public partial class QueryElementSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }

        public KeywordCategorySummary Category { get; set; }
    }
    
    public partial class QueryElementSummaries : List<QueryElementSummary> {
    }
  
    public partial class RankType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class RankTypes : List<RankType>
    {
    }
  
    public partial class RankTypeSummaries : List<RankTypeSummary>
    {
    }
  
    public partial class RankTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }

        public ConstituentGroupSummary ControlGroup { get; set; }
    }
  
    public partial class ReceiptSetting
    {
        [Documentation(Required = true)]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string EmailFooter { get; set; }

        [Documentation(Required = false)]
        public EmailProfileSummary ReceiptEmailProfile { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string EmailHeader { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string EmailSubject { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string TicketEmailSubject { get; set; }

        [Documentation(Required = false)]
        public EmailProfileSummary TicketEmailProfile { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string PrintFooter { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string PrintHeader { get; set; }
    }
  
    public partial class ReceiptSettings : List<ReceiptSetting>
    {
    }
  
    public partial class ReceiptSettingSummaries : List<ReceiptSettingSummary>
    {
    }
  
    public partial class ReceiptSettingSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }

        public ConstituentGroupSummary ControlGroup { get; set; }
    }
  
    public partial class ReferenceColumn
    {
        [Documentation(Required = true, FKTable = "TR_REFERENCE_TABLE", FKColumn = "id", FKResourceName = "ReferenceTables")]
        public ReferenceTableSummary ReferenceTable { get; set; }

        [Documentation(Required = true)]
        public string Checkbox { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ColValid { get; set; }

        [Documentation(Required = true, MaxLength = 128)]
        public string ColumnName { get; set; }

        [Documentation(Required = true, MaxLength = 10)]
        public string ColumnType { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 128)]
        public string DropDownDescription { get; set; }

        [Documentation(Required = true)]
        public bool IsDropDownNullable { get; set; }

        [Documentation(Required = false, MaxLength = 128)]
        public string DropDownTable { get; set; }

        [Documentation(Required = false, MaxLength = 128)]
        public string DropDownValue { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string DropDownWhereClause { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public short OrderAcross { get; set; }
    }
  
    public partial class ReferenceColumns : List<ReferenceColumn>
    {
    }
  
    public partial class ReferenceColumnSummaries : List<ReferenceColumnSummary>
    {
    }
  
    public partial class ReferenceColumnSummary
    {
        public ReferenceTableSummary ReferenceTable { get; set; }

        public string Checkbox { get; set; }

        public string ColValid { get; set; }

        public string ColumnName { get; set; }

        public string ColumnType { get; set; }

        public string DropDownDescription { get; set; }

        public bool IsDropDownNullable { get; set; }

        public string DropDownTable { get; set; }

        public string DropDownValue { get; set; }

        public string DropDownWhereClause { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public Int16 OrderAcross { get; set; }
    }
  
    public partial class ReferenceTable
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 128)]
        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string HelpText { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 128)]
        public string TableName { get; set; }
    }
  
    public partial class ReferenceTables : List<ReferenceTable>
    {
    }
  
    public partial class ReferenceTableSummaries : List<ReferenceTableSummary>
    {
    }
  
    public partial class ReferenceTableSummary
    {
        public int? Id { get; set; }

        public string TableName { get; set; }
    }
  
    public partial class RelationshipCategories : List<RelationshipCategory>
    {
    }
  
    public partial class RelationshipCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
    }
  
    public partial class RelationshipCategorySummaries : List<RelationshipCategorySummary>
    {
    }
  
    public partial class RelationshipCategorySummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    [Serializable]
    public partial class ResourceCategory
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }

    [Serializable]
    public partial class ResourceCategories : List<ResourceCategory>
    {
    }

    [Serializable]
    public partial class ResourceCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }
    }

    [Serializable]
    public partial class ResourceCategorySummaries : List<ResourceCategorySummary>
    {
    }
  
    public partial class ResourceSecurityRights
    {
        public bool CanCreate { get; set; }

        public bool CanDelete { get; set; }

        public bool CanRead { get; set; }

        public bool CanUpdate { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string UpdatedBy { get; set; }

        public ServiceResourceSummary ServiceResource { get; set; }

        public int? Id { get; set; }

        public string UserGroupId { get; set; }
    }
  
    public partial class ResourceSecurityRightsCollection : List<ResourceSecurityRights>
    {
    }
  
    public partial class SalesChannel
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class SalesChannels : List<SalesChannel>
    {
    }
  
    public partial class SalesChannelSummaries : List<SalesChannelSummary>
    {
    }
  
    public partial class SalesChannelSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class SalesLayoutButtonType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class SalesLayoutButtonTypes : List<SalesLayoutButtonType>
    {
    }
  
    public partial class SalesLayoutButtonTypeSummaries : List<SalesLayoutButtonTypeSummary>
    {
    }
  
    public partial class SalesLayoutButtonTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class SalutationType
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class SalutationTypes : List<SalutationType>
    {
    }
  
    public partial class SalutationTypeSummaries : List<SalutationTypeSummary>
    {
    }
  
    [Serializable]
    public partial class SalutationTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
 public partial class SchedulePatternType {
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(RequiredForPost=true, RequiredForPut=true, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost=true, RequiredForPut=true)]
        public bool Inactive { get; set; } 
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
    
    public partial class SchedulePatternTypes : List<SchedulePatternType> {
    }
    
    public partial class SchedulePatternTypeSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }
    
    public partial class SchedulePatternTypeSummaries : List<SchedulePatternTypeSummary> {
    }
   
    [Serializable]
    public partial class ScheduleType {
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(RequiredForPost=true, RequiredForPut=false, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost=true, RequiredForPut=true)]
        public bool Inactive { get; set; } 
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
    }

    [Serializable]
    public partial class ScheduleTypes : List<ScheduleType> {
    }

    [Serializable]
    public partial class ScheduleTypeSummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }

    [Serializable]
    public partial class ScheduleTypeSummaries : List<ScheduleTypeSummary> {
    }
  
    public partial class Season
    {
        [Documentation(Required = false)]
        public int? ConfirmationNoticeFormat { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public bool? DefaultIndicator { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool? DisplayInSeasonOverview { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(Required = false)]
        public int? FYear { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public int? RenewalNoticeFormat { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = false)]
        public int? SubscriptionFund1 { get; set; }

        [Documentation(Required = false)]
        public int? SubscriptionFund2 { get; set; }

        [Documentation(Required = true, FKTable = "TR_SEASON_TYPE", FKColumn = "id", FKResourceName = "SeasonTypes")]
        public SeasonTypeSummary Type { get; set; }

        [Documentation(Required = false)]
        public short? YearlySeason { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class Seasons : List<Season>
    {
    }
  
    public partial class SeasonSummaries : List<SeasonSummary>
    {
    }
  
    public partial class SeasonSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public int? FYear { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class SeasonType
    {
        [Documentation(Required = true, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public BusinessUnitSummary BusinessUnit { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class SeasonTypes : List<SeasonType>
    {
    }
  
    public partial class SeasonTypeSummaries : List<SeasonTypeSummary>
    {
    }
  
    public partial class SeasonTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class SeatCode
    {
        [Documentation(Required = false)]
        public int? BackColor { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string Context { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public string DisplayLetter { get; set; }

        [Documentation(Required = false)]
        public int? ForeColor { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = false)]
        public byte? IsSeat { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string TicketText { get; set; }
    }
  
    public partial class SeatCodes : List<SeatCode>
    {
    }
  
    public partial class SeatCodeSummaries : List<SeatCodeSummary>
    {
    }
  
    public partial class SeatCodeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class SeatStatus
    {
        [Documentation(Required = false)]
        public int BackColor { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public int ForeColor { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string StatusCode { get; set; }

        [Documentation(Required = false)]
        public string StatusLegend { get; set; }

        [Documentation(Required = false)]
        public byte StatusPriority { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string Tck { get; set; }
    }
  
    public partial class SeatStatuses : List<SeatStatus>
    {
    }
  
    public partial class SeatStatusSummaries : List<SeatStatusSummary>
    {
    }
  
    public partial class SeatStatusSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class Section
    {
        [Documentation(Required = false, MaxLength = 30)]
        public string AdditionalText { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string AdditionalText2 { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string PrintDesc { get; set; }

        [Documentation(Required = false)]
        public byte PrintSequence { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string SectionLegend { get; set; }

        [Documentation(Required = false, MaxLength = 8)]
        public string ShortDesc { get; set; }
    }
  
    public partial class Sections : List<Section>
    {
    }
  
    public partial class SectionSummaries : List<SectionSummary>
    {
    }
  
    public partial class SectionSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class ServiceResource
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public string Name { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string UpdatedBy { get; set; }
    }
  
    public partial class ServiceResources : List<ServiceResource>
    {
    }
  
    public partial class ServiceResourceSummaries : List<ServiceResourceSummary>
    {
    }
  
    public partial class ServiceResourceSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public string Name { get; set; }
    }
  
    public partial class SourceGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class SourceGroups : List<SourceGroup>
    {
    }
  
    public partial class SourceGroupSummaries : List<SourceGroupSummary>
    {
    }
  
    public partial class SourceGroupSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class SpecialActivityStatus
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }

    public partial class SpecialActivityStatuses : List<SpecialActivityStatus>
    {
    }

    public partial class SpecialActivityStatusSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }

    public partial class SpecialActivityStatusSummaries : List<SpecialActivityStatusSummary>
    {
    }
  
    public partial class SpecialActivityType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }

    public partial class SpecialActivityTypes : List<SpecialActivityType>
    {
    }

    public partial class SpecialActivityTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }

    public partial class SpecialActivityTypeSummaries : List<SpecialActivityTypeSummary>
    {
    }
  
    public partial class State
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true, MaxLength = 20)]
        public string StateCode { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public CountrySummary Country { get; set; }
    }
  
    public partial class States : List<State>
    {
    }
  
    public partial class StateSummaries : List<StateSummary>
    {
    }
  
    [Serializable]
    public partial class StateSummary
    {
        public string Description { get; set; }

        public string StateCode { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public CountrySummary Country { get; set; }
    }
  
    public partial class StepType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public string UseAssociate { get; set; }

        [Documentation(Required = true)]
        public string AllowAttachments { get; set; }

        [Documentation(Required = true)]
        public string UseCompletedOnDateTime { get; set; }

        [Documentation(Required = true)]
        public string UseDueDateTime { get; set; }

        [Documentation(Required = true)]
        public string UseNote { get; set; }

        [Documentation(Required = true)]
        public string UseWarningDays { get; set; }

        [Documentation(Required = true)]
        public string UseWorker { get; set; }
    }
  
    public partial class StepTypes : List<StepType>
    {
    }
  
    public partial class StepTypeSummaries : List<StepTypeSummary>
    {
    }
  
    public partial class StepTypeSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public string AllowAttachments { get; set; }

        public string UseCompletedOnDateTime { get; set; }

        public string UseDueDateTime { get; set; }
    }
  
    public partial class SubLineItemStatus
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public short Priority { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string StatusCode { get; set; }

        public partial class Status
        {
            public const int Unseated = 1;
            public const int SeatedUnpaid = 2;
            public const int SeatedPaid = 3;
            public const int Return = 4;
            public const int SeatingFailed = 5;
            public const int UnseatedPaid = 6;
            public const int VoidReturnedInThisOrder = 7;
            public const int VoidReturnedInOtherOrder = 8;
            public const int TemporarySeatSuccess = 9;
            public const int TemporarySeatingFailed = 10;
            public const int Upgraded = 11;
            public const int TicketedPaid = 12;
            public const int ReturnBenevolent = 13;
            public const int Unseatable = 14;
        }
    }
  
    public partial class SubLineItemStatuses : List<SubLineItemStatus>
    {
    }
  
    public partial class SubLineItemStatusSummaries : List<SubLineItemStatusSummary>
    {
    }
  
    public partial class SubLineItemStatusSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class Suffix
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class Suffixes : List<Suffix>
    {
    }
  
    public partial class SuffixSummaries : List<SuffixSummary>
    {
    }
  
    public partial class SuffixSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class SurveyQuestion
    {
        [Documentation(Required = true)]
        public short AskType { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = true)]
        public short DataType { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string DefaultValue { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string Question { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ReferenceTable { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ReferenceTableDescriptionColumn { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ReferenceTableIdColumn { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ReferenceTableWhereClause { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ReferenceTableSort { get; set; }

        [Documentation(Required = true)]
        public bool? Required { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
    }
  
    public partial class SurveyQuestionDataItem
    {
        public string Id { get; set; }

        public string Value { get; set; }
    }
  
    public partial class SurveyQuestionDataItems : List<SurveyQuestionDataItem>
    {
    }
  
    public partial class SurveyQuestions : List<SurveyQuestion>
    {
    }
  
    public partial class SurveyQuestionSummaries : List<SurveyQuestionSummary>
    {
    }
  
    public partial class SurveyQuestionSummary
    {
        public string Question { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class SystemDefault
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public string Value { get; set; }

        public string ParentTable { get; set; }

        public string FieldName { get; set; }
    }
  
    public partial class SystemDefaults : List<SystemDefault>
    {
    }
  
    public partial class SystemDefaultSummaries : List<SystemDefaultSummary>
    {
    }
  
    public partial class SystemDefaultSummary
    {
        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public string Value { get; set; }

        public string ParentTable { get; set; }

        public string FieldName { get; set; }
    }
  
    public partial class TemplateCategory
    {
        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroup ControlGroup { get; set; }

        [Documentation(Required = true, FKTable = "TR_TEMPLATE_TYPE", FKColumn = "id", FKResourceName = "TemplateTypes")]
        public TemplateTypeSummary Type { get; set; }

        [Documentation(Required = false)]
        public bool EditIndicator { get; set; }
    }

    public partial class TemplateCategories : List<TemplateCategory>
    {
    }

    public partial class TemplateCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }

        [Documentation(Required = false)]
        public bool EditIndicator { get; set; }

        [Documentation(Required = true, FKTable = "TR_TEMPLATE_TYPE", FKColumn = "id", FKResourceName = "TemplateTypes")]
        public TemplateTypeSummary Type { get; set; }
    }

    public partial class TemplateCategorySummaries : List<TemplateCategorySummary>
    {
    }
  
    public partial class TemplateType
    {
        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }

    public partial class TemplateTypes : List<TemplateType>
    {
    }

    public partial class TemplateTypeSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }

    public partial class TemplateTypeSummaries : List<TemplateTypeSummary>
    {
    }
  
    public partial class Theater
    {
        [Documentation(Required = false, MaxLength = 30)]
        public string City { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string DrivingDirections { get; set; }

        [Documentation(Required = false, MaxLength = 16)]
        public string DataWindowDefinition { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public int? MaximumNumberOfSeats { get; set; }

        [Documentation(Required = false, MaxLength = 32)]
        public string Phone { get; set; }

        [Documentation(Required = false, MaxLength = 10)]
        public string PostalCode { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string State { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string Street { get; set; }
    }
  
    public partial class Theaters : List<Theater>
    {
    }
  
    public partial class TheaterSummaries : List<TheaterSummary>
    {
    }
  
    public partial class TheaterSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    public partial class TicketDesign
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }
    }
  
    public partial class TimeSlot
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartTime { get; set; }
    }
  
    public partial class TimeSlots : List<TimeSlot>
    {
    }
  
    public partial class TimeSlotSummaries : List<TimeSlotSummary>
    {
    }
  
    public partial class TimeSlotSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }
    }
 public partial class UpgradeCategory {
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required = true)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required = true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
    
    public partial class UpgradeCategories : List<UpgradeCategory> {
    }
    
    public partial class UpgradeCategorySummary {
        
        public int? Id { get; set; }
        
        public string Description { get; set; }
    }
    
    public partial class UpgradeCategorySummaries : List<UpgradeCategorySummary> {
    }
  
    public partial class WorkerRole
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = true)]
        public bool ShowInPortfolioDefault { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class WorkerRoles : List<WorkerRole>
    {
    }
  
    public partial class WorkerRoleSummaries : List<WorkerRoleSummary>
    {
    }
  
    public partial class WorkerRoleSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public bool ShowInPortfolioDefault { get; set; }
    }
  
    public partial class WorkerType
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class WorkerTypes : List<WorkerType>
    {
    }
  
    public partial class WorkerTypeSummaries : List<WorkerTypeSummary>
    {
    }
  
    public partial class WorkerTypeSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ZoneGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public int Rank { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ZoneGroups : List<ZoneGroup>
    {
    }
  
    public partial class ZoneGroupSummaries : List<ZoneGroupSummary>
    {
    }
  
    public partial class ZoneGroupSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public bool? Inactive { get; set; }

        public int Rank { get; set; }
    }
  
    public static class PricingRuleCriterionTypeConstants
    {
        public const int OrderAppeal = 2;
        public const int OrderSource = 3;
        public const int ConstituentConstituency = 4;
        public const int ConstituentAttribute = 5;
        public const int ConstituentRanking = 7;
        public const int ConstituentList = 8;
        public const int PromotedAppealSource = 9;
        public const int QualifyingPerformance = 11;
        public const int QualifyingProdSeason = 12;
        public const int QualifyingPackage = 13;
        public const int QualifyingZone = 14;
        public const int QualifyingPriceType1 = 15;
        public const int QualifyingPriceType2 = 16;
        public const int QualifyingSeatCount1 = 17;
        public const int QualifyingSeatCount2 = 18;
        public const int ResultPerformance = 20;
        public const int ResultProdSeason = 21;
        public const int ResultPackage = 22;
        public const int ResultZone = 23;
        public const int ResultPriceType = 24;
        public const int ResultSeatCount = 25;
        public const int ResultMaxSeats = 26;
        public const int ApplyToLowestCommonNumberOfSeats = 27;
        public const int QualifyingSeasonPackageType = 29;
        public const int ResultSeasonPackageType = 31;
    }
  
    public partial class AuditDetail
    {
        public string Action { get; set; }

        public int Id { get; set; }

        public string AuditTable { get; set; }

        public int EntityId { get; set; }

        public int? ParentEntityId { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }

        public AuditEntries AuditEntries { get; set; }
    }
  
    public partial class AuditDetails : List<AuditDetail>
    {
    }
  
    public partial class AuditEntries : List<AuditEntry>
    {
    }
  
    public partial class AuditEntry
    {
        public string Property { get; set; }

        public string Old { get; set; }

        public string New { get; set; }
    }
  
    public partial class AuditEntryDetail
    {
        public int AuditLogId { get; set; }

        public string UserName { get; set; }

        public DateTime? ActionDateTime { get; set; }

        public Entity ControlGroup { get; set; }

        public string CreateLocation { get; set; }

        public string Action { get; set; }

        public int AuditDetail { get; set; }

        public string AuditTable { get; set; }

        public int EntityId { get; set; }

        public int? ParentEntityId { get; set; }

        public string Property { get; set; }

        public string Old { get; set; }

        public string New { get; set; }
    }
  
    public partial class AuditEntryDetails : List<AuditEntryDetail>
    {
    }
  
    public partial class AuditLog
    {
        public int Id { get; set; }

        public string UserName { get; set; }

        public DateTime? ActionDateTime { get; set; }

        public string CreateLocation { get; set; }

        public AuditDetails AuditDetails { get; set; }
    }
  
    public partial class AuditLogResponse
    {
        public AuditLogs AuditLogs { get; set; }

        public int Total { get; set; }

        public int PageIndex { get; set; }

        public int PageSize { get; set; }
    }
  
    public partial class AuditLogs : List<AuditLog>
    {
    }
 public partial class OutputSet {
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(Required=false)]
        public bool EditIndicator { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(Required=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(Required=false)]
        public DateTime? LastUsedDateTime { get; set; }
        
        [Documentation(Required=false, MaxLength=30)]
        public string Description { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(Required=true)]
        public bool TMSIndicator { get; set; }
        
        [Documentation(Required=true, FKTable="TR_CONTROL_GROUP", FKColumn="id", FKResourceName="ControlGroups")]
        public ControlGroup ControlGroup { get; set; }
    }
    
    public partial class OutputSets : List<OutputSet> {
    }
  
    public partial class ParameterOption
    {
        public bool Inactive { get; set; }

        public string DisplayText { get; set; }

        public string Value { get; set; }
    }
  
    public partial class Report
    {
        [Documentation(Required = false)]
        public string AllowQuery { get; set; }

        [Documentation(Required = true)]
        public string AllowSchedule { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string ApplicationId { get; set; }

        [Documentation(Required = true, FKTable = "gooesoft_report_category", FKColumn = "id", FKResourceName = "ReportCategories")]
        public int Category { get; set; }

        [Documentation(Required = false, MaxLength = 1024)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string Id { get; set; }

        [Documentation(Required = false)]
        public bool ImpWinInd { get; set; }

        [Documentation(Required = false, MaxLength = 40)]
        public string ImpWinName { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        public int LastRequestId { get; set; }

        [Documentation(Required = true, MaxLength = 50)]
        public string Name { get; set; }

        [Documentation(Required = false, MaxLength = 2048)]
        public string PsrFile { get; set; }

        [Documentation(Required = false)]
        public string PublicFlag { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string QuerystringAppend { get; set; }

        [Documentation(Required = true, FKTable = "TR_REPORT_TYPE", FKColumn = "Id", FKResourceName = "")]
        public int ReportType { get; set; }

        [Documentation(Required = true)]
        public bool UtilityInd { get; set; }

        [Documentation(Required = true)]
        public bool WarningInd { get; set; }

        [Documentation(Required = false, MaxLength = 40)]
        public string Window { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ReportCategories : List<ReportCategory>
    {
    }
  
    public partial class ReportCategory
    {
        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string DescriptionText { get; set; }

        [Documentation(Required = true)]
        public string Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ReportCustomData
    {
        public string Id { get; set; }

        public string Value { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class ReportData
    {
        [Documentation(Required = false)]
        public int? PageCount { get; set; }

        [Documentation(Required = false, MaxLength = 16)]
        public byte[] ReportDataBytes { get; set; }

        [Documentation(Required = false, MaxLength = 1000)]
        public string ReportUrl { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }
    }
  
    public partial class ReportDefaults
    {
        public string SSRSUrl { get; set; }

        public string CompanyName { get; set; }

        public string FileSaveReportPath { get; set; }

        public string EmailReportPath { get; set; }

        public string SSRSStandardPath { get; set; }

        public string SSRSCustomPath { get; set; }
    }
  
    public partial class ReportParameter
    {
        [Documentation(Required = false, MaxLength = 50)]
        public string DataColumn { get; set; }

        [Documentation(Required = true)]
        public short DataType { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string DefaultValue { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string DisableClause { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string DisplayColumn { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string EditStyle { get; set; }

        [Documentation(Required = false)]
        public string EditStyleFlag { get; set; }

        [Documentation(Required = false)]
        public string EndOfDay { get; set; }

        [Documentation(Required = false)]
        public short Length { get; set; }

        [Documentation(Required = false)]
        public bool MultiSelect { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string OrderClause { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string ParameterName { get; set; }

        [Documentation(Required = false)]
        public int ParameterType { get; set; }

        [Documentation(Required = true, MaxLength = 100)]
        public string ReportId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = false)]
        public bool Required { get; set; }

        [Documentation(Required = false)]
        public short SequenceNumber { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string TableName { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Validation { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string WhereClause { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ReportParameters : List<ReportParameter>
    {
    }
  
    public partial class ReportRequest
    {
        public int Id { get; set; }

        public string DeletedFlag { get; set; }

        public string EmailBody { get; set; }

        public string EmailRecipients { get; set; }

        public string EmailSubject { get; set; }

        public DateTime? EndDateTime { get; set; }

        public string FormName { get; set; }

        public string PrintedInd { get; set; }

        public string PrinterName { get; set; }

        public string PublicFlag { get; set; }

        public string ReportId { get; set; }

        public DateTime RequestDateTime { get; set; }

        public string ResultCode { get; set; }

        public string ResultText { get; set; }

        public string Type { get; set; }

        public string UserGroupId { get; set; }

        public string UserId { get; set; }
    }

    public partial class ReportRequests : List<ReportRequest>
    {
        
    }
  
    public partial class ReportRequestParameter
    {
        public bool QueryNonqueryFlag { get; set; }

        public ReportRequest Request { get; set; }

        public ReportParameter ReportParameter { get; set; }

        public string Value { get; set; }
    }
  
    public partial class Reports : List<Report>
    {
    }
  
    public partial class ReportSchedule
    {
        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(Required = false)]
        public short DayOfWeek { get; set; }

        [Documentation(Required = false)]
        public short DayWeekNumber { get; set; }

        [Documentation(Required = false)]
        public string DeactivateFlag { get; set; }

        [Documentation(Required = false)]
        public DateTime EndDate { get; set; }

        [Documentation(Required = false)]
        public DateTime EndTime { get; set; }

        [Documentation(Required = false)]
        public short Interval { get; set; }

        [Documentation(Required = true, MaxLength = 50)]
        public string Name { get; set; }

        [Documentation(Required = true)]
        public int RequestId { get; set; }

        [Documentation(Required = false)]
        public DateTime StartDate { get; set; }

        [Documentation(Required = false)]
        public DateTime StartTime { get; set; }

        [Documentation(Required = true)]
        public string Type { get; set; }
    }
  
    public partial class ReportScheduleQueue
    {
        [Documentation(Required = false)]
        public virtual DateTime? ComputedDate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public virtual ReportRequest Request { get; set; }
        

        [Documentation(Required = true)]
        public virtual ReportSchedule Schedule { get; set; }

        [Documentation(Required = false)]
        public virtual string Status { get; set; }
    }
  
    public partial class StoredReport
    {
        public string Name { get; set; }

        public string ReportName { get; set; }

        public DateTime ProcessedOn { get; set; }

        public string RequestId { get; set; }

        public string PrinterName { get; set; }

        public string UserId { get; set; }

        public string IsDeleted { get; set; }

        public string ReportCategory { get; set; }

        public string ViewRight { get; set; }

        public string MaxRequest { get; set; }

        public string ScheduleId { get; set; }

        public string QueryStringAppend { get; set; }
    }
  
    public partial class ApplicationObject
    {
        [Documentation(Required = false)]
        public string ConstituencyBased { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Name { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string ObjectType { get; set; }
    }
  
    public partial class ApplicationObjectConstants
    {
        public const int BatchDetailsWindowtabs = 205;
        public const int BatchReports = 203;
        public const int CampaignPlansTab = 204;
        public const int CampaignsModule = 58;
        public const int ConstActivitiesRB = 42;
        public const int ConstAddressMapping = 153;
        public const int ConstAliasRB = 34;
        public const int ConstAssets = 30;
        public const int ConstAttendanceHistoryRB = 219;
        public const int ConstAttributesRB = 141;
        public const int ConstAttributesTab = 8;
        public const int ConstAuditRB = 52;
        public const int ConstChangeType = 65;
        public const int ConstConnectionsTab = 10;
        public const int ConstConstituenciesRB = 5;
        public const int ConstContactDetailsTab = 4;
        public const int ConstContactLogRB = 51;
        public const int ConstContactPermissionsRB = 220;
        public const int ConstContributionsTab = 11;
        public const int ConstContsSourceandDate = 156;
        public const int ConstConverttoHousehold = 173;
        public const int ConstConverttoIndividual = 174;
        public const int ConstCreditCardsRB = 55;
        public const int ConstCustServiceRB = 48;
        public const int ConstCustomRB1 = 81;
        public const int ConstCustomRB2 = 82;
        public const int ConstCustomRB3 = 83;
        public const int ConstCustomRB4 = 84;
        public const int ConstCustomRB5 = 85;
        public const int ConstCustomRB6 = 86;
        public const int ConstCustomTab = 14;
        public const int ConstDirectDebitsRB = 207;
        public const int ConstDocuments = 28;
        public const int ConstElectronicAddressRB = 88;
        public const int ConstEventGuestsDrilldown = 59;
        public const int ConstEventsRB = 41;
        public const int ConstGeneralTab = 2;
        public const int ConstGiftAidDeclarationsRB = 168;
        public const int ConstGiftAidPaymentsRB = 169;
        public const int ConstHistoryTab = 9;
        public const int ConstInactivate = 57;
        public const int ConstInterestsRB = 142;
        public const int ConstLoginRB = 89;
        public const int ConstLoginUpdate = 151;
        public const int ConstMembershipsRB = 43;
        public const int ConstMerchandiseRB = 46;
        public const int ConstMerge = 64;
        public const int ConstMoveTransactions = 172;
        public const int ConstNamesTab = 3;
        public const int ConstNotesRB = 16;
        public const int ConstOrdersSource = 165;
        public const int ConstOrdersSubsSummary = 76;
        public const int ConstOrdersTab = 75;
        public const int ConstPackageHistoryRB = 78;
        public const int ConstPaymentHistoryRB = 54;
        public const int ConstPhilanthropyRB = 29;
        public const int ConstPhoneRB = 90;
        public const int ConstPlannedGiftsRB = 45;
        public const int ConstPlansRB = 91;
        public const int ConstPortfoliosRB = 183;
        public const int ConstPostalAddressRB = 87;
        public const int ConstPremiumsRB = 44;
        public const int ConstProgramsRB = 35;
        public const int ConstPromotionsRB = 49;
        public const int ConstPurposesRB = 199;
        public const int ConstRankings = 111;
        public const int ConstRelationshipsTab = 6;
        public const int ConstRemindersRB = 50;
        public const int ConstResearchRB = 32;
        public const int ConstResearchTab = 7;
        public const int ConstResourceQualsRB = 217;
        public const int ConstResourceScheduleRB = 218;
        public const int ConstResourceSetupRB = 216;
        public const int ConstSalutationsRB = 33;
        public const int ConstSchools = 31;
        public const int ConstSearchScreen = 1;
        public const int ConstSeatHistoryRB = 74;
        public const int ConstTicketHistoryRB = 77;
        public const int ConstTicketHistoryTab = 13;
        public const int ConstTransHistoryRB = 53;
        public const int ConstTransactionsTab = 12;
        public const int ConstWorkerProfileTab = 47;
        public const int ConstWorkersRB = 182;
        public const int ConstituentsModule = 150;
        public const int ContactPermTransactionPop = 221;
        public const int ContsBatchPosting = 70;
        public const int ContsContributionEntry = 63;
        public const int CpgsAcknowledgements = 68;
        public const int CpgsAppealCategories = 67;
        public const int CpgsAppealDisplay = 17;
        public const int CpgsAppealEdit = 18;
        public const int CpgsCampaignDisplay = 20;
        public const int CpgsCampaignEdit = 15;
        public const int CpgsFunds = 26;
        public const int CpgsGLAccounts = 71;
        public const int CpgsMagazine = 25;
        public const int CpgsMedia = 24;
        public const int CpgsMembership = 21;
        public const int CpgsPaymentMethod = 72;
        public const int CpgsPremiums = 22;
        public const int CpgsSourceGroups = 23;
        public const int ExtractionManager = 129;
        public const int HelpContentSystem = 176;
        public const int HoldCodeLayers = 134;
        public const int HoldsandAllocations = 119;
        public const int IntegrationServer = 167;
        public const int KioskDashboard = 166;
        public const int MyDashboard = 175;
        public const int PaymentWindowSelectAccount = 171;
        public const int PaymentsRefundPriorPayments = 210;
        public const int PerformanceInfoSummary = 139;
        public const int PlansMaintenance = 56;
        public const int ProdElementsCreditsTab = 163;
        public const int ProdElementsKeywordsTab = 164;
        public const int ProdElementsModeofSaleTab = 161;
        public const int ProdElementsSegmentsTab = 162;
        public const int ReportOutput = 136;
        public const int ReportViewer = 69;
        public const int ResourceAssignOverride = 215;
        public const int ResourceSetup = 212;
        public const int ResourceTypeSetup = 213;
        public const int SeasonMaintAllocCodes = 146;
        public const int SeasonMaintHoldCodes = 145;
        public const int SeasonMaintKeywords = 170;
        public const int SeasonMaintMOS = 147;
        public const int SeasonMaintOffers = 159;
        public const int SeasonMaintPriceTypes = 148;
        public const int SeasonMaintPriceZones = 149;
        public const int SeasonMaintProductData = 152;
        public const int SeasonMgrAutomatedSeating = 107;
        public const int SeasonMgrBatchPrinting = 110;
        public const int SeasonMgrFormPrinting = 128;
        public const int SeasonMgrHouseView = 104;
        public const int SeasonMgrOrderSearch = 158;
        public const int SeasonMgrProjections = 133;
        public const int SeasonMgrRecordAttendance = 144;
        public const int SeasonMgrRollovers = 106;
        public const int SeasonMgrSeasonMaint = 105;
        public const int SeasonMgrSeasonOverview = 132;
        public const int SeasonMgrSeatCancellation = 109;
        public const int SeatingLocations = 125;
        public const int Seatmap = 124;
        public const int SystemTablesModule = 66;
        public const int Templates = 222;
        public const int TicketBenevolentReturns = 126;
        public const int TicketPrinting = 122;
        public const int TicketReprinting = 123;
        public const int TicketReturns = 121;
        public const int TicketingBookings = 214;
        public const int TicketingChangeConstID = 140;
        public const int TicketingChangeMOS = 157;
        public const int TicketingOrdersModule = 103;
        public const int TicketingOverrideAllocRank = 138;
        public const int TicketingQuickSale = 200;
        public const int TicketingSeasonMgrModule = 102;
        public const int TicketingSeatedNonPrUpgLI = 155;
        public const int TicketingSetupModule = 101;
        public const int TktCalendarAvailabilityItem = 130;
        public const int TktSetupAllocCodes = 191;
        public const int TktSetupArtists = 114;
        public const int TktSetupBulkCopy = 211;
        public const int TktSetupContent = 154;
        public const int TktSetupFacilityManager = 115;
        public const int TktSetupFees = 118;
        public const int TktSetupHoldCodeSecurity = 193;
        public const int TktSetupHoldCodes = 190;
        public const int TktSetupModesofSale = 73;
        public const int TktSetupMOSAllocations = 178;
        public const int TktSetupMOSCategories = 179;
        public const int TktSetupMOSPriceTypes = 180;
        public const int TktSetupMOSSurveyQuestion = 208;
        public const int TktSetupMOSUserGroup = 181;
        public const int TktSetupPackages = 116;
        public const int TktSetupPriceTypeReasons = 201;
        public const int TktSetupPriceTypeReason = 202;
        public const int TktSetupPricingDiscMaint = 195;
        public const int TktSetupPricingDiscPT = 196;
        public const int TktSetupPricingDiscounts = 186;
        public const int TktSetupPricingPriceGrids = 184;
        public const int TktSetupPricingPTMaint = 194;
        public const int TktSetupPricingPTUserGroup = 197;
        public const int TktSetupPricingRuleSets = 185;
        public const int TktSetupPricingRules = 187;
        public const int TktSetupPricingSetup = 198;
        public const int TktSetupPricingTemplates = 189;
        public const int TktSetupProductionElements = 113;
        public const int TktSetupSalesLayouts = 206;
        public const int TktSetupTicketDesign = 117;
        public const int TNEWSiteAdministration = 209;
        public const int ToolsCustServiceActions = 62;
        public const int ToolsCustServiceIssues = 61;
        public const int ToolsListManager = 135;
        public const int ToolsOutputSetBuilder = 143;
        public const int Viewinginvoices = 127;
        public const int WebEMailProcess = 131;
    }
  
    public partial class AuthenticationRequest
    {
        public string UserName { get; set; }

        public string UserGroup { get; set; }

        public string Password { get; set; }

        public string MachineLocation { get; set; }
    }
  
    public partial class AuthenticationResponse
    {
        public bool IsAuthenticated { get; set; }

        public UserGroupSummary UserGroup { get; set; }

        public User User { get; set; }
    }
  
    public partial class ContextInformation
    {
        public int? DefaultBatchTypeId { get; set; }

        public int? DefaultControlGroupId { get; set; }

        public int? DefaultModeOfSaleId { get; set; }

        public int? OrganizationId { get; set; }

        public int? WorkerConstituentId { get; set; }

        public string OrganizationName { get; set; }
    }
  
    public partial class ControlGroupDivision
    {
        public int Id { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }

        public string DivisionId { get; set; }
    }

    public partial class ControlGroupDivisions : List<ControlGroupDivision>
    {

    }
  
    public partial class ControlGroupUserGroup
    {
        public int Id { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }

        public string UserGroup { get; set; }

        public bool EditIndicator { get; set; }
    }

    public partial class ControlGroupUserGroups : List<ControlGroupUserGroup>
    {
        
    }

  
    public partial class DefaultUserGroup
    {
        public string UserGroup { get; set; }
    }
  
    [Serializable]
    public partial class Division
    {
        public string Id { get; set; }

        public string Name { get; set; }

        public string Description { get; set; }
    }
  
    public partial class EncryptionKeyCheckResponse
    {
        public bool IsExpired { get; set; }

        public bool IsWithinWarningPeriod { get; set; }
    }
  
    public partial class ObjectPermission
    {
        [Documentation(Required = false)]
        public string CanCreate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public string CanDelete { get; set; }

        [Documentation(Required = false)]
        public string CanEdit { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public ConstituencyTypeSummary Constituency { get; set; }

        [Documentation(Required = true, FKTable = "T_APP_OBJECTS", FKColumn = "object_id", FKResourceName = "ApplicationObjects")]
        public ApplicationObject ApplicationObject { get; set; }

        [Documentation(Required = true, MaxLength = 8, FKTable = "T_METUSERGROUP", FKColumn = "UG_id", FKResourceName = "")]
        public UserGroup UserGroup { get; set; }

        [Documentation(Required = false)]
        public string CanView { get; set; }
    }
  
    public partial class ObjectPermissions : List<ObjectPermission>
    {
    }
  
    public partial class ReferenceTableUserGroup
    {
        [Documentation(Required = true, MaxLength = 128)]
        public virtual string TableName { get; set; }

        [Documentation(Required = true, MaxLength = 8, FKTable = "T_METUSERGROUP", FKColumn = "UG_id", FKResourceName = "")]
        public string UserGroupId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public bool? CanEdit { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ReferenceTableUserGroups : List<ReferenceTableUserGroup>
    {
    }
  
    public partial class UserGroup
    {
        public string Id { get; set; }

        public string Name { get; set; }

        public string Description { get; set; }

        public bool IsAdmin { get; set; }

        public bool AllowApp { get; set; }

        public bool AllowTablet { get; set; }

        public bool AllowOnTheGo { get; set; }

        public bool AllowAnalytics { get; set; }
        
        public Division Division { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }
    }
  
    public partial class UserGroups : List<UserGroup>
    {
    }
  
    public partial class UserGroupSummaries : List<UserGroupSummary>
    {
    }
  
    public partial class UserGroupSummary
    {
        public string Id { get; set; }

        public string Name { get; set; }

        public string Description { get; set; }

        public bool IsAdmin { get; set; }
    }
  
    public partial class UserPreference
    {
        [Documentation(Required = true, MaxLength = 30)]
        public string Key { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, MaxLength = 8000)]
        public string Value { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class UserPreferences : List<UserPreference>
    {
    }
  
    public partial class WebLoginValidationRequest
    {
        public string LoginName { get; set; }

        public int LoginTypeId { get; set; }

        public string Password { get; set; }
    }
  
    public partial class WebLoginValidationResponse
    {
        public bool IsAuthenticated { get; set; }

        public ConstituentDisplaySummary Constituent { get; set; }
    }
  
    public partial class TemplateSummary
    {
        public TemplateCategorySummary Category { get; set; }

        public int? Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }
    }


    public partial class Template
    {
        [Documentation(Required = true)]
        public TemplateCategorySummary Category { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 100)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public string TemplateSubject { get; set; }

        [Documentation(Required = false)]
        public string TemplateBody { get; set; }

        public bool IsHtmlBody { get; set; }

        public bool EditIndicator { get; set; }
    }

    public partial class Templates : List<Template>
    {
    }

    public partial class TemplateSummaries : List<TemplateSummary>
    {
    }
  
    public partial class TemplateBody
    {
        public string Body { get; set; }

        public bool IsHtmlBody { get; set; }
    }
  
    public partial class Artist
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string FirstName { get; set; }

        [Documentation(Required = false, MaxLength = 55)]
        public string LastName { get; set; }

        [Documentation(Required = false, MaxLength = 20)]
        public string MiddleName { get; set; }

        [Documentation(Required = false)]
        public short VoiceId { get; set; }

        [Documentation(Required = false, MaxLength = 16)]
        public string Bio { get; set; }
    }
  
    public partial class Artists : List<Artist>
    {
    }
  
    public partial class ArtistSummary
    {
        public int Id { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

        public string MiddleName { get; set; }

        public EntitySummary Voice { get; set; }

        public string Biography { get; set; }
    }
  
    public partial class AutomatedBillingRejection
    {
        [Documentation(Required = true)]
        public DateTime? AccountExpiryDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string AccountNumber { get; set; }

        [Documentation(Required = false)]
        public int? AccountId { get; set; }

        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        [Documentation(Required = true)]
        public int ConstituentId { get; set; }

        [Documentation(Required = true)]
        public string DeclinedCode { get; set; }

        [Documentation(Required = true)]
        public DateTime? DeclinedDate { get; set; }

        [Documentation(Required = true, MaxLength = 255)]
        public string DeclinedReason { get; set; }

        [Documentation(Required = true)]
        public int AutomatedBillingRunId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public DateTime? RequestDate { get; set; }

        [Documentation(Required = false, FKTable = "T_BATCH", FKColumn = "batch_no", FKResourceName = "Batches")]
        public int? BatchId { get; set; }
    }

    public partial class AutomatedBillingRejections : List<AutomatedBillingRejection>
    {
    }
  
    public partial class BestSeatMap
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public string GaIndicator { get; set; }

        [Documentation(Required = false)]
        public int SeatMapId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class BestSeatMaps : List<BestSeatMap>
    {
    }
  
    public partial class BestSeatMapSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
 public partial class BulkCopySet {
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool AvailableForSaleIndicator { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CopyCredits { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CopyNotes { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CopyOffers { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CopyPriceEvents { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CopyPrices { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CreateFriday { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public DateTime? CreateFromDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CreateMonday { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public string CreateMode { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CreateSaturday { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CreateSunday { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CreateThursday { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public DateTime? CreateToDateTime { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CreateTuesday { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool CreateWednesday { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 1)]
        public string DefaultRelativeDates { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool OverrideOnSale { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 10)]
        public string PerformanceCode { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public int PerformanceCodeSeed { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 30)]
        public string PerformanceDescription { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 1)]
        public string PerformanceModeOfSaleRelativeDates { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public PerformanceStatus PerformanceStatus { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public String PerformanceTime { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public PerformanceType PerformanceType { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 30)]
        public string PackageCode { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public int? PackageCodeSeed { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public string PackageModeOfSaleRelativeDates { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public string PriceEventRelativeDates { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, FKTable = "T_PROD_SEASON", FKColumn = "prod_season_no", FKResourceName = "ProductionSeasons")]
        public ProductionSeason ProductionSeason { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 1)]
        public string PriceTypeRelativeDates { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 1)]
        public string PublishRelativeDates { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public DateTime? ReferenceDay { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public int? ReferencePerformanceId { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 255)]
        public string ReferenceSeasonString { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 30)]
        public string SetDescription { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public int SetType { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, MaxLength = 20)]
        public string ShortName { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroup ControlGroup { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false, FKTable = "TR_TIME_SLOT", FKColumn = "id", FKResourceName = "TimeSlots")]
        public TimeSlot TimeSlot { get; set; }
    }
    
    public partial class BulkCopySets : List<BulkCopySet> {
    }
 public partial class BulkCopySetSummary {
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool Inactive { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, MaxLength = 30)]
        public string SetDescription { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public int SetType { get; set; }
    }
    
    public partial class BulkCopySetSummaries : List<BulkCopySetSummary> {
    }
 public partial class BulkDailyCopyExclusion {
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool DoNotCopy { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true)]
        public bool IncludeWithoutCopy { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public int? PerformanceId { get; set; }
        
        [Documentation(RequiredForPost = false, RequiredForPut = false)]
        public int? PackageId { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public int? Id { get; set; }
        
        [Documentation(RequiredForPost = true, RequiredForPut = true, FKTable = "T_BULK_COPY_SET", FKColumn = "set_no", FKResourceName = "BulkCopySets")]
        public BulkCopySet Set { get; set; }
    }
    
    public partial class BulkDailyCopyExclusions : List<BulkDailyCopyExclusion> {
    }
  
    public partial class ContributionAcknowledgement
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string AppealDescription { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string CampaignDescription { get; set; }

        [Documentation(Required = false)]
        public decimal ContributionAmount { get; set; }

        [Documentation(Required = false)]
        public int? ContributionDesignationId { get; set; }

        [Documentation(Required = false)]
        public int? ContributionId { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 1)]
        public bool? WasCredited { get; set; }

        [Documentation(Required = false)]
        public int? ConstituentId { get; set; }

        [Documentation(Required = false, MaxLength = 1)]
        public bool? DeclinedBenefits { get; set; }

        [Documentation(Required = false)]
        public int? DuplicateOf { get; set; }

        [Documentation(Required = false)]
        public DateTime? ExpirationDateTime { get; set; }

        [Documentation(Required = false)]
        public decimal GoodsServicesValue { get; set; }

        [Documentation(Required = false)]
        public DateTime? InceptionDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string MembershipDescription { get; set; }

        [Documentation(Required = false)]
        public int? MirrorLock { get; set; }

        [Documentation(Required = false)]
        public decimal Premium1Amount { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Premium1Description { get; set; }

        [Documentation(Required = false)]
        public decimal Premium2Amount { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Premium2Description { get; set; }

        [Documentation(Required = false)]
        public decimal Premium3Amount { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Premium3Description { get; set; }

        [Documentation(Required = false)]
        public decimal Premium4Amount { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Premium4Description { get; set; }

        [Documentation(Required = false)]
        public decimal Premium5Amount { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Premium5Description { get; set; }

        [Documentation(Required = false)]
        public DateTime? PrintedDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 1)]
        public bool? IsPrinted { get; set; }

        [Documentation(Required = false)]
        public decimal ReceivedAmount { get; set; }

        [Documentation(Required = false)]
        public int? SalutationId { get; set; }

        [Documentation(Required = false)]
        public int? TaxReceiptId { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string TransactionDescription { get; set; }

        [Documentation(Required = false)]
        public DateTime? TransactionDateTime { get; set; }

        [Documentation(Required = false)]
        public int? TransactionId { get; set; }

        [Documentation(Required = false, FKTable = "TR_ADDRESS_TYPE", FKColumn = "id", FKResourceName = "AddressTypes")]
        public int? AddressTypeId { get; set; }

        [Documentation(Required = false, FKTable = "T_FORMAT_INFO", FKColumn = "id", FKResourceName = "Formats")]
        public int? LetterId { get; set; }
    }

    public partial class ContributionAcknowledgements : List<ContributionAcknowledgement>
    {
    }
  
    public partial class ContributionBillingSchedule
    {
        [Documentation(Required = false)]
        public decimal AmountDue { get; set; }

        [Documentation(Required = false)]
        public decimal AmountReceived { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public DateTime? DueDateTime { get; set; }

        [Documentation(Required = false)]
        public int? MirrorLock { get; set; }

        [Documentation(Required = false, MaxLength = 1)]
        public string ReceivedStatus { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public int ContributionId { get; set; }

        [Documentation(Required = false, MaxLength = 1)]
        public string Status { get; set; }

        [Documentation(Required = false)]
        public int? TransactionId { get; set; }
    }

    public partial class ContributionBillingSchedules : List<ContributionBillingSchedule>
    {
    }
  
    public partial class Credit
    {
        public Owner Owner { get; set; }

        public EntitySummary Role { get; set; }

        public ArtistSummary Artist { get; set; }

        public int? Rank { get; set; }
    }
  
    public partial class CreditResult
    {
        /// <summary>
        /// The production element to which the credits belong
        /// </summary>
        public Owner RequestedOwner { get; set; }

        /// <summary>
        /// A collection of details for each credit returned. Details include role, artist details, owner (the production element to which the keyword is associated), and credit rank.
        /// </summary>
        public Credits Credits { get; set; }
    }
  
    public partial class CreditResults : List<CreditResult>
    {
    }
  
    public partial class Credits : List<Credit>
    {
    }
  
    public enum DateOption
    {
        ActualDates,
        RelativeDates,
        RelativeEndDatesOnly,
        RelativeStartDatesOnly
    }
  
    public partial class EmailPromotionUpdateRequest
    {
        public int DownloadNumber { get; set; }

        public int ConstituentId { get; set; }

        public string EventName { get; set; }

        public DateTime? EventDateTime { get; set; }
    }
  
    public partial class ExpireSeatHoldRequest
    {
        [Documentation(Required = false)]
        public DateTime? ExpireAsOfDate { get; set; }
        [Documentation(Required = true)]
        public string SeatIds{ get; set; }
    }
  
    public partial class Facilities : List<Facility>
    {
    }
  
    public partial class Facility
    {
        [Documentation(Required = false, FKTable = "T_BSMAP", FKColumn = "bsmap_no")]
        public int? DefaultBestSeatMapId { get; set; }

        [Documentation(Required = false, FKTable = "T_ZMAP", FKColumn = "zmap_no", FKResourceName = "ZoneMaps")]
        public int? DefaultZoneMapId { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "T_SMAP", FKColumn = "smap_no")]
        public SeatMap SeatMap { get; set; }

        [Documentation(Required = true, FKTable = "TR_THEATER", FKColumn = "id", FKResourceName = "Theaters")]
        public TheaterSummary Theater { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class FacilitySummaries : List<FacilitySummary>
    {
    }
  
    public partial class FacilitySummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public SeatMapSummary SeatMap { get; set; }
    }
  
    public partial class Fee
    {
        [Documentation(Required = true)]
        public bool? AllowNegativePercent { get; set; }

        [Documentation(Required = false, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int? BusinessUnitId { get; set; }

        [Documentation(Required = false, FKTable = "T_CAMPAIGN", FKColumn = "campaign_no", FKResourceName = "Campaigns")]
        public CampaignSummary Campaign { get; set; }

        [Documentation(Required = false)]
        public FeeCategorySummary Category { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false, FKTable = "TR_DESIG_CODE", FKColumn = "id", FKResourceName = "DesignationCodes")]
        public DesignationCodeSummary DesignationCode { get; set; }

        [Documentation(Required = true)]
        public bool UserEditIndicator { get; set; }

        [Documentation(Required = false)]
        public decimal? EndAmount { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public bool? ExchangeFeeInd { get; set; }

        [Documentation(Required = false)]
        public decimal? FeeAmount { get; set; }

        [Documentation(Required = false, MaxLength = 5)]
        public string FeeFrequency { get; set; }

        [Documentation(Required = false, MaxLength = 30, FKTable = "T_GL_ACCOUNT", FKColumn = "gl_account_no", FKResourceName = "GlAccounts")]
        public string GlAccount { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public int? FiscalYear { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = false)]
        public bool? NeverDelete { get; set; }

        [Documentation(Required = false)]
        public bool? PercentIndicator { get; set; }

        [Documentation(Required = false)]
        public int? PercentRound { get; set; }

        [Documentation(Required = true, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public SeasonSummary Season { get; set; }

        [Documentation(Required = false)]
        public decimal? StartAmount { get; set; }

        [Documentation(Required = false, MaxLength = 1024)]
        public string Text1 { get; set; }

        [Documentation(Required = false, MaxLength = 1024)]
        public string Text2 { get; set; }

        [Documentation(Required = true)]
        public bool UserDefinedIndicator { get; set; }

        public bool EditIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class FeeCategories : List<FeeCategory>
    {
    }
  
    public partial class FeeCategory
    {
        [Documentation(Required = false, MaxLength = 30)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class FeeCategorySummaries : List<FeeCategorySummary>
    {
    }
  
    public partial class FeeCategorySummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class Fees : List<Fee>
    {
    }
  
    public partial class FeeSummaries : List<FeeSummary>
    {
    }
  
    public partial class FeeSummary
    {
        public string Description { get; set; }

        public decimal? FeeAmount { get; set; }

        public bool Inactive { get; set; }

        public SeasonSummary Season { get; set; }

        public bool UserDefinedIndicator { get; set; }

        public int? Id { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class GiftCertificate
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 16)]
        public string Number { get; set; }

        [Documentation(Required = false)]
        public int? PrintCount { get; set; }

        [Documentation(Required = false)]
        public DateTime? LastPrintDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }

    public partial class GiftCertificates : List<GiftCertificate>
    {
    }

    public partial class GiftCertificateSummary
    {
        [Documentation(Required = false, MaxLength = 30)]
        public string Number { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
    }

    public partial class GiftCertificateSummaries : List<GiftCertificateSummary>
    {
    }
  
    public partial class HoldCode
    {
        [Documentation(Required = true)]
        public bool? BlackoutIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string Legend { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public bool EditIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_HC_CATEGORY", FKColumn = "id", FKResourceName = "HoldCodeCategories", Manual = true)]
        public HoldCodeCategorySummary Type { get; set; }
    }

    public partial class HoldCodes : List<HoldCode>
    {
    }

    public partial class HoldCodeSummary
    {
        [Documentation(Required = true)]
        public bool BlackoutIndicator { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string Legend { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

    }

    public partial class HoldCodeSummaries : List<HoldCodeSummary>
    {
    }
  
    public partial class HoldCodeDetail
    {
        public int Id { get; set; }
        public string Description { get; set; }
        public string Legend { get; set; }
        public bool IsBlackout { get; set; }

    }
 public partial class HoldCodeUserGroup {

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "T_HC", FKColumn = "hc_no", FKResourceName = "HoldCode")]
        public HoldCodeSummary HoldCode { get; set; }

        [Documentation(Required = true, FKTable = "T_METUSERGROUP", FKColumn = "UG_id", FKResourceName = "UserGroup")]
        public UserGroupSummary UserGroup { get; set; }

        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreateLocation { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Non-updatable")]
        public string CreatedBy { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=true, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }
        
        [Documentation(RequiredForPost=false, RequiredForPut=false, NotesForPost="Auto-assigned", NotesForPut="Auto-assigned")]
        public string UpdatedBy { get; set; }
        
       
    }
    
    public partial class HoldCodeUserGroups : List<HoldCodeUserGroup> {
    }

    public partial class HoldCodeUserGroupSummary
    {

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "T_HC", FKColumn = "hc_no", FKResourceName = "HoldCode")]
        public HoldCodeSummary HoldCode { get; set; }

        [Documentation(Required = true, FKTable = "T_METUSERGROUP", FKColumn = "UG_id", FKResourceName = "UserGroup")]
        public UserGroupSummary UserGroup { get; set; }
    }

    public partial class HoldCodeUserGroupSummaries : List<HoldCodeUserGroupSummary>
    {
    }
  
    public partial class HouseMapRectangle
    {
        public int XCoordinate { get; set; }

        public int YCoordinate { get; set; }

        public int Height { get; set; }

        public int Width { get; set; }

        public uint BrushColor { get; set; }

        public uint PenColor { get; set; }

        public uint TextColor { get; set; }

        public int TextXCoordinate { get; set; }

        public int TextYCoordinate { get; set; }

        public string TextText { get; set; }

    }
  
    public partial class HouseMapRectangles : List<HouseMapRectangle>
    {
        
    }
  
    public partial class InvoiceBillingRequest
    {
        public DateTime? InvoiceStartDateTime { get; set; }

        public DateTime? InvoiceEndDateTime { get; set; }

        public int PaymentMethodId { get; set; }

        public int BillingTypeId { get; set; }

        public DateTime? StartDateTime { get; set; }

        public DateTime? EndDateTime { get; set; }

        public DateTime? CutoffDateTime { get; set; }

        public decimal MinAmount { get; set; }

        public bool ShouldUpdate { get; set; }

        public int AppealId { get; set; }

        public string NewSourceDescription { get; set; }

        public int MediaTypeId { get; set; }

        public int MinNumberOfBillsToPrint { get; set; }

        public int MaxNumberOfBillsToPrint { get; set; }

        public int ListId { get; set; }

        public string UserId { get; set; }

        public int BatchTypeId { get; set; }

        public bool ShouldCollectAll { get; set; }

        public DateTime? MailDateTime { get; set; }

        public int? MailTypeId { get; set; }

        public bool IsLabel { get; set; }

        public int? SalutationTypeId { get; set; }

        public int? ElectronicAddressTypeId { get; set; }

        public int? ElectronicAddressPurposeId { get; set; }

        public bool RespectElectronicAddressMarketingFlag { get; set; }

        public int PaymentMethodGroupId { get; set; }

        public int BusinessUnitId { get; set; }
    }
  
    public partial class InvoiceBillingResponses : List<InvoiceBillingResponse>
    {
    }

    public partial class InvoiceBillingResponse
    {
        public int InvoiceBillingId { get; set; }

        public int PaymentId { get; set; }

        public DateTime? InvoiceDateTime { get; set; }

        public int ConstituentId { get; set; }

        public decimal InvoiceAmount { get; set; }

        public decimal InvoicePaid { get; set; }

        public decimal DueAmount { get; set; }

        public decimal CurrentDueAmount { get; set; }

        public decimal PastDueAmount { get; set; }

        public decimal BillAmount { get; set; }

        public string Comment { get; set; }

        public string AccountNumberLastFour { get; set; }

        public string CreditCardReferenceNumber { get; set; }

        public int SourceId { get; set; }

        public string EnvelopeSalutationLine1 { get; set; }

        public string EnvelopeSalutationLine2 { get; set; }

        public string LetterSalutation { get; set; }

        public string BusinessTitle { get; set; }

        public string Street1 { get; set; }

        public string Street2 { get; set; }

        public string City { get; set; }

        public string State { get; set; }

        public string PostalCode { get; set; }

        public string Country { get; set; }

        public string CountryShortName { get; set; }

        public string Phone1 { get; set; }

        public string Phone2 { get; set; }

        public string Fax { get; set; }

        public string Email { get; set; }

        public string Street3 { get; set; }
    }
  
    public partial class KeywordResult
    {
        /// <summary>
        /// The production element or package to which the keywords belong
        /// </summary>
        public Owner RequestedOwner { get; set; }

        /// <summary>
        /// A collection of keyword details for each keyword returned. Details include ID, description, owner (the production element or package to which the keyword is associated), and keyword category.
        /// </summary>
        public KeywordResultKeywords Keywords { get; set; }
    }
  
    public partial class KeywordResultKeyword
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public Owner Owner { get; set; }

        public EntitySummary Category { get; set; }

    }
  
    public partial class KeywordResultKeywords : List<KeywordResultKeyword>
    {

    }
  
    public partial class KeywordResults : List<KeywordResult>
    {
    }
  
    public partial class LineItem
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public LineItemPackage Package { get; set; }

        [Documentation(Required = false)]
        public LineItemPerformance Performance { get; set; }

        [Documentation(Required = false, FKTable = "TX_APPEAL_MEDIA_TYPE", FKColumn = "source_no", FKResourceName = "LineItemSources")]
        public LineItemSource Source { get; set; }

        [Documentation(Required = false)]
        public LineItemPackage SuperPackage { get; set; }

        public decimal? TotalDue { get; set; }

        [Documentation(Required = false)]
        public bool? PrimaryIndicator { get; set; }

        public SubLineItems SubLineItems { get; set; }

        [Documentation(Required = false)]
        public string AltUpgradeIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public int? PrimaryLineItemId { get; set; }

        [Documentation(Required = false)]
        public int? PackageLineItemId { get; set; }

        [Documentation(Required = false)]
        public int? MirrorLock { get; set; }

        [Documentation(Required = true)]
        public int? OrderId { get; set; }

        [Documentation(Required = true)]
        public int? PerformanceGroupId { get; set; }

        [Documentation(Required = false)]
        public short? Priority { get; set; }
    }
  
    public partial class LineItemPackage
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = true)]
        public int TypeId { get; set; }

        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public short SeasonId { get; set; }
    }
  
    public partial class LineItemPerformance
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = true)]
        public int ProductionSeasonId { get; set; }

        [Documentation(Required = true)]
        public short SeasonId { get; set; }
    }
  
    public partial class LineItems : List<LineItem>
    {
    }
  
    public partial class LineItemSource
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "T_APPEAL", FKColumn = "appeal_no", FKResourceName = "Appeals")]
        public int? AppealId { get; set; }
    }
  
    public partial class ModeOfSale
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false, FKTable = "TR_MOS_CATEGORY", FKColumn = "id", FKResourceName = "ModeOfSaleCategories")]
        public ModeOfSaleCategorySummary Category { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public bool? GeneralPublicInd { get; set; }

        [Documentation(Required = false)]
        public bool? SliAutoDeleteInd { get; set; }

        [Documentation(Required = false)]
        public bool? MustBePaidInd { get; set; }

        [Documentation(Required = false)]
        public bool? MustBeSeatedInd { get; set; }

        [Documentation(Required = false)]
        public bool? MustBeTicketedInd { get; set; }

        [Documentation(Required = false)]
        public string HoldUntilMethod { get; set; }

        [Documentation(Required = false)]
        public DateTime? HoldUntilDate { get; set; }

        [Documentation(Required = false)]
        public int? HoldUntilDays { get; set; }

        [Documentation(Required = false, FKTable = "T_DESIGN", FKColumn = "design_no", FKResourceName = "TicketDesigns")]
        public int? DefaultHeaderFormatId { get; set; }

        [Documentation(Required = false)]
        public bool? ClearSourceNoInd { get; set; }

        [Documentation(Required = false)]
        public int? HaboDays { get; set; }

        [Documentation(Required = false)]
        public bool? HaboForeign { get; set; }

        [Documentation(Required = false)]
        public bool? EditDate { get; set; }

        [Documentation(Required = false)]
        public string StartPkgOrPerf { get; set; }

        [Documentation(Required = false)]
        public bool? ClearSourceOnReload { get; set; }

        [Documentation(Required = false)]
        public bool? EditSourceOnReload { get; set; }

        [Documentation(Required = false)]
        public bool? CategoryRequired { get; set; }

        [Documentation(Required = false)]
        public bool? SubsSummaryRequired { get; set; }

        [Documentation(Required = false)]
        public int? DefaultAckFormatId { get; set; }

        [Documentation(Required = false)]
        public int? DefaultDeliveryMethodId { get; set; }

        [Documentation(Required = false)]
        public bool? AllowUnseatedPaidInd { get; set; }

        [Documentation(Required = false)]
        public bool? ConstLinkRequired { get; set; }

        [Documentation(Required = false)]
        public int? DefaultChannelId { get; set; }

        [Documentation(Required = true)]
        public short SampleForGeneralPublic { get; set; }

        [Documentation(Required = true)]
        public short SampleForKnownConstituent { get; set; }

        [Documentation(Required = false, FKTable = "T_SALES_LAYOUT", FKColumn = "id", FKResourceName = "SalesLayouts")]
        public int? DefaultSalesLayoutId { get; set; }

        [Documentation(Required = false, FKTable = "T_PRICING_RULE_SET", FKColumn = "id", FKResourceName = "PricingRuleSets")]
        public int? PricingRuleSetId { get; set; }
    }
  
    public partial class ModeOfSaleCategories : List<ModeOfSaleCategory>
    {
    }
  
    public partial class ModeOfSaleCategory
    {
        [Documentation(Required = true)]
        public String Description { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public String ShortDescription { get; set; }

        [Documentation(Required = false)]
        public int Sequence { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ModeOfSaleCategorySummaries : List<ModeOfSaleCategorySummary>
    {
    }
  
    public partial class ModeOfSaleCategorySummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public string ShortDescription { get; set; }

        public int Sequence { get; set; }

        public bool? Inactive { get; set; }
    }
  
    public partial class ModeOfSaleOffer
    {
        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public int MaxSeats { get; set; }

        [Documentation(Required = true)]
        public bool OverrideDefaultPriceTypeIndicator { get; set; }

        [Documentation(Required = true)]
        public int Rank { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Terms { get; set; }

        [Documentation(Required = false, FKTable = "T_APPEAL", FKColumn = "appeal_no", FKResourceName = "Appeals")]
        public int? AppealId { get; set; }

        [Documentation(Required = true, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModeOfSales")]
        public short ModeOfSaleId { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "LineItemPerformances")]
        public int PerformanceId { get; set; }

        [Documentation(Required = true, FKTable = "T_PKG", FKColumn = "pkg_no", FKResourceName = "LineItemPackages")]
        public int PackageId { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public short PriceTypeId { get; set; }

        [Documentation(Required = false, FKTable = "TX_APPEAL_MEDIA_TYPE", FKColumn = "source_no", FKResourceName = "LineItemSources")]
        public int? SourceId { get; set; }
    }
  
    public partial class ModeOfSaleOffers : List<ModeOfSaleOffer>
    {
    }
  
    public partial class ModeOfSalePriceType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public bool DefaultIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModeOfSales")]
        public ModeOfSaleSummary ModeOfSale { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public PriceTypeSummary PriceType { get; set; }
    }
  
    public partial class ModeOfSalePriceTypes : List<ModeOfSalePriceType>
    {
    }
  
    public partial class ModeOfSaleSummaries : List<ModeOfSaleSummary>
    {
    }
  
    public partial class ModeOfSaleSummary
    {
        public int? Id { get; set; }
        public string Description { get; set; }
        public bool? Inactive { get; set; }
        public ModeOfSaleCategorySummary Category { get; set; }
    }
  
    public partial class ModeOfSaleSurveyQuestion
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModeOfSales")]
        public ModeOfSaleSummary ModeOfSale { get; set; }

        [Documentation(Required = true, FKTable = "TR_SURVEY_QUESTION", FKColumn = "id", FKResourceName = "SurveyQuestions")]
        public SurveyQuestion Question { get; set; }
    }
  
    public partial class ModeOfSaleSurveyQuestions : List<ModeOfSaleSurveyQuestion>
    {
    }
  
    public partial class ModesOfSale : List<ModeOfSale>
    {
    }
  
    public partial class OnAccountResponse
    {
        public decimal Amount { get; set; }
    }
  
    public partial class Order
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int? ConstituentId { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int? InitiatorId { get; set; }

        public string VirtualConstituencies { get; set; }

        public decimal? TotalDue { get; set; }

        public PricingRuleMessageSummaries Messages { get; set; }

        [Documentation(Required = false)]
        public int? CategoryId { get; set; }

        [Documentation(Required = false)]
        public bool? AcceptingRollovers { get; set; }

        [Documentation(Required = false)]
        public int? AccountId { get; set; }

        [Documentation(Required = false)]
        public int? AltAddressId { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string AppliedMessageRules { get; set; }

        [Documentation(Required = false)]
        public int? BatchId { get; set; }

        [Documentation(Required = false)]
        public int? BusinessUnitId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom0 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom1 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom2 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom3 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom4 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom5 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom6 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom7 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom8 { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Custom9 { get; set; }

        [Documentation(Required = false)]
        public int? DeliveryMethodId { get; set; }

        [Documentation(Required = false)]
        public int? AltElectronicAddressId { get; set; }

        [Documentation(Required = false)]
        public DateTime? HoldUntilDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public int? MirrorLock { get; set; }

        [Documentation(Required = false, MaxLength = 255)]
        public string Notes { get; set; }

        [Documentation(Required = false)]
        public DateTime? OrderDateTime { get; set; }

        [Documentation(Required = false, MaxLength = 8)]
        public string Solicitor { get; set; }

        [Documentation(Required = false)]
        public int? SourceId { get; set; }

        [Documentation(Required = false)]
        public int? AppealId { get; set; }

        [Documentation(Required = false, FKTable = "TR_SALES_CHANNEL", FKColumn = "id", FKResourceName = "SalesChannels")]
        public int? ChannelId { get; set; }

        [Documentation(Required = false, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModeOfSales")]
        public int? ModeOfSaleId { get; set; }

        public bool ReloadPricingRules { get; set; }

        public LineItems LineItems { get; set; }
    }
  
    public partial class OrderBillingRequest
    {
        public DateTime? OrderStartDateTime { get; set; }

        public DateTime? OrderEndDateTime { get; set; }

        public string ModesOfSale { get; set; }

        public string Seasons { get; set; }

        public DateTime? PerformanceStartDateTime { get; set; }

        public DateTime? PerformanceEndDateTime { get; set; }

        public int BillingTypeId { get; set; }

        public DateTime? StartDateTime { get; set; }

        public DateTime? EndDateTime { get; set; }

        public DateTime? CutoffDateTime { get; set; }

        public decimal MinAmount { get; set; }

        public bool ShouldUpdate { get; set; }

        public int AppealId { get; set; }

        public string NewSourceDescription { get; set; }

        public int MediaTypeId { get; set; }

        public int MinNumberOfBillsToPrint { get; set; }

        public int MaxNumberOfBillsToPrint { get; set; }

        public int ListId { get; set; }

        public string UserId { get; set; }

        public int BatchTypeId { get; set; }

        public int PaymentMethodGroupId { get; set; }
    }
  
    public partial class OrderBillingResponses : List<OrderBillingResponse>
    {
    }

    public partial class OrderBillingResponse
    {
        public int OrderBillingId { get; set; }

        public int OrderId { get; set; }

        public int ConstituentId { get; set; }

        public decimal CurrentDueAmount { get; set; }

        public decimal PastDueAmount { get; set; }

        public decimal BillAmount { get; set; }

        public string Comment { get; set; }

        public int CampaignId { get; set; }

        public int AppealId { get; set; }

        public int SourceId { get; set; }

        public int MediaTypeId { get; set; }
    }
  
    [Serializable]
    public partial class OrderPricingRuleSummary
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public int RuleAction { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductView
    {
        public int Id { get; set; }

        public int? BatchId { get; set; }

        public string Solicitor { get; set; }

        public DateTime? OrderDateTime { get; set; }

        public decimal? TotalPurchaseAmount { get; set; }

        public decimal? TotalReturnAmount { get; set; }

        public decimal? TotalContributionAmount { get; set; }

        public decimal? TotalContributionPaidAmount { get; set; }

        public decimal? TotalFeeAmount { get; set; }

        public decimal? TotalFeePaidAmount { get; set; }

        public decimal? TotalDueAmount { get; set; }

        public decimal? TotalPaidAmount { get; set; }

        public int? AddressId { get; set; }

        public int? BookingId { get; set; }

        public int? ElectronicAddressId { get; set; }

        public string Custom0 { get; set; }

        public string Custom1 { get; set; }

        public string Custom2 { get; set; }

        public string Custom3 { get; set; }

        public string Custom4 { get; set; }

        public string Custom5 { get; set; }

        public string Custom6 { get; set; }

        public string Custom7 { get; set; }

        public string Custom8 { get; set; }

        public string Custom9 { get; set; }

        public EntitySummary DeliveryMethod { get; set; }

        public EntitySummary BusinessUnit { get; set; }

        public EntitySummary Category { get; set; }

        public ConstituentDisplaySummary Constituent { get; set; }

        public ConstituentDisplaySummary Initiator { get; set; }

        public EntitySummary ModeOfSale { get; set; }

        public EntitySummary Source { get; set; }

        public EntitySummary Appeal { get; set; }

        public OrderProductViewPaymentPlans PaymentPlans { get; set; }

        public OrderProductViewFeeDetails OrderFees { get; set; }

        public OrderProductViewPayments Payments { get; set; }

        public OrderProductViewProducts Products { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewAlternateLineItem
    {
        public int Id { get; set; }

        public int LineItemGroupId { get; set; }

        public int PackageLineItemId { get; set; }

        public int SuperPackageId { get; set; }

        public string AlternateUpgrade { get; set; }

        public bool Primary { get; set; }

        public OrderProductViewPackage Package { get; set; }

        public OrderProductViewPerformance Performance { get; set; }

        public OrderProductViewSubLineItems SubLineItems { get; set; }

        public SpecialRequest SpecialRequest { get; set; }

        public decimal TotalDue { get; set; }

        public decimal DueAmount { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewAlternateLineItems : List<OrderProductViewAlternateLineItem>
    {
    }
  
    [Serializable]
    public partial class OrderProductViewContribution
    {
        public int Id { get; set; }

        public decimal Amount { get; set; }

        public EntitySummary Fund { get; set; }

        public CustomDataItems CustomDataItems { get; set; }

    }
  
    [Serializable]
    public partial class OrderProductViewFeeDetail
    {
        public int Id { get; set; }

        public int LineItemId { get; set; }

        public int SubLineItemId { get; set; }

        public OrderProductViewFeeSummary FeeSummary { get; set; }

        public decimal Amount { get; set; }

        public string OverrideIndicator { get; set; }

        public decimal OverrideAmount { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewFeeDetails : List<OrderProductViewFeeDetail>
    {
    }
  
    [Serializable]
    public partial class OrderProductViewFeeSummary
    {
        public int FeeId { get; set; }

        public string Description { get; set; }

        public EntitySummary Category { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewGiftCertificate
    {
        public int PaymentId { get; set; }

        public string GiftCertificateNumber { get; set; }

        public decimal Amount { get; set; }

        public string Notes { get; set; }

        public string Name { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewLineItem
    {
        public OrderProductViewAlternateLineItems AlternateLineItems { get; set; }

        public int Id { get; set; }

        public int LineItemGroupId { get; set; }

        public int PackageLineItemId { get; set; }

        public int SuperPackageId { get; set; }

        public string AlternateUpgrade { get; set; }

        public bool Primary { get; set; }

        public EntitySummary Source { get; set; }

        public OrderProductViewPackage Package { get; set; }

        public OrderProductViewPerformance Performance { get; set; }

        public OrderProductViewSubLineItems SubLineItems { get; set; }

        public SpecialRequest SpecialRequest { get; set; }

        public decimal TotalDue { get; set; }

        public decimal DueAmount { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewLineItems : List<OrderProductViewLineItem>
    {
    }
  
    [Serializable]
    public partial class OrderProductViewMembership
    {
        public int Id { get; set; }

        public decimal Amount { get; set; }

        public EntitySummary Fund { get; set; }

        public EntitySummary MembershipOrganization { get; set; }

        public EntitySummary MembershipLevel { get; set; }

        public CustomDataItems CustomDataItems { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewPackage
    {
        public int Id { get; set; }

        public string Code { get; set; }

        public string Description { get; set; }

        public EntitySummary Season { get; set; }

        public EntitySummary Type { get; set; }

        public bool FixedPackage { get; set; }

        public bool NFSPackage { get; set; }

        public bool SuperPackage { get; set; }

        public bool SubPackage { get; set; }

        public DateTime Date { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewPayment
    {
        public int Id { get; set; }

        public decimal Amount { get; set; }

        public decimal TenderedAmount { get; set; }

        public OrderProductViewPaymentMethod PaymentMethod { get; set; }

        public string LastFourCreditCardNumber { get; set; }

        public string PayerName { get; set; }
        
        public string CheckNumber { get; set; }

        public string GiftCertificateNumber { get; set; }

        public string Notes { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewPaymentMethod
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public EntitySummary AccountType { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewPaymentPlan
    {
        public int Id { get; set; }

        public decimal AmountDue { get; set; }

        public DateTime? DateDue { get; set; }

        public EntitySummary BillingType { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewPaymentPlans : List<OrderProductViewPaymentPlan>
    {
    }
  
    [Serializable]
    public partial class OrderProductViewPayments : List<OrderProductViewPayment>
    {
    }
  
    [Serializable]
    public partial class OrderProductViewPerformance
    {
        public int Id { get; set; }

        public string Code { get; set; }

        public string Description { get; set; }

        public EntitySummary Facility { get; set; }

        public DateTime PerformanceDateTime { get; set; }

        public int? Duration { get; set; }

        public EntitySummary ProductionSeason { get; set; }

        public EntitySummary Season { get; set; }

        public EntitySummary TimeSlot { get; set; }

        public EntitySummary Type { get; set; }

        public OrderProductViewZoneMap ZoneMap { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewPriceType
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public string ShortDescription { get; set; }

        public EntitySummary Category { get; set; }

        public EntitySummary PriceTypeReason { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewProduct
    {
        /// <summary>
        /// One of:
        /// 1 = PerformanceId
        /// 2 = PackageId
        /// 3 = Contribution
        /// 4 = Membership
        /// 5 = Gift Certificate
        /// 6 = User Defined Fee
        /// </summary>
        public EntitySummary ProductType { get; set; }

        public OrderProductViewProductPerformance Performance { get; set; }

        public OrderProductViewProductPackage Package { get; set; }

        public OrderProductViewContribution Contribution { get; set; }

        public OrderProductViewMembership Membership { get; set; }

        public OrderProductViewGiftCertificate GiftCertificate { get; set; }

        public OrderProductViewFeeDetail UserDefinedFee { get; set; }

        public string ProductGrouping { get; set; } 
    }
  
    [Serializable]
    public partial class OrderProductViewProductPackage
    {
        public int Id { get; set; }

        public OrderProductViewLineItems LineItems { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewProductPerformance
    {
        public int Id { get; set; }

        public OrderProductViewLineItem LineItem { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewProducts : List<OrderProductViewProduct>
    {
    }
  
    [Serializable]
    public partial class OrderProductViewSeat
    {
        public int Id { get; set; }

        public string Row { get; set; }

        public string Number { get; set; }

        public OrderProductViewSeatSection Section { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewSeatSection
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public string ShortDescription { get; set; }

        public string PrintDescription { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewSubLineItem
    {
        public int Id { get; set; }

        public OrderProductViewPriceType PriceType { get; set; }

        public OrderProductViewPriceType OriginalPriceType { get; set; }

        public short StatusId { get; set; }

        public OrderProductViewSubLineItemDetails SubLineItemDetails { get; set; }

        public OrderProductViewZone Zone { get; set; }

        public OrderProductViewSeat Seat { get; set; }

        public ConstituentDisplaySummary Recipient { get; set; }

        public decimal DueAmount { get; set; }

        public decimal PaidAmount { get; set; }

        public int? TicketNumber { get; set; }

        public int? CompositeTicketNumber { get; set; }

        public OrderProductViewFeeDetails SubLineItemFees { get; set; }

        public string RuleIndicator { get; set; }

        public OrderPricingRuleSummary PricingRule { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewSubLineItemDetail
    {
        public int Id { get; set; }

        public bool BenevolentIndicator { get; set; }

        public int CampaignId { get; set; }

        public EntitySummary DiscountType { get; set; }

        public decimal DueAmount { get; set; }

        public decimal PaidAmount { get; set; }

        public decimal OriginalPrice { get; set; }

        public int PerformancePriceTypeLayerId { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewSubLineItemDetails : List<OrderProductViewSubLineItemDetail>
    {
    }
  
    [Serializable]
    public partial class OrderProductViewSubLineItems : List<OrderProductViewSubLineItem>
    {
    }
  
    [Serializable]
    public partial class OrderProductViewZone
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public int ZoneGroupId { get; set; }

        public string ShortDescription { get; set; }

        public string Abbreviation { get; set; }

        public int Rank { get; set; }

        public string ZoneTime { get; set; }
    }
  
    [Serializable]
    public partial class OrderProductViewZoneMap
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public EntitySummary SeatMap { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class Owner
    {
        public int ElementId { get; set; }

        public OwnerType Type { get; set; }
    }
  
    public enum OwnerType
    {
        [EnumMember]
        Performance,
        [EnumMember]
        ProductionSeason,
        [EnumMember]
        Production,
        [EnumMember]
        Title,
        [EnumMember]
        Package
    }
  
    public partial class Package
    {
        [Documentation(Required = false)]
        public BestSeatMapSummary BestSeatMap { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false, FKTable = "T_DESIGN", FKColumn = "design_no", FKResourceName = "TicketDesigns")]
        public TicketDesign TicketDesign { get; set; }

        [Documentation(Required = false)]
        public FacilitySummary Facility { get; set; }

        [Documentation(Required = true)]
        public bool FixedSeatIndicator { get; set; }

        [Documentation(Required = true)]
        public bool FlexIndicator { get; set; }

        [Documentation(Required = false)]
        public short? MaximumPerformances { get; set; }

        [Documentation(Required = false)]
        public short? MinimumPerformances { get; set; }

        [Documentation(Required = true, MaxLength = 10)]
        public string Code { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public DateTime? PackageDateTime { get; set; }

        [Documentation(Required = true)]
        public PackageTypeSummary Type { get; set; }

        [Documentation(Required = false)]
        public RankTypeSummary RankType { get; set; }

        [Documentation(Required = true)]
        public bool SubPackageIndicator { get; set; }

        [Documentation(Required = false)]
        public int? SubPackageOrderId { get; set; }

        [Documentation(Required = true)]
        public bool SuperPackageIndicator { get; set; }

        [Documentation(Required = false)]
        public int SuperPackageId { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string Text1 { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string Text2 { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string Text3 { get; set; }

        [Documentation(Required = false, MaxLength = 50)]
        public string Text4 { get; set; }

        [Documentation(Required = false)]
        public ZoneMapSummary ZoneMap { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false, FKTable = "T_CAMPAIGN", FKColumn = "campaign_no", FKResourceName = "Campaigns")]
        public CampaignSummary Campaign { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public SeasonSummary Season { get; set; }

        public bool? EditIndicator { get; set; }
    }
  
    public partial class PackageDetail
    {
        public BestSeatMapSummary BestSeatMap { get; set; }

        public CampaignSummary Campaign { get; set; }

        public string Code { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }

        public string Description { get; set; }

        public FacilitySummary Facility { get; set; }

        public int Id { get; set; }

        public bool IsFixedSeatPackage { get; set; }

        public bool IsFlexSeatPackage { get; set; }

        public bool IsSuperPackage { get; set; }

        public short? MaximumPerformances { get; set; }

        public short? MinimumPerformances { get; set; }

        public DateTime? PackageDateTime { get; set; }

        public PerformanceGroupDetails PerformanceGroupDetails { get; set; }

        public RankTypeSummary RankType { get; set; }

        public SeasonSummary Season { get; set; }

        public SubPackageDetails SubPackages { get; set; }

        public string Text1 { get; set; }

        public string Text2 { get; set; }

        public string Text3 { get; set; }

        public string Text4 { get; set; }

        public TicketDesign TicketDesign { get; set; }

        public PackageTypeSummary Type { get; set; }

        public ZoneMapSummary ZoneMap { get; set; }
    }
  
    public partial class PackagePerformanceGroupDetail
    {
        public int PackageId { get; set; }

        public string PackageDescription { get; set; }

        public short? MinPerformances { get; set; }

        public short? MaxPerformances { get; set; }

        public bool FlexIndicator { get; set; }

        public bool FixedSeatIndicator { get; set; }

        public int GroupId { get; set; }

        public string GroupDescription { get; set; }

        public short? GroupMinPerformances { get; set; }

        public short? GroupMaxPerformances { get; set; }

        public short? GroupRanking { get; set; }

        public int PerformanceId { get; set; }

        public DateTime PerformanceDateTime { get; set; }

        public string PerformanceDescription { get; set; }

        public string PerformanceCode { get; set; }

        public string Facility { get; set; }

        public int ZoneMapId { get; set; }

        public bool DisplayByZone { get; set; }

        public PerformanceZoneAvailabilities Zones { get; set; }

        public bool AvailableIndicator { get; set; }

        public bool Inactive { get; set; }

        public string SalesNotes { get; set; }

        public bool SalesNotesReadIndicator { get; set; }
    }
  
    public partial class PackagePerformanceGroupDetails : List<PackagePerformanceGroupDetail>
    {
    }
  
    public partial class PackagePriceType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "T_PKG", FKColumn = "pkg_no", FKResourceName = "LineItemPackages")]
        public int PackageId { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public int PriceTypeId { get; set; }
    }
  
    public partial class PackagePriceTypes : List<PackagePriceType>
    {
    }
  
    public partial class Packages : List<Package>
    {
    }
  
    public partial class PackageSearchRequest
    {
        /// <summary>
        /// A comma seperated list of artist Ids.  Only packages with at least one performance with a credit for the passed artists will be returned.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_ARTIST", FKColumn = "art_no", FKResourceName = "Artists")]
        public string ArtistIds { get; set; }

        /// <summary>
        /// Only packages assigned to this business unit (which is based on season) will be included in the result set.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int? BusinessUnitId { get; set; }

        /// <summary>
        /// If passed, is used to calculate a 'weight' for each production season, based on production keywords and constituent interests.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int? ConstituentId { get; set; }

        /// <summary>
        /// A comma seperated list of facility IDs. Only fixed seat packages in the passed facilities will be returned.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_FACILITY", FKColumn = "facil_no", FKResourceName = "Facilities")]
        public string PackageFacilityIds { get; set; }

        /// <summary>
        /// A comma seperated list of facility IDs. Only packages with at least one performance in the passed facilities will be returned.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_FACILITY", FKColumn = "facil_no", FKResourceName = "Facilities")]
        public string PerformanceFacilityIds { get; set; }

        /// <summary>
        /// Full Text search criteria, using the FreetextTable syntax.
        /// </summary>
        public string FullTextSearch { get; set; }

        [Documentation(NotesForPost = "Send 'And' to require performances to have all the keywords specified. Send 'Or' to require the performances to have only one of the keywords.")]
        public string PerformanceKeywordAndOr { get; set; }

        /// <summary>
        /// A comma seperated list of keyword Ids. Only packages with at least one performance with a passed keyword will be returned.
        /// The PerformanceKeywordAndOr parameter controls if all keywords or only one must be present.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_TKW", FKColumn = "id", FKResourceName = "ProductKeywords")]
        public string PerformanceKeywordIds { get; set; }

        [Documentation(NotesForPost = "Send 'And' to require packages to have all the keywords specified. Send 'Or' to require the packagesto have only one of the keywords.")]
        public string PackageKeywordAndOr { get; set; }

        /// <summary>
        /// A comma seperated list of keyword Ids. Only packages with a passed keyword will be returned.
        /// The PackageKeywordAndOr parameter controls if all keywords or only one must be present.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_TKW", FKColumn = "id", FKResourceName = "ProductKeywords")]
        public string PackageKeywordIds { get; set; }

        [Documentation(NotesForPost = "If True, packages are returned if all their performances match the Perf Start date, Perf End date, Perf Keyword, FullText and Artist filters.  If False, packages are returned if any of their performances match these criteria.")]
        public bool? MatchAllPerformances { get; set; }

        /// <summary>
        /// Only packages with this mode of sale will be included in the result set.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModesOfSale")]
        public int? ModeOfSaleId { get; set; }

        /// <summary>
        /// Searches for packages on or before the passed date.
        /// </summary>
        public DateTime? PackageEndDate { get; set; }

        /// <summary>
        /// Searches for packages on or after the passed date. 
        /// </summary>
        public DateTime? PackageStartDate { get; set; }

        /// <summary>
        /// Only packages fo the specified type will be returned.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_PACKAGE_TYPE", FKColumn = "id", FKResourceName = "PackageTypes")]
        public string PackageTypeIds { get; set; }

        /// <summary>
        /// Searches for packages with performances on or before the passed date.
        /// </summary>
        public DateTime? PerformanceEndDate { get; set; }

        /// <summary>
        /// Searches for packages with performances on or after the passed date. 
        /// </summary>
        public DateTime? PerformanceStartDate { get; set; }

        /// <summary>
        /// A comma-delimited list of season IDs.  Only production seasons in one of the passed seasons will be returned.  
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public string SeasonIds { get; set; }
    }
  
    public partial class PackageSearchResponse
    {
        public int PackageId { get; set; }

        public string PackageCode { get; set; }

        public string PackageDescription { get; set; }

        public string PackageTypeDescription { get; set; }

        public DateTime? PackageDateTime { get; set; }

        public string FacilityDescription { get; set; }

        public DateTime? FirstPerformanceDateTime { get; set; }

        public DateTime? LastPerformanceDateTime { get; set; }

        public bool FixedSeatIndicator { get; set; }

        public bool FlexIndicator { get; set; }

        public int MinimumPerformances { get; set; }

        public int MaximumPerformances { get; set; }

        public string RankTypeDescription { get; set; }

        public SeasonSummary Season { get; set; }

        public bool SuperPackageIndicator { get; set; }

        public string Text1 { get; set; }

        public string Text2 { get; set; }

        public string Text3 { get; set; }

        public string Text4 { get; set; }

        public int? ConstituentInterestWeight { get; set; }

        public string ZoneMapDescription { get; set; }

        public string ModeOfSaleDescription { get; set; }

        public DateTime? ModeOfSaleStartDate { get; set; }

        public DateTime? ModeOfSaleEndDate { get; set; }
    }
  
    public partial class PackageSearchResponses : List<PackageSearchResponse>
    {
    }
  
    public partial class PackageSummaries : List<PackageSummary>
    {
    }
  
    public partial class PackageSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public ZoneMapSummary ZoneMap { get; set; }

        public PackageTypeSummary Type { get; set; }

        public string Code { get; set; }

        public SeasonSummary Season { get; set; }
    }
  
   
    public partial class Payment
    {
        public int Id { get; set; }

        public int TransactionId { get; set; }

        public Entity Constituent { get; set; }

        public DateTime? PaymentDateTime { get; set; }

        public decimal PaymentAmount { get; set; }

        public PaymentMethod PaymentMethod { get; set; }

        public string AccountNumber { get; set; }

        public string CheckNumber { get; set; }

        public string CheckName { get; set; }

        public GiftCertificateSummary GiftCertificate { get; set; }

        public DateTime? CardExpiryDateTime { get; set; }

        public string AuthorizationIndicator { get; set; }

        public string AuthorizationNumber { get; set; }

        public int BatchId { get; set; }

        public DateTime? RefundDateTime { get; set; }

        public string CCReferenceNumber { get; set; }

        public string CCIssueNumber { get; set; }

        public string CCStartDateTime { get; set; }

        public decimal TenderedAmount { get; set; }

        public string Notes { get; set; }

        public int? PaymentSignatureId { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreatedBy { get; set; }

        public bool IsMirrorRecord { get; set; }
    }
  
    public partial class PaymentAvailableForRefund
    {
        public string AccountLastFour { get; set; }

        public string ProcessorReferenceId { get; set; }

        public int PaymentMethod { get; set; }

        public int Id { get; set; }

        public decimal AvailableForRefundAmount { get; set; }

        public DateTime? PaymentDateTime { get; set; }

        public int OrderIdOrContributionId { get; set; }

        public bool IsLockedInControlledBatch { get; set; }

        public decimal PaymentAmount { get; set; }

        public string PaymentMethodDescription { get; set; }

        public string MerchantId { get; set; }
    }
  
    public partial class PaymentMethod
    {
        [Documentation(Required = false, FKTable = "TR_ACCOUNT_TYPE", FKColumn = "id", FKResourceName = "AccountTypes")]
        public AccountTypeSummary AccountType { get; set; }

        [Documentation(Required = true)]
        public bool AuthIndicator { get; set; }

        [Documentation(Required = true, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int BusinessUnitId { get; set; }

        [Documentation(Required = true)]
        public bool RequireCheckIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, FKTable = "TR_CURRENCY_TYPE", FKColumn = "id", FKResourceName = "")]
        public int? CurrencyTypeId { get; set; }

        [Documentation(Required = true)]
        public bool DefaultIndicator { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool GiftAidIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = true)]
        public bool Income { get; set; }

        [Documentation(Required = true)]
        public bool CanRefund { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public int? NoCopiesOnAuth { get; set; }

        [Documentation(Required = false)]
        public int? NoCopiesOnSave { get; set; }

        [Documentation(Required = true, FKTable = "TR_PMT_METHOD_GROUP", FKColumn = "id", FKResourceName = "PaymentMethodGroups")]
        public PaymentMethodGroupSummary PaymentMethodGroup { get; set; }

        [Documentation(Required = true, FKTable = "TR_PAYMENT_TYPE", FKColumn = "id", FKResourceName = "PaymentTypes")]
        public PaymentTypeSummary PaymentType { get; set; }

        [Documentation(Required = false, FKTable = "T_DESIGN", FKColumn = "design_no", FKResourceName = "TicketDesigns")]
        public int? ReceiptFormatId { get; set; }

        [Documentation(Required = true)]
        public string RequirePostalCode { get; set; }

        [Documentation(Required = true, MaxLength = 10)]
        public string ShortDesc { get; set; }

        [Documentation(Required = true)]
        public bool StoreTenderedAmount { get; set; }

        [Documentation(Required = true)]
        public bool OpenCashDrawer { get; set; }

        [Documentation(Required = true)]
        public bool RequireCvv { get; set; }

        [Documentation(Required = true)]
        public bool UseWithCardReader { get; set; }

        [Documentation(Required = false, MaxLength = 30, FKTable = "T_GL_ACCOUNT", FKColumn = "gl_account_no", FKResourceName = "GlAccounts")]
        public string GlAccountId { get; set; }

        [Documentation(Required = false)]
        public string MerchantId { get; set; }

        [Documentation(Required = false)]
        public string MerchantIdForSwipe { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PaymentMethods : List<PaymentMethod>
    {
    }
  
    public partial class PaymentMethodSummaries : List<PaymentMethod>
    {
    }
  
    public partial class PaymentMethodSummary
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public bool Inactive { get; set; }

        public EntitySummary PaymentType { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PaymentMethodUserGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool IncomeIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public decimal MaxRefund { get; set; }

        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public PaymentMethodSummary PaymentMethod { get; set; }

        [Documentation(Required = true, FKTable = "T_METUSERGROUP", FKColumn = "UG_id", FKResourceName = "Metusergroups")]
        public UserGroupSummary UserGroup { get; set; }
    }

    public partial class PaymentMethodUserGroups : List<PaymentMethodUserGroup>
    {
    }
  
    public partial class PaymentReserveIdRequest
    {
        public int Increment { get; set; }
    }

    public partial class PaymentReserveIdResponse
    {
        public int PaymentId { get; set; }
    }
  
    public partial class Payments : List<Payment>
    {
    }
  
    public partial class PaymentsAvailableForRefund : List<PaymentAvailableForRefund>
    {
    }
  
    public partial class PaymentSignature
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public int PaymentId { get; set; }

        [Documentation(Required = true)]
        public byte[] Signature { get; set; }
    }
  
    public partial class PaymentSignatures : List<PaymentSignature>
    {
    }
  
    public partial class Performance
    {
        /// <summary>
        /// The status of the On Sale box for the performance
        /// </summary>
        [Documentation(Required = false)]
        public bool? AvailSaleIndicator { get; set; }

        /// <summary>
        /// Best Seat Map summary: ID and Description
        /// </summary>
        [Documentation(Required = true)]
        public BestSeatMapSummary BestSeatMap { get; set; }

        [Documentation(Required = false)]
        public decimal? BudgetAmount { get; set; }

        /// <summary>
        /// The default end date and time for price types and modes of sale when added to the performance in the application
        /// </summary>
        [Documentation(Required = false)]
        public DateTime? DefaultEndSaleDateTime { get; set; }

        /// <summary>
        /// The default start date and time for price types and modes of sale when added to the performance in the application
        /// </summary>
        [Documentation(Required = false)]
        public DateTime? DefaultStartSaleDateTime { get; set; }

        [Documentation(Required = false)]
        public DateTime? DoorsClose { get; set; }

        [Documentation(Required = false)]
        public DateTime? DoorsOpen { get; set; }

        [Documentation(Required = false, Description = "Duration of event in minutes.")]
        public int? Duration { get; set; }

        /// <summary>
        /// Facility summary: ID and Description (plus the SeatMap Summary which contains data not generally used)
        /// </summary>
        [Documentation(Required = true)]
        public FacilitySummary Facility { get; set; }

        [Documentation(Required = true, MaxLength = 10)]
        public string Code { get; set; }

        [Documentation(Required = true)]
        public DateTime? Date { get; set; }

        /// <summary>
        /// Performance ID 
        /// </summary>
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        /// <summary>
        /// Peformance Status summary: ID and Description
        /// </summary>
        [Documentation(Required = true)]
        public PerformanceStatusSummary Status { get; set; }

        [Documentation(Required = true)]
        public PerformanceTypeSummary Type { get; set; }

        /// <summary>
        /// Production Season summary: ID and Description, parent Production ID and Description, and Season summary
        /// </summary>
        [Documentation(Required = true)]
        public ProductionSeasonSummary ProductionSeason { get; set; }

        [Documentation(Required = false)]
        public DateTime? PublishClientEndDate { get; set; }

        [Documentation(Required = false)]
        public DateTime? PublishClientStartDate { get; set; }

        [Documentation(Required = false)]
        public DateTime? PublishWebApiEndDate { get; set; }

        [Documentation(Required = false)]
        public DateTime? PublishWebApiStartDate { get; set; }

        /// <summary>
        /// Rank Type summary: ID, Description, and Inactive flag.
        /// </summary>
        [Documentation(Required = false)]
        public RankTypeSummary RankType { get; set; }

        [Documentation(Required = false, MaxLength = 1024)]
        public string SalesNotes { get; set; }

        [Documentation(Required = true)]
        public bool SalesNotesRequired { get; set; }

        /// <summary>
        /// Season summary: ID, Description, FYear, and Inactive Flag
        /// </summary>
        [Documentation(Required = true)]
        public SeasonSummary Season { get; set; }

        /// <summary>
        /// Time Slot summary: ID, Description, and Inactive Flag
        /// </summary>
        [Documentation(Required = false)]
        public TimeSlotSummary TimeSlot { get; set; }

        [Documentation(Required = false)]
        public bool? TvIndicator { get; set; }

        /// <summary>
        /// Price Zone Map summary: ID, Description, and Inactive Flag (plus the SeatMap Summary which contains data not generally used)
        /// </summary>
        [Documentation(Required = true)]
        public ZoneMapSummary ZoneMap { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        /// <summary>
        /// Indicates if the authenticated user group has edit rights to the performance, based on the control group of the season to which the performance belongs
        /// </summary>
        public bool? EditIndicator { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public string ShortName { get; set; }

        /// <summary>
        /// Ticket Text Line 1
        /// </summary>
        [Documentation(Required = true)]
        public string Text1 { get; set; }

        /// <summary>
        /// Ticket Text Line 2
        /// </summary>
        [Documentation(Required = true)]
        public string Text2 { get; set; }

        /// <summary>
        /// Ticket Text Line 3
        /// </summary>
        [Documentation(Required = true)]
        public string Text3 { get; set; }

        /// <summary>
        /// Ticket Text Line 4
        /// </summary>
        [Documentation(Required = true)]
        public string Text4 { get; set; }
    }
  
    public partial class PerformanceCopyRequest
    {
        public bool AvailSaleIndicator { get; set; }

        public string Code { get; set; }

        public bool CopyCredits { get; set; }

        public bool CopyNotes { get; set; }

        public bool CopyOffers { get; set; }

        public bool CopyPriceLayers { get; set; }

        public bool CopyPriceEvents { get; set; }

        public DateTime? DateTime { get; set; }

        public DateOption DefaultSaleDateOption { get; set; }

        public string Description { get; set; }

        public DateOption ModeOfSaleDateOption { get; set; }

        public DateOption PriceTypeDateOption { get; set; }

        public PriceEventDateOption PriceEventDateOption { get; set; }

        public DateOption PublishDateOption { get; set; }

        public int SourcePerformanceId { get; set; }

        public int StatusId { get; set; }

        public int TypeId { get; set; }

        public int ProductionSeasonId { get; set; }

        public string ShortName { get; set; }

        public int TimeSlotId { get; set; }
    }
  
    public partial class PerformanceDetail
    {
        public bool? AvailReturnIndicator { get; set; }

        public bool? AvailSaleIndicator { get; set; }

        public BestSeatMapSummary BestSeatMap { get; set; }

        public decimal? BudgetAmount { get; set; }

        public DateTime? DefaultEndSaleDateTime { get; set; }

        public DateTime? DefaultStartSaleDateTime { get; set; }

        public DateTime? DoorsClose { get; set; }

        public DateTime? DoorsOpen { get; set; }

        public FacilitySummary Facility { get; set; }

        public string Code { get; set; }

        public DateTime? Date { get; set; }

        public int? Id { get; set; }

        public PerformanceStatusSummary Status { get; set; }

        public PerformanceTypeSummary Type { get; set; }

        public ProductionSeasonSummary ProductionSeason { get; set; }

        public DateTime? PublishClientEndDate { get; set; }

        public DateTime? PublishClientStartDate { get; set; }

        public DateTime? PublishWebApiEndDate { get; set; }

        public DateTime? PublishWebApiStartDate { get; set; }

        public RankTypeSummary RankType { get; set; }

        public string SalesNotes { get; set; }

        public bool SalesNotesRequired { get; set; }

        public SeasonSummary Season { get; set; }

        public TimeSlotSummary TimeSlot { get; set; }

        public bool? TvIndicator { get; set; }

        public ZoneMapSummary ZoneMap { get; set; }

        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public bool? EditIndicator { get; set; }

        public Prices Prices { get; set; }
    }
  
    public partial class PerformanceGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool DisplayByZone { get; set; }

        [Documentation(Required = false)]
        public FacilitySummary Facility { get; set; }

        [Documentation(Required = true)]
        public bool FixedSeatIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public SeasonSummary Season { get; set; }

        [Documentation(Required = false)]
        public ZoneMapSummary ZoneMap { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PerformanceGroupDetail
    {
        public string Description { get; set; }

        public int Id { get; set; }

        public short? MaximumPerformances { get; set; }

        public short? MinimumPerformances { get; set; }

        public PerformanceGroupPerformanceDetails PerformanceGroupPerformanceDetails { get; set; }

        public short? Rank { get; set; }
    }
  
    public partial class PerformanceGroupDetails : List<PerformanceGroupDetail>
    {
    }
  
    public partial class PerformanceGroupMap
    {
        public PerformanceSummary Performance { get; set; }

        public PerformanceGroupSummary PerformanceGroup { get; set; }
    }
  
    public partial class PerformanceGroupMaps : List<PerformanceGroupMap>
    {
    }
  
    public partial class PerformanceGroupPackageMap
    {
        public short? MaxPerformances { get; set; }

        public short? MinPerformances { get; set; }

        public int? Id { get; set; }

        public PackageSummary Package { get; set; }
    }
  
    public partial class PerformanceGroupPackageMaps : List<PerformanceGroupPackageMap>
    {
    }
  
    public partial class PerformanceGroupPerformanceDetail
    {
        public bool AvailableIndicator { get; set; }

        public bool DisplayByZone { get; set; }

        public string Facility { get; set; }

        public bool Inactive { get; set; }

        public DateTime PerformanceDateTime { get; set; }

        public string PerformanceDescription { get; set; }

        public string PerformanceCode { get; set; }

        public int PerformanceId { get; set; }

        public string SalesNotes { get; set; }

        public int ZoneMapId { get; set; }

        public PerformanceZoneAvailabilities Zones { get; set; }
    }
  
    public partial class PerformanceGroupPerformanceDetails : List<PerformanceGroupPerformanceDetail>
    {
    }
  
    public partial class PerformanceGroups : List<PerformanceGroup>
    {
    }
  
    public partial class PerformanceGroupSummaries : List<PerformanceGroupSummary>
    {
    }
  
    public partial class PerformanceGroupSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }
    }
  
    public partial class PerformancePackageModeOfSale
    {
        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public bool PrintIndicator { get; set; }

        [Documentation(Required = false)]
        public bool SeatIndicator { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = true, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModeOfSales")]
        public int ModeOfSaleId { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "LineItemPerformances")]
        public int PerformanceId { get; set; }

        [Documentation(Required = true, FKTable = "T_PKG", FKColumn = "pkg_no", FKResourceName = "LineItemPackages")]
        public int PackageId { get; set; }
    }
  
    public partial class PerformancePackageModeOfSales : List<PerformancePackageModeOfSale>
    {
    }
  
    public partial class PerformancePrice
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public DateTime? EffectiveDateTime { get; set; }

        [Documentation(Required = true)]
        public bool EditIndicator { get; set; }

        [Documentation(Required = true)]
        public decimal MinPrice { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "LineItemPerformances")]
        public int? PerformanceId { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF_PRICE_TYPE", FKColumn = "id", FKResourceName = "PerformancePriceTypes")]
        public int? PerformancePriceTypeId { get; set; }

        [Documentation(Required = true)]
        public decimal Price { get; set; }

        [Documentation(Required = true)]
        public bool Enabled { get; set; }

        public bool HasEvents { get; set; }

        public bool IsPriceBasedOnCurrentEvent { get; set; }

        [Documentation(Required = true)]
        public int? ZoneId { get; set; }
    }
  
    public partial class PerformancePriceAuditEntries : List<PerformancePriceAuditEntry>
    {
    }
  
    public partial class PerformancePriceAuditEntry
    {
        public string PerformanceCode { get; set; }

        public string PriceLayerTypeDescription { get; set; }

        public string PriceTypeDescription { get; set; }

        public string ZoneDescription { get; set; }

        public DateTime EventDateTime { get; set; }

        public string User { get; set; }

        public DateTime Date { get; set; }

        public string Location { get; set; }

        public string Action { get; set; }

        public DateTime StartDateTime { get; set; }

        public DateTime EndDateTime { get; set; }

        public decimal Price { get; set; }

        public decimal MinPrice { get; set; }

        public bool Enabled { get; set; }

        public bool EditIndicator { get; set; }

        public int PerformanceId { get; set; }

        public int PriceLayerId { get; set; }

        public int PerformancePriceTypeId { get; set; }

        public int PriceTypeId { get; set; }

        public int ZoneId { get; set; }
    }
  
    public partial class PerformancePriceCount
    {
        public int Count { get; set; }
    }
  
    public partial class PerformancePriceDetail
    {
        public int? Id { get; set; }

        public DateTime? EffectiveDateTime { get; set; }

        public bool EditIndicator { get; set; }

        public decimal MinPrice { get; set; }

        public int? PerformancePriceType { get; set; }

        public decimal Price { get; set; }

        public bool Enabled { get; set; }

        public bool HasEvents { get; set; }

        public bool IsPriceBasedOnCurrentEvent { get; set; }

        public int? Zone { get; set; }

        public PriceEvents PriceEvents { get; set; }
    }
  
    public partial class PerformancePriceDetails : List<PerformancePriceDetail>
    {
    }
  
    public partial class PerformancePriceLayer
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 60)]
        public string Description { get; set; }

        public DateTime? EffectiveDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_DESIG_CODE", FKColumn = "id", FKResourceName = "DesignationCodes")]
        public int? DefaultDesignationCodeId { get; set; }

        [Documentation(Required = true, FKTable = "T_GL_ACCOUNT", FKColumn = "id", FKResourceName = "GlAccounts")]
        public int? DefaultGlAccountId { get; set; }

        [Documentation(Required = true, FKTable = "T_GL_ACCOUNT", FKColumn = "id", FKResourceName = "GlAccounts")]
        public int? DefaultResaleAccountId { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "LineItemPerformances")]
        public int? PerformanceId { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_LAYER_TYPE", FKColumn = "id", FKResourceName = "PriceLayerTypes")]
        public PriceLayerTypeSummary PriceLayerType { get; set; }

        [Documentation(Required = false, FKTable = "T_PRICE_TEMPLATE", FKColumn = "id", FKResourceName = "PriceTemplates")]
        public int? TemplateId { get; set; }

        public PerformancePriceTypes PerformancePriceTypes { get; set; }
    }
  
    public partial class PerformancePriceLayerCount
    {
        public int PerformanceId { get; set; }

        public int LayerCount { get; set; }
    }
  
    public partial class PerformancePriceLayerCounts : List<PerformancePriceLayerCount>
    {
    }
  
    public partial class PerformancePriceLayers : List<PerformancePriceLayer>
    {
    }
  
    public partial class PerformancePriceLayerSearchRequest
    {
        [Documentation(NotesForPost = "Comma separated list of performance Ids", Required = true)]
        public string PerformanceIds { get; set; }

        [Documentation(NotesForPost = "The calendar date time of the performance")]
        public string AsOfDateTime { get; set; }

        [Documentation(NotesForPost = "Relative to the performance date.  The format for AsOfRelativeDate is YY:MM:DD:HH:MM. A - or + should be included before the relative date to indicate before or after performance date.")]
        public string AsOfRelativeDate { get; set; }
    }
  
    public partial class PerformancePriceLayerSummaries : List<PerformancePriceLayerSummary>
    {
    }
  
    public partial class PerformancePriceLayerSummary
    {
        private PriceLayerTypeSummary layerType;

        public string Description { get; set; }

        public DateTime? EffectiveDateTime { get; set; }

        public int? Id { get; set; }

        public int? DefaultDesignationCodeId { get; set; }

        public int? DefaultGlAccountId { get; set; }

        public int? DefaultResaleAccountId { get; set; }

        public int? PerformanceId { get; set; }

        public short PriceLayerTypeId { get; set; }

        public int? TemplateId { get; set; }

        public PerformancePriceTypeSummaries PerformancePriceTypes { get; set; }

        public PriceLayerTypeSummary LayerType
        {
            get { return layerType; }
            set
            {
                layerType = value;
                if (layerType != null && layerType.Id != null)
                {
                    PriceLayerTypeId = (short) layerType.Id;
                }
            }
        }
    }
  
    public partial class PerformancePriceLayerUpdateRequest
    {
        public byte[] Layers { get; set; }
    }
  
    public partial class PerformancePriceResponse
    {
        public PerformancePriceLayerSummaries PerformancePriceLayers { get; set; }

        public PriceLayerTypeSummaries LayerTypes { get; set; }

        public void Update()
        {
            if (PerformancePriceLayers == null)
            {
                PerformancePriceLayers = new PerformancePriceLayerSummaries();
            }

            if (LayerTypes == null)
            {
                LayerTypes = new PriceLayerTypeSummaries();
            }

            var typesById = LayerTypes.ToDictionary(x => x.Id);

            foreach (var ppl in PerformancePriceLayers)
            {
                if (ppl.PerformancePriceTypes == null)
                {
                    ppl.PerformancePriceTypes = new PerformancePriceTypeSummaries();
                }
                PriceLayerTypeSummary value;
                if (typesById.TryGetValue(ppl.PriceLayerTypeId, out value))
                {
                    ppl.LayerType = value;
                }

                foreach (var ppt in ppl.PerformancePriceTypes)
                {
                    ppt.PerformancePrices = new PerformancePriceSummaries();
                    if (ppt.Prices == null)
                    {
                        ppt.Prices = new PerformancePriceStrings();
                    }

                    foreach (var price in ppt.Prices)
                    {
                        ppt.PerformancePrices.Add(GetPerformancePrice(price));
                    }
                }
            }
        }

        private static PerformancePriceSummary GetPerformancePrice(string price)
        {
            var parts = price.Split('|');
            var performancePriceSummary = new PerformancePriceSummary
            {
                Id = Convert.ToInt32(parts[0]),
                EditIndicator = Convert.ToBoolean(parts[2]),
                PerformanceId = Convert.ToInt32(parts[4]),
                PerformancePriceTypeId = Convert.ToInt32(parts[5]),
                Enabled = Convert.ToBoolean(parts[7]),
                HasEvents = Convert.ToBoolean(parts[8]),
                IsPriceBasedOnCurrentEvent = Convert.ToBoolean(parts[9]),
                ZoneId = Convert.ToInt32(parts[10])
            };
            if (!string.IsNullOrWhiteSpace(parts[1]))
            {
                performancePriceSummary.EffectiveDateTime = DateTime.Parse(parts[1]);
            }
            performancePriceSummary.MinPrice = string.IsNullOrWhiteSpace(parts[3]) ? 0 : Decimal.Parse(parts[3], CultureInfo.InvariantCulture);
            performancePriceSummary.Price = string.IsNullOrWhiteSpace(parts[6]) ? 0 : Decimal.Parse(parts[6], CultureInfo.InvariantCulture);
            return performancePriceSummary;
        }
    }
  
    public partial class PerformancePrices : List<PerformancePrice>
    {
    }
  
    public partial class PerformancePriceStrings : List<string>
    {
    }
  
    public partial class PerformancePriceSummaries : List<PerformancePriceSummary>
    {
    }
  
    public partial class PerformancePriceSummary
    {
        public int? Id { get; set; }

        public DateTime? EffectiveDateTime { get; set; }

        public bool EditIndicator { get; set; }

        public decimal MinPrice { get; set; }

        public int? PerformanceId { get; set; }

        public int? PerformancePriceTypeId { get; set; }

        public decimal Price { get; set; }

        public bool Enabled { get; set; }

        public bool HasEvents { get; set; }

        public bool IsPriceBasedOnCurrentEvent { get; set; }

        public int? ZoneId { get; set; }

        public override string ToString()
        {
            return string.Format(CultureInfo.InvariantCulture, "{0}|{1}|{2}|{3}|{4}|{5}|{6}|{7}|{8}|{9}|{10}", Id, EffectiveDateTime, EditIndicator, MinPrice, PerformanceId, PerformancePriceTypeId, Price,
                Enabled, HasEvents, IsPriceBasedOnCurrentEvent, ZoneId);
        }
    }
  
    public partial class PerformancePriceType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_DESIG_CODE", FKColumn = "id", FKResourceName = "DesignationCodes")]
        public int? DesignationCodeId { get; set; }

        public DateTime? EffectiveDateTime { get; set; }

        [Documentation(Required = true, FKTable = "T_GL_ACCOUNT", FKColumn = "id", FKResourceName = "GlAccounts")]
        public int? ResaleAccountId { get; set; }

        public bool? IsWithinDateRange { get; set; }

        [Documentation(Required = true, FKTable = "T_GL_ACCOUNT", FKColumn = "id", FKResourceName = "GlAccounts")]
        public int? GlAccountId { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "LineItemPerformances")]
        public int? PerformanceId { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF_PRICE_LAYER", FKColumn = "id", FKResourceName = "PerformancePriceLayers")]
        public int? PerformancePriceLayerId { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public int? PriceTypeId { get; set; }

        [Documentation(Required = false, FKTable = "T_DESIGN", FKColumn = "design_no", FKResourceName = "TicketDesigns")]
        public int? TicketDesignId { get; set; }

        [Documentation(Required = true)]
        public bool? BaseIndicator { get; set; }

        public PerformancePrices PerformancePrices { get; set; }
    }
  
    public partial class PerformancePriceTypes : List<PerformancePriceType>
    {
    }
  
    public partial class PerformancePriceTypeSummaries : List<PerformancePriceTypeSummary>
    {
    }
  
    public partial class PerformancePriceTypeSummary
    {
        public int? Id { get; set; }

        public int? DesignationCodeId { get; set; }

        public DateTime? EffectiveDateTime { get; set; }

        public int? ResaleAccountId { get; set; }

        public bool? IsWithinDateRange { get; set; }

        public int? GlAccountId { get; set; }

        public DateTime? StartDateTime { get; set; }

        public DateTime? EndDateTime { get; set; }

        public int? PerformanceId { get; set; }

        public int? PerformancePriceLayerId { get; set; }

        public short PriceTypeId { get; set; }

        public int? TicketDesignId { get; set; }

        public bool BaseIndicator { get; set; }

        public PerformancePriceStrings Prices { get; set; }

        public PerformancePriceSummaries PerformancePrices { get; set; }
    }
  
    public partial class PerformancePriceTypeUpdateRequest
    {
        public string PerformanceIds { get; set; }

        public string PriceLayerTypeIds { get; set; }

        public string PriceTypeIds { get; set; }

        public int? DesignationCodeId { get; set; }

        public int? ResaleAccountId { get; set; }

        public int? GlAccountId { get; set; }

        public DateTime? StartDateTime { get; set; }

        public DateTime? EndDateTime { get; set; }

        public int? TicketDesignId { get; set; }

        public bool? BaseIndicator { get; set; }
    }
  
    public partial class PerformancePriceTypeUpdateRequests : List<PerformancePriceTypeUpdateRequest>
    {
    }
  
    public partial class Performances : List<Performance>
    {
    }
  
    public partial class PerformanceSearchRequest
    {
        /// <summary>
        /// A performance date must be on or after this date to be included in the result set.
        /// </summary>
        public DateTime? PerformanceStartDate { get; set; }

        /// <summary>
        /// A performance date must be on or before this date to be included in the result set.
        /// </summary>
        public DateTime? PerformanceEndDate { get; set; }

        /// <summary>
        /// Specifying a Mode of Sale will filter out performances that are not available at all for that MOS.  Also, the start and end dates of the MOS for the performance will be returned when MOS is specified.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModesOfSale")]
        public int? ModeOfSaleId { get; set; }

        /// <summary>
        /// A performance must be assigned to this business unit (which is based on the performance�s season) to be included in the result set.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int? BusinessUnitId { get; set; }

        /// <summary>
        /// A comma separated list of keyword IDs. A performance must have at least one of the keywords to be included.
        /// The KeywordAndOr parameter can be set to require all keywords to be present.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_TKW", FKColumn = "id", FKResourceName = "ProductKeywords")]
        public string KeywordIds { get; set; }

        [Documentation(NotesForPost = "Send �And� to require that all performances have all of the keywords specified.  Send �Or� to require that performances have at least one of the keywords specified.")]
        public string KeywordAndOr { get; set; }

        /// <summary>
        /// A comma separated list of artist Ids. A performance must have at least one of the artists as a credit to be included.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_ARTIST", FKColumn = "art_no", FKResourceName = "Artists")]
        public string ArtistIds { get; set; }

        /// <summary>
        /// A comma separated list of season Ids. A performance must be in one of the seasons to be included.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public string SeasonIds{ get; set; }

        [Documentation(NotesForPost = "If provided, Will be used to calculate the 'Weight' of each performance, based on performance keywords and constituent interests.")]
        public int? ConstituentId { get; set; }

        /// <summary>
        /// A comma separated list of product seasons IDs. A performance must be in one of the production seasons to be included.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_PROD_SEASON", FKColumn = "prod_season_no", FKResourceName = "ProductionSeasons")]
        public string ProductionSeasonIds { get; set; }

        /// <summary>
        /// Full Text search criteria, using the FreetextTable syntax.
        /// </summary>
        public string FullTextSearch { get; set; }

        /// <summary>
        /// A common separated list of facility IDs. A performance must be in one of the facilites to be included.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_FACILITY", FKColumn = "facil_no", FKResourceName = "Facilities")]
        public string FacilityIds { get; set; }

    }
  
    public partial class PerformanceSearchResponse
    {
        public int PerformanceId { get; set; }

        public string PerformanceCode { get; set; }

        public DateTime? PerformanceDate { get; set; }

        public string FacilityDescription { get; set; }

        public string PerformanceDescription { get; set; }

        public string PerformanceShortName { get; set; }

        public EntitySummary ProductionSeason { get; set; }

        public int BusinessUnitId { get; set; }

        public string ZoneMapDescription { get; set; }

        public string AvailSaleIndicator { get; set; }

        public int? ConstituentInterestWeight { get; set; }

        public SeasonSummary Season { get; set; }

        public DateTime? PublishClientStartDate { get; set; }

        public DateTime? PublishClientEndDate { get; set; }

        public DateTime? PublishWebApiStartDate { get; set; }

        public DateTime? PublishWebApiEndDate { get; set; }

        public DateTime? DoorsOpen { get; set; }

        public DateTime? DoorsClose { get; set; }

        public int? Duration { get; set; }

        public string SalesNotes { get; set; }

        public bool SalesNotesRequired { get; set; }

        public string Text1 { get; set; }

        public string Text2 { get; set; }

        public string Text3 { get; set; }

        public string Text4 { get; set; }

        public string RankTypeDescription { get; set; }

        public string PerformanceTypeDescription { get; set; }

        public string PerformanceStatusDescription { get; set; }

        public string TimeSlotDescription { get; set; }

        public string ModeOfSaleDescription { get; set; }

        public DateTime? ModeOfSaleStartDate { get; set; }

        public DateTime? ModeOfSaleEndDate { get; set; }

    }
  
    public partial class PerformanceSearchResponses : List<PerformanceSearchResponse>
    {
        
    }
  
    public partial class PerformanceSummaries : List<PerformanceSummary>
    {
    }
  
    public partial class PerformanceSummary
    {
        /// <summary>
        /// Performance ID
        /// </summary>
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        /// <summary>
        /// The Performance Code
        /// </summary>
        [Documentation(Required = true, MaxLength = 10)]
        public string Code { get; set; }

        /// <summary>
        /// The default end date and time for price types and modes of sale when added to the performance in the application.
        /// </summary>
        [Documentation(Required = false)]
        public DateTime? DefaultEndSaleDateTime { get; set; }

        /// <summary>
        /// The default start date and time for price types and modes of sale when added to the performance in the application.
        /// </summary>
        [Documentation(Required = false)]
        public DateTime? DefaultStartSaleDateTime { get; set; }

        [Documentation(Required = true)]
        public DateTime PerformanceDateTime { get; set; }

        /// <summary>
        /// Production Season Summary
        /// </summary>
        public Entity ProductionSeason { get; set; }

        [Documentation(Required = false)]
        public int? Duration { get; set; }

        /// <summary>
        /// Time slot summary: ID, Description, and Inactive flag.
        /// </summary>
        [Documentation(Required = false)]
        public TimeSlotSummary TimeSlot { get; set; }

        /// <summary>
        /// Price zone map ID
        /// </summary>
        [Documentation(Required = true)]
        public int ZoneMapId { get; set; }

        /// <summary>
        /// Facility ID
        /// </summary>
        [Documentation(Required = true)]
        public int FacilityId { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        /// <summary>
        /// Season summary: ID, Description, FYear, and Inactive flag.
        /// </summary>
        [Documentation(Required = true)]
        public SeasonSummary Season { get; set; }
    }
  
    public partial class PerformanceZoneAvailabilities : List<PerformanceZoneAvailability>
    {
    }
  
    public partial class PerformanceZoneAvailabilitiesWithConstituent : List<PerformanceZoneAvailabilityWithConstituent>
    {
    }
  
    public partial class PerformanceZoneAvailability
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(Required = true)]
        public Zone Zone { get; set; }

        public SectionSummaries SectionSummaries { get; set; }

        [Documentation(Required = true)]
        public int PerformanceId { get; set; }

        [Documentation(Required = true)]
        public int AvailableCount { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class PerformanceZoneAvailabilityWithConstituent
    {
        public int Id { get; set; }

        public int ZoneId { get; set; }

        public int PerformanceId { get; set; }

        /// <summary>
        /// Total Available for the performance zone.
        /// </summary>
        public int AvailableCount { get; set; }

        /// <summary>
        /// Seats available for the specified constituent, in the specified MOS, based on Rank and Allocations.
        /// </summary>
        public int ConstituentAvailableCount { get; set; }
    }
  
    public partial class PledgeBillingRequest
    {
        public int CampaignId { get; set; }

        public string FundIds { get; set; }

        public int BillingTypeId { get; set; }

        public DateTime? StartDateTime { get; set; }

        public DateTime? EndDateTime { get; set; }

        public DateTime? CutoffDateTime { get; set; }

        public decimal MinAmount { get; set; }

        public bool ShouldUpdate { get; set; }

        public int AppealId { get; set; }

        public string NewSourceDescription { get; set; }

        public int MediaTypeId { get; set; }

        public int MinNumberOfBillsToPrint { get; set; }

        public int MaxNumberOfBillsToPrint { get; set; }

        public int ListId { get; set; }

        public DateTime? MailDateTime { get; set; }

        public int MailTypeId { get; set; }

        public bool IsLabel { get; set; }

        public int SalutationTypeId { get; set; }

        public string UserId { get; set; }

        public int BatchTypeId { get; set; }

        public int PaymentMethodGroupId { get; set; }

        public int? AcknowledgementLetterId { get; set; }
    }

  
    public partial class PledgeBillingResponses : List<PledgeBillingResponse>
    {
    }

    public partial class PledgeBillingResponse
    {
        public int ContributionId { get; set; }

        public int ConstituentId { get; set; }

        public decimal PledgeAmount { get; set; }

        public decimal PledgePaymentAmount { get; set; }

        public decimal DueAmount { get; set; }

        public decimal CurrentDueAmount { get; set; }

        public decimal PastDueAmount { get; set; }

        public decimal BillAmount { get; set; }

        public int NumberOfDaysPastDue { get; set; }

        public string AwardIndicator { get; set; }

        public string Appeal { get; set; }

        public string Campaign { get; set; }

        public string BillingType { get; set; }

        public int FundId { get; set; }

        public string FundDescription { get; set; }

        public int SourceId { get; set; }

        public string SourceDescription { get; set; }

        public string Media { get; set; }

        public string Comment { get; set; }

        public string Street1 { get; set; }

        public string Street2 { get; set; }

        public string City { get; set; }

        public string State { get; set; }

        public string PostalCode { get; set; }

        public string Country { get; set; }

        public string Signor { get; set; }

        public string EnvelopeSalutationLine1 { get; set; }

        public string EnvelopeSalutationLine2 { get; set; }

        public string LetterSalutation { get; set; }

        public string Phone1 { get; set; }

        public string Phone2 { get; set; }

        public string Fax { get; set; }

        public string EndDateTime { get; set; }

        public DateTime? ContributionDateTime { get; set; }

        public int PledgeBillingRunId { get; set; }

        public string ContributionDesignationDescription { get; set; }

        public string LetterText { get; set; }

        public string MembershipLevelDescription { get; set; }

        public DateTime? ExpirationDateTime { get; set; }

        public string BusinessTitle { get; set; }

        public string Street3 { get; set; }

        public string SortName { get; set; }

        public int InitiatorId { get; set; }

        public string InitiatorName { get; set; }

        public string InitiatorSortName { get; set; }

        public string InitiatorEnvelopeSalutationLine1 { get; set; }

        public string InitiatorEnvelopeSalutationLine2 { get; set; }

        public string InitiatorLetterSalutation { get; set; }

        public string InitiatorBusinessTitle { get; set; }
    }
  
    public partial class PriceEvent
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public int ChangeId { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "LineItemPerformances")]
        public int? PerformanceId { get; set; }

        [Documentation(Required = true, FKTable = "T_PERF_PRICE", FKColumn = "id", FKResourceName = "PerformancePrices")]
        public int? PerformancePriceId { get; set; }

        [Documentation(Required = true)]
        public decimal Price { get; set; }

        [Documentation(Required = true)]
        public decimal MinPrice { get; set; }

        [Documentation(Required = true)]
        public bool Enabled { get; set; }

        [Documentation(Required = true)]
        public DateTime? StartDateTime { get; set; }
    }
  
    public enum PriceEventDateOption
    {
        ActualDates,
        RelativeDates
    }
  
    public partial class PriceEventDates : List<DateTime>
    {
    }
  
    public partial class PriceEventMoveRequest
    {
        public string EventIds { get; set; }

        public DateTime EventDateTime { get; set; }
    }
  
    public partial class PriceEvents : List<PriceEvent>
    {
    }
  
    public partial class Prices : List<PriceSummary>
    {
    }
  
    public partial class PriceSummary
    {
        public int PerformanceId { get; set; }

        public int PackageId { get; set; }

        public int ZoneId { get; set; }

        public int PriceTypeId { get; set; }

        public decimal Price { get; set; }

        public bool Enabled { get; set; }

        /// <summary>
        /// Will be true if the price type for this price is the Base price for the performance.
        /// </summary>
        public bool IsBase { get; set; }

        public int ParentPackageId { get; set; }

        /// <summary>
        /// The ID of the price type entry in T_PERF_PRICE_TYPE. Only listed when expandPerformancePriceType is set to True.
        /// </summary>
        public int PerformancePriceTypeId { get; set; }

        public decimal MinPrice { get; set; }

        /// <summary>
        /// Will be True for a price triggered by an offer set to override the default price or if no offer was triggered then the default price
        /// </summary>
        public bool IsBest { get; set; }

        /// <summary>
        /// Will be true if the price was unlocked offer triggered by the passed source
        /// </summary>
        public bool Offer { get; set; }

        public int ModeOfSaleOfferId { get; set; }
    }
  
    public partial class PriceTemplate
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_DESIG_CODE", FKColumn = "id", FKResourceName = "DesignationCodes")]
        public DesignationCodeSummary DefaultDesignationCode { get; set; }

        [Documentation(Required = true, FKTable = "T_GL_ACCOUNT", FKColumn = "id", FKResourceName = "GlAccounts")]
        public GlAccountSummary DefaultGlAccount { get; set; }

        [Documentation(Required = true)]
        public PriceLayerTypeSummary DefaultPriceLayerType { get; set; }

        [Documentation(Required = true, FKTable = "T_GL_ACCOUNT", FKColumn = "id", FKResourceName = "GlAccounts")]
        public GlAccountSummary DefaultResaleAccount { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Name { get; set; }

        [Documentation(Required = false, MaxLength = 256)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_CATEGORY", FKColumn = "id", FKResourceName = "PriceCategories")]
        public PriceCategorySummary PriceCategory { get; set; }

        [Documentation(Required = true, FKTable = "T_ZMAP", FKColumn = "zmap_no", FKResourceName = "ZoneMaps")]
        public ZoneMapSummary ZoneMap { get; set; }

        public bool? EditIndicator { get; set; }

        public TemplatePriceTypes TemplatePriceTypes { get; set; }
    }
  
    public partial class PriceTemplates : List<PriceTemplate>
    {
    }
  
    public partial class PriceTemplateSummaries : List<PriceTemplateSummary>
    {
    }
  
    public partial class PriceTemplateSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }

        public string Name { get; set; }

        public bool Inactive { get; set; }

        public ZoneMapSummary ZoneMap { get; set; }

        public PriceCategorySummary PriceCategory { get; set; }
    }
  
    public partial class PriceType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = false)]
        public bool EditableIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public PriceTypeGroupSummary PriceTypeGroup { get; set; }

        public bool? EditIndicator { get; set; }

        [Documentation(Required = false)]
        public bool ReasonIndicator { get; set; }

        [Documentation(Required = false, MaxLength = 10)]
        public string ShortDescription { get; set; }

        [Documentation(Required = false, FKTable = "T_DESIGN", FKColumn = "design_no", FKResourceName = "TicketDesigns")]
        public TicketDesign DefaultTicketDesign { get; set; }

        [Documentation(Required = false, FKTable = "TR_PRICE_TYPE_CATEGORY", FKColumn = "id", FKResourceName = "PriceTypeCategories")]
        public PriceTypeCategorySummary PriceTypeCategory { get; set; }
    }
  
    public partial class PriceTypeDetail
    {
        public int PriceTypeId { get; set; }

        public int PerformanceId { get; set; }

        public int PackageId { get; set; }

        public int SuperPackageId { get; set; }

        public string Description { get; set; }

        public bool ReasonIndicator { get; set; }

        public string ShortDescription { get; set; }

        public bool DefaultIndicator { get; set; }

        public bool IsBest { get; set; }

        public bool Offer { get; set; }

        public int Rank { get; set; }

        public int MaxSeats { get; set; }

        public string Terms { get; set; }

        public ZoneSummaries Zones { get; set; }
    }
  
    public partial class PriceTypeDetails : List<PriceTypeDetail>
    {
    }
  
    public partial class PriceTypeReasonMap
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        public PriceTypeReason PriceTypeReason { get; set; }

        [Documentation(Required = true)]
        public int PriceTypeId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }
    }
  
    public partial class PriceTypeReasonMaps : List<PriceTypeReasonMap>
    {
    }
  
    public partial class PriceTypes : List<PriceType>
    {
    }
  
    public partial class PriceTypeSummaries : List<PriceTypeSummary>
    {
    }
  
    public partial class PriceTypeSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public Entity DefaultTicketDesign { get; set; }

        public bool? Inactive { get; set; }

        public string ShortDescription { get; set; }
    }
  
    public partial class PriceTypeUserGroup
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public EntitySummary PriceType { get; set; }

        [Documentation(Required = true, MaxLength = 8, FKTable = "T_METUSERGROUP", FKColumn = "UG_id", FKResourceName = "")]
        public UserGroupSummary UserGroup { get; set; }
    }
  
    public partial class PriceTypeUserGroups : List<PriceTypeUserGroup>
    {
    }
  
    public partial class PriceUpdateRequest
    {
        public string PerformanceIds { get; set; }

        public DateTime? EffectiveDateTime { get; set; }

        public int PriceLayerTypeId { get; set; }

        public int PriceTypeId { get; set; }

        public int ZoneId { get; set; }

        public decimal Price { get; set; }

        public decimal MinPrice { get; set; }

        public bool Enabled { get; set; }

        public bool Editable { get; set; }
    }
  
    public partial class PriceUpdateRequests : List<PriceUpdateRequest>
    {
    }
  
    public partial class PricingRule
    {
        [Documentation(Required = false, MaxLength = 4000)]
        public string ResultSeasonPackageType { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string Appeals { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string Constituencies { get; set; }

        [Documentation(Required = false, FKTable = "T_KEYWORD", FKColumn = "keyword_no", FKResourceName = "Keywords")]
        public int? ConstituentAttribute { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string ConstituentAttributeValue1 { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string ConstituentAttributeValue2 { get; set; }

        [Documentation(Required = false, FKTable = "T_LIST", FKColumn = "list_no", FKResourceName = "Lists")]
        public int? ConstituentListId { get; set; }

        [Documentation(Required = false, FKTable = "T_LIST", FKColumn = "list_no", FKResourceName = "Lists")]
        public int? ConstituentExclusionListId { get; set; }

        [Documentation(Required = false, FKTable = "TR_RANK_TYPE", FKColumn = "id", FKResourceName = "RankTypes")]
        public int? ConstituentRankType { get; set; }

        [Documentation(Required = false)]
        public int? ConstituentRankingValue1 { get; set; }

        [Documentation(Required = false)]
        public int? ConstituentRankingValue2 { get; set; }

        [Documentation(Required = true)]
        public bool DiscountIsPercent { get; set; }

        [Documentation(Required = true)]
        public bool ApplyToLowestCommonNumberOfSeats { get; set; }

        [Documentation(Required = true)]
        public bool ExcludeGeneralPublic { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string PromotedAppeals { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string PromotedSources { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string QualifyingPackage { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string QualifyingPerformance { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string QualifyingPriceType1 { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string QualifyingPriceType2 { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string QualifyingProductionSeason { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string QualifyingSeasonPackageType { get; set; }

        [Documentation(Required = false)]
        public int? QualifyingSeatCount1Value1 { get; set; }

        [Documentation(Required = false)]
        public int? QualifyingSeatCount1Value2 { get; set; }

        [Documentation(Required = false)]
        public int? QualifyingSeatCount2Value1 { get; set; }

        [Documentation(Required = false)]
        public int? QualifyingSeatCount2Value2 { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string QualifyingZone { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string ResultPackage { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string ResultPerformance { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string ResultPriceType { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string ResultProductionSeason { get; set; }

        [Documentation(Required = false)]
        public int? ResultSeatCount { get; set; }

        [Documentation(Required = false)]
        public int? ResultMaximumSeats { get; set; }

        [Documentation(Required = false)]
        public int? ResultMaximumSeats2 { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string ResultZone { get; set; }

        [Documentation(Required = false, MaxLength = 4000)]
        public string Sources { get; set; }

        [Documentation(Required = false, FKTable = "TR_CRITERION_OPERATOR", FKColumn = "id", FKResourceName = "CriterionOperators")]
        public CriterionOperatorSummary ConstituentAttributeOperator { get; set; }

        [Documentation(Required = false, FKTable = "TR_CRITERION_OPERATOR", FKColumn = "id", FKResourceName = "CriterionOperators")]
        public CriterionOperatorSummary ConstituentRankingOperator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public decimal DiscountAmount { get; set; }

        [Documentation(Required = true)]
        public short DiscountPercentRound { get; set; }

        [Documentation(Required = false, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public PriceTypeSummary DiscountPriceType { get; set; }

        public bool EditIndicator { get; set; }

        [Documentation(Required = false)]
        public DateTime? EndDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public int? MaxSeats { get; set; }

        [Documentation(Required = true)]
        public bool RespectMinimumPrice { get; set; }

        [Documentation(Required = true)]
        public bool ApplyOncePerOrder { get; set; }

        [Documentation(Required = true)]
        public int RuleAction { get; set; }

        [Documentation(Required = false)]
        public DateTime? StartDateTime { get; set; }

        [Documentation(Required = false)]
        public DateTime? OverTheLimitDateTime { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICING_RULE_CATEGORY", FKColumn = "id", FKResourceName = "PricingRuleCategories")]
        public PricingRuleCategorySummary RuleCategory { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICING_RULE_TYPE", FKColumn = "id", FKResourceName = "PricingRuleTypes")]
        public PricingRuleTypeSummary RuleType { get; set; }

        public PricingRuleMessages Messages { get; set; }
    }
  
    public partial class PricingRuleCriteria : List<PricingRuleCriterion>
    {
    }
  
    public partial class PricingRuleCriterion
    {
        public DateTime? CreatedDateTime { get; set; }

        public string CreateLocation { get; set; }

        public string CreatedBy { get; set; }

        public int CriterionOperator { get; set; }

        public string CriterionValue1 { get; set; }

        public string CriterionValue2 { get; set; }

        public int? ParentKey { get; set; }

        public int? Id { get; set; }

        public DateTime? UpdatedDateTime { get; set; }

        public string UpdatedBy { get; set; }

        public PricingRuleCriterionTypeSummary CriterionType { get; set; }

        public EntitySummary PricingRule { get; set; }
    }
  
    public partial class PricingRuleMessage
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 8000)]
        public string Message { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICING_RULE_MESSAGE_TYPE", FKColumn = "id", FKResourceName = "PricingRuleMessageTypes")]
        public PricingRuleMessageTypeSummary MessageType { get; set; }

        [Documentation(Required = true, FKTable = "T_PRICING_RULE", FKColumn = "id", FKResourceName = "PricingRules")]
        public EntitySummary PricingRule { get; set; }

        public bool IsFromMessageOnlyRule { get; set; }
    }
  
    public partial class PricingRuleMessages : List<PricingRuleMessage>
    {
    }
  
    public partial class PricingRuleMessageSummaries : List<PricingRuleMessageSummary>
    {
    }
  
    public partial class PricingRuleMessageSummary
    {
        public int? Id { get; set; }

        public string Message { get; set; }

        public PricingRuleMessageTypeSummary MessageType { get; set; }

        public EntitySummary PricingRule { get; set; }

        public bool IsFromMessageOnlyRule { get; set; }
    }
  
    public partial class PricingRules : List<PricingRule>
    {
    }
  
    public partial class PricingRuleSet
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        public bool EditIndicator { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }

        public PricingRuleSetMaps Rules { get; set; }
    }
  
    public partial class PricingRuleSetMap
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public int Rank { get; set; }

        [Documentation(Required = true, FKTable = "T_PRICING_RULE", FKColumn = "id", FKResourceName = "PricingRules")]
        public PricingRuleSummary PricingRule { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class PricingRuleSetMaps : List<PricingRuleSetMap>
    {
    }
  
    public partial class PricingRuleSets : List<PricingRuleSet>
    {
    }
  
    public partial class PricingRuleSetSummaries : List<PricingRuleSetSummary>
    {
    }
  
    public partial class PricingRuleSetSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }

        public bool Inactive { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class PricingRuleSummaries : List<PricingRuleSummary>
    {
    }
  
    public partial class PricingRuleSummary
    {
        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        public DateTime? EndDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public bool Inactive { get; set; }

        [Documentation(Required = true)]
        public int RuleAction { get; set; }

        public DateTime? StartDateTime { get; set; }

        public PricingRuleTypeSummary RuleType { get; set; }

        public PricingRuleCategorySummary RuleCategory { get; set; }
    }
  
    /// <summary>
    /// 
    /// </summary>
    public partial class ProductDescribeRequest
    {
        public string ProductionSeasonIds { get; set; }

        public string PerformanceIds { get; set; }

        public string PackageTypeIds { get; set; }

        public string PackageIds { get; set; }
    }
  
    public partial class ProductDescribeResponse
    {
        public int ProductTypeId { get; set; }

        public int SeasonId { get; set; }

        public string SeasonDescription { get; set; }

        public int ProductId { get; set; }

        public string ProductDescription { get; set; }

        public DateTime ProductDate { get; set; }

        public string ProductCode { get; set; }
    }
  
    public partial class ProductDescribeResponses : List<ProductDescribeResponse>
    {
    }
  
    public partial class Production
    {
        [Documentation(Required = false)]
        public decimal? Cost { get; set; }

        [Documentation(Required = false)]
        public int? Duration { get; set; }

        [Documentation(Required = false)]
        public LanguageSummary Language { get; set; }

        [Documentation(Required = false)]
        public short? NumberOfActs { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public string Synopsis { get; set; }

        [Documentation(Required = false)]
        public TitleSummary Title { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public string Fulltext { get; set; }

        [Documentation(Required = true)]
        public DateTime? FulltextCompleteDateTime { get; set; }

        [Documentation(Required = true)]
        public DateTime? FulltextRequestDateTime { get; set; }

        [Documentation(Required = true)]
        public string ShortName { get; set; }

        [Documentation(Required = true)]
        public string Text1 { get; set; }

        [Documentation(Required = true)]
        public string Text2 { get; set; }

        [Documentation(Required = true)]
        public string Text3 { get; set; }

        [Documentation(Required = true)]
        public string Text4 { get; set; }

        [Documentation(Required = true)]
        public string InventoryType { get; set; }
    }
  
    public partial class Productions : List<Production>
    {
    }
  
    public partial class ProductionSeason
    {
        /// <summary>
        /// Premier summary: ID and Description
        /// </summary>
        [Documentation(Required = false)]
        public PremiereSummary Premiere { get; set; }

        /// <summary>
        /// Production summary: ID and Description
        /// </summary>
        [Documentation(Required = true)]
        public ProductionSummary Production { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        /// <summary>
        /// Season summary: ID, Description, FYear, and Inactive flag.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public SeasonSummary Season { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        /// <summary>
        /// Fulltext index words for the production season
        /// </summary>
        [Documentation(Required = true)]
        public string Fulltext { get; set; }

        /// <summary>
        /// The date and time the fulltext index was last generated.
        /// </summary>
        [Documentation(Required = true)]
        public DateTime? FulltextCompleteDateTime { get; set; }

        /// <summary>
        /// The date and time the last change that would affect the fulltext index was made to the production season.
        /// </summary>
        [Documentation(Required = true)]
        public DateTime? FulltextRequestDateTime { get; set; }

        [Documentation(Required = true)]
        public string ShortName { get; set; }

        /// <summary>
        /// Ticket Text line 1
        /// </summary>
        [Documentation(Required = true)]
        public string Text1 { get; set; }

        /// <summary>
        /// Ticket Text line 2
        /// </summary>
        [Documentation(Required = true)]
        public string Text2 { get; set; }

        /// <summary>
        /// Ticket Text line 3
        /// </summary>
        [Documentation(Required = true)]
        public string Text3 { get; set; }

        /// <summary>
        /// Ticket Text line 4
        /// </summary>
        [Documentation(Required = true)]
        public string Text4 { get; set; }

        /// <summary>
        /// S for Production Season
        /// </summary>
        [Documentation(Required = true)]
        public string InventoryType { get; set; }

        /// <summary>
        /// The date of the first performance in the production season
        /// </summary>
        public DateTime? FirstPerformanceDate { get; set; }

        /// <summary>
        /// The date of the last performance in the production season
        /// </summary>
        public DateTime? LastPerformanceDate { get; set; }

        [Documentation(Required = false)]
        public ContactPermissionTypeSummary ContactPermissionType { get; set; }
    }
  
    public partial class ProductionSeasonMembershipOrganization
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public Boolean AllowMultipleEntry { get; set; }

        [Documentation(Required = true, FKTable = "T_PROD_SEASON", FKColumn = "prod_season_no", FKResourceName = "ProductionSeasons")]
        public ProductionSeasonSummary ProductionSeason { get; set; }

        [Documentation(Required = true, FKTable = "T_MEMB_ORG", FKColumn = "memb_org_no", FKResourceName = "MembershipOrganizations")]
        public MembershipOrganizationSummary MembershipOrganization { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ProductionSeasonMembershipOrganizations : List<ProductionSeasonMembershipOrganization>
    {
    }
  
    public partial class ProductionSeasonMembershipOrganizationSummaries : List<ProductionSeasonMembershipOrganizationSummary>
    {
    }
  
    public partial class ProductionSeasonMembershipOrganizationSummary
    {
        public int? Id { get; set; }

        public Boolean AllowMultipleEntry { get; set; }

        public ProductionSeasonSummary ProductionSeason { get; set; }

        public MembershipOrganizationSummary MembershipOrganization { get; set; }
    }
  
    public partial class ProductionSeasons : List<ProductionSeason>
    {
    }
  
    public partial class ProductionSeasonSearchRequest
    {
        /// <summary>
        /// A comma seperated list of artist Ids.  Only production seasons with at least one performance with a credit for the passed artists will be returned.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_ARTIST", FKColumn = "art_no", FKResourceName = "Artists")]
        public string ArtistIds { get; set; }

        /// <summary>
        /// Only production seasons assigned to this business unit (which is based on season) will be included in the result set.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int? BusinessUnitId { get; set; }

        /// <summary>
        /// Only production seasons with at least one performance with this mode of sale will be included in the result set.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModesOfSale")]
        public int? ModeOfSaleId { get; set; }

        /// <summary>
        /// A comma seperated list of facility IDs. Only production seasons with at least one performance in the passed facilities will be returned.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_FACILITY", FKColumn = "facil_no", FKResourceName = "Facilities")]
        public string FacilityIds { get; set; }

        /// <summary>
        /// Full Text search criteria, using the FreetextTable syntax.
        /// </summary>
        public string FullTextSearch { get; set; }

        [Documentation(NotesForPost = "Send 'And' to require all performances to have all the keywords specified. Send 'Or' to require the performances to have only one of the keywords.")]
        public string KeywordAndOr { get; set; }

        /// <summary>
        /// A comma seperated list of keyword Ids. Only production seasons with at least one performance with a passed keyword will be returned.
        /// The KeywordAndOr parameter controls if all keywords or only one must be present.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_TKW", FKColumn = "id", FKResourceName = "ProductKeywords")]
        public string KeywordIds { get; set; }

        /// <summary>
        /// At least one of a production season’s performances must fall on or before this date to be included in the result set.
        /// </summary>
        public DateTime? PerformanceEndDate { get; set; }

        /// <summary>
        /// At least one of a production season’s performances must fall on or after this date to be included in the result set. 
        /// </summary>
        public DateTime? PerformanceStartDate { get; set; }

        /// <summary>
        /// A comma-delimited list of season IDs.  Only production seasons in one of the passed seasons will be returned.  
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public string SeasonIds { get; set; }

        /// <summary>
        /// If passed, is used to calculate a 'weight' for each production season, based on production keywords and constituent interests.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int? ConstituentId { get; set; }  

        /// <summary>
        /// Pass True if all performances in the production season have to match the performance criteria supplied.
        /// Pass False if only one of the performances in the production season have to match.
        /// Performance Critera are date range, facility, artist, keywords, full text search and mode of sale.
        /// </summary>
        public bool? MatchAllPerformances { get; set; }
    }
  
    public partial class ProductionSeasonSearchResponse
    {
        public int ProductionSeasonId { get; set; }

        public string ProductionSeasonDescription { get; set; }

        public DateTime? FirstPerformanceDate { get; set; }

        public DateTime? LastPerformanceDate { get; set; }

        public string PremiereDescription { get; set; }

        public EntitySummary Production { get; set; }

        public int? ConstituentInterestWeight { get; set; }

        public SeasonSummary Season { get; set; }

        public string ShortName { get; set; }

        public string Text1 { get; set; }

        public string Text2 { get; set; }

        public string Text3 { get; set; }

        public string Text4 { get; set; }
    }
  
    public partial class ProductionSeasonSearchResponses : List<ProductionSeasonSearchResponse>
    {
    }
  
    public partial class ProductionSeasonSummaries : List<ProductionSeasonSummary>
    {
    }
  
    public partial class ProductionSeasonSummary
    {
        /// <summary>
        /// Production summary: ID and Description
        /// </summary>
        public ProductionSummary Production { get; set; }

        public int? Id { get; set; }

        public string Description { get; set; }

        /// <summary>
        /// Season summary: ID, Description, FYear, and Inactive flag.
        /// </summary>
        public SeasonSummary Season { get; set; }
    }
  
    public partial class ProductionSummaries : List<ProductionSummary>
    {
    }
  
    public partial class ProductionSummary
    {
        public int? Id { get; set; }

        public string Description { get; set; }
    }
  
    /// <summary>
    /// All the request parameters are optional. If no parameters are specified, all the valid products would be returned.
    /// </summary>
    public partial class ProductSearchRequest
    {
        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int? ConstituentId { get; set; }

        [Documentation(Required = false, FKTable = "T_TITLE", FKColumn = "title_no", FKResourceName = "Titles")]
        public int? TitleId { get; set; }

        public DateTime? StartDateRange { get; set; }

        public DateTime? EndDateRange { get; set; }

        [Documentation(Required = false, FKTable = "TR_TIME_SLOT", FKColumn = "id", FKResourceName = "TimeSlots")]
        public short? TimeSlotId { get; set; }

        [Documentation(Required = false, FKTable = "TR_COMPOSER", FKColumn = "id", FKResourceName = "Composers")]
        public short? ComposerId { get; set; }

        [Documentation(Required = false, FKTable = "TR_LANG", FKColumn = "id", FKResourceName = "Languages")]
        public short? LanguageId { get; set; }

        [Documentation(Required = false, FKTable = "TR_LANG", FKColumn = "id", FKResourceName = "Languages")]
        public int? ArtistId { get; set; }

        [Documentation(Required = false, FKTable = "TR_TKW", FKColumn = "id")]
        public int? KeywordId { get; set; }

        [Documentation(Required = false, FKTable = "T_FACILITY", FKColumn = "facil_no", FKResourceName = "Facilities")]
        public int? FacilityId { get; set; }

        /// 
        /// <summary> Possible values are ONE, ALL, PKG.
        /// Do not send a value for performance search.
        /// PKG : Search based on package criteria.
        /// ONE : Search for packages with performance criteria and include packages where at least one of the performances in the package matches.
        /// ALL : Search for packages with performance criteria and include packages where all the performances in the package match.
        /// </summary>
        public string OneOrAllPerformancesInPackage { get; set; }

        /// <summary>
        /// One of SUN, MON, TUE, WED, THU, FRI, SAT
        /// </summary>
        public string DayOfWeek { get; set; }

        /// <summary>
        /// A list of valid season Ids.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public string SeasonIds { get; set; }

        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public int? SeasonId { get; set; }

        [Documentation(Required = false, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModesOfSale")]
        public short? ModeOfSaleId { get; set; }

        /// <summary>
        /// If a value of true is sent, only the products on sale would be returned.
        /// </summary>
        public bool OnSaleOnly { get; set; }

        /// <summary>
        /// If a value of true is sent, Total product availability will be included in the response.
        /// </summary>
        public bool ShowGrossAvailability { get; set; }

        /// <summary>
        /// If a value of true is sent, Total product availability for the specified constituent (ConstituentId parameter) will be included in the response.
        /// </summary>
        public bool ShowConstituentAvailability { get; set; }

        [Documentation(Required = false, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int? BusinessUnitId { get; set; }

        /// <summary>
        /// A list of valid product seasons ids
        /// </summary>
        [Documentation(Required = false, FKTable = "T_PROD_SEASON", FKColumn = "prod_season_no", FKResourceName = "ProductionSeasons")]
        public string ProductionSeasonIds { get; set; }

        public int? ProductionSeasonId { get; set; }

        /// <summary>   
        /// A list of valid performances ids
        /// </summary>
        [Documentation(Required = false, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "Performances")]
        public string PerformanceIds { get; set; }

        [Documentation(Required = false, FKTable = "TR_SEASON", FKColumn = "id", FKResourceName = "Seasons")]
        public int? PackageSeasonId { get; set; }

        /// <summary>
        /// A list of valid package Ids
        /// </summary>
        [Documentation(Required = false, FKTable = "T_PACKAGE", FKColumn = "pkg_no", FKResourceName = "Packages")]
        public string PackageIds { get; set; }

        [Documentation(Required = false, FKTable = "T_PKG", FKColumn = "pkg_no", FKResourceName = "Packages")]
        public int? PackageId { get; set; }

        [Documentation(Required = false, FKTable = "TR_PKG_TYPE", FKColumn = "id", FKResourceName = "PackageTypes")]
        public int? PackageTypeId { get; set; }

        public DateTime? StartDateRangePackage { get; set; }

        public DateTime? EndDateRangePackage { get; set; }

        /// <summary>
        /// Comma separated list of keywords.
        /// If a keyword number is passed in KeywordId or a string of Keywords is passed in Keywords and PackageId related search fileds are specified,
        /// the package will be returned if the production elements for the performance contain the keyword OR if the package contains the keyword
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_TKW", FKColumn = "id", FKResourceName = "TicketingKeywords")]
        public string Keywords { get; set; }

        /// <summary>
        /// 1 = OR and 2 = AND
        /// </summary>
        public int? KeywordAndOr { get; set; }

        /// <summary>
        /// Comma separated list of keyword descriptions.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_TKW", FKColumn = "id", FKResourceName = "TicketingKeywords")]
        public string KeywordDescriptions { get; set; }

        /// <summary>
        /// Overrides the publish dates for Season Maintenance
        /// </summary>
        public bool ShowAll { get; set; }

        public string FullText { get; set; }

        /// <summary>
        /// The default is 'F' (FreeTextTable). You can pass a value of 'C' to search using ContainsTable.
        /// </summary>
        public string FullTextType { get; set; }

    }
  
    public partial class ProductSearchResponse
    {
        public int PackageId { get; set; }

        public int PerformanceId { get; set; }

        public string PackageCode { get; set; }

        public string PerformanceCode { get; set; }

        public DateTime PerformanceDate { get; set; }

        public int GrossAvailability { get; set; }

        public int AvailabilityByConstituent { get; set; }

        public int FacilityId { get; set; }

        public short TimeSlotId { get; set; }

        public string Description { get; set; }

        public bool IsOnSale { get; set; }

        public int BusinessUnitId { get; set; }

        public int ProductionSeasonId { get; set; }

        public bool IsFixedSeatPackage { get; set; }

        public int ZoneMapId { get; set; }

        public DateTime StartDateTime { get; set; }

        public DateTime EndDateTime { get; set; }

        public DateTime FirstDateTime { get; set; }

        public DateTime LastDateTime { get; set; }

        public int SearchWeight { get; set; }

        public bool IsSuperPackage { get; set; }

        public bool IsFlexPackage { get; set; }

        public int ProductTypeId { get; set; }

        public string ProductTypeDescription { get; set; }

        public int PerformanceStatusId { get; set; }

        public int SearchRelevance { get; set; }

        public short SeasonId { get; set; }

        public string SeasonDescription { get; set; }

        public string ProductionSeasonDescription { get; set; }

        public string ProductShortDescription { get; set; }

        public DateTime PackageDateTime { get; set; }
    }
  
    public partial class ProductSearchResponses : List<ProductSearchResponse>
    {
    }
  
    public partial class ProductSeatFee
    {
        public SeatFeeSummary Fee { get; set; }
        public int PriceTypeId { get; set; }
        public int ZoneId { get; set; }
        public decimal Price { get; set; }
        public decimal FeeAmount { get; set; }
    }
  
    public partial class ProductSeatFees : List<ProductSeatFee>
    {
        
    }
  
    public partial class SalesLayout
    {
        [Documentation(Required = true)]
        public int Columns { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = true)]
        public SalesLayoutButtons SalesLayoutButtons { get; set; }

        [Documentation(Required = true)]
        public SalesLayoutPaymentMethods PaymentMethods { get; set; }

        [Documentation(Required = true)]
        public SalesLayoutPriceTypes PriceTypes { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public bool PrimaryIndicator { get; set; }

        [Documentation(Required = true)]
        public int Rows { get; set; }

        [Documentation(Required = true, FKTable = "TR_CONTROL_GROUP", FKColumn = "id", FKResourceName = "ControlGroups")]
        public ControlGroupSummary ControlGroup { get; set; }
    }
  
    public partial class SalesLayoutButton
    {
        [Documentation(Required = false, MaxLength = 30)]
        public string Caption1 { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Caption2 { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Caption3 { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Caption4 { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        [Documentation(Required = false)]
        public decimal? ItemAmount { get; set; }

        public int? ItemBusinessUnit { get; set; }

        public string ItemDescription { get; set; }

        [Documentation(Required = false)]
        public int? ItemParentId { get; set; }

        [Documentation(Required = false)]
        public int ItemId { get; set; }

        [Documentation(Required = false)]
        public int? ItemOtherId { get; set; }

        [Documentation(Required = false)]
        public int? ItemSubId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public int Xpos { get; set; }

        [Documentation(Required = true)]
        public int Ypos { get; set; }

        [Documentation(Required = true, FKTable = "TR_SALES_LAYOUT_BUTTON_TYPE", FKColumn = "id", FKResourceName = "SalesLayoutButtonTypes")]
        public SalesLayoutButtonTypeSummary ButtonType { get; set; }

        [Documentation(Required = true)]
        public int BackgroundColor { get; set; }

        [Documentation(Required = true)]
        public int ForegroundColor { get; set; }

        [Documentation(Required = false)]
        public DateTime? ProductStartDateTime { get; set; }

        [Documentation(Required = false)]
        public int? ProductStartMode { get; set; }

        [Documentation(Required = false)]
        public int? ProductStartDayAdd { get; set; }

        [Documentation(Required = false)]
        public int? ProductSequence { get; set; }

        [Documentation(Required = false)]
        public int? ProductEndMode { get; set; }

        [Documentation(Required = false)]
        public int? ProductEndDayAdd { get; set; }

        [Documentation(Required = true)]
        public DateTime? ProductEndDateTime { get; set; }

        [Documentation(Required = false)]
        public int? ZoneMode { get; set; }

        [Documentation(Required = false)]
        public int? ZoneSequence { get; set; }

        public string ItemEditIndicator { get; set; }
    }
  
    public partial class SalesLayoutButtons : List<SalesLayoutButton>
    {
    }
  
    public partial class SalesLayoutPaymentMethod
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public int Xpos { get; set; }

        [Documentation(Required = true)]
        public int Ypos { get; set; }

        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public PaymentMethodSummary PaymentMethod { get; set; }

        [Documentation(Required = true)]
        public int BackgroundColor { get; set; }

        [Documentation(Required = true)]
        public int ForegroundColor { get; set; }
    }
  
    public partial class SalesLayoutPaymentMethods : List<SalesLayoutPaymentMethod>
    {
    }
  
    public partial class SalesLayoutPriceType
    {
        [Documentation(Required = true)]
        public int Xpos { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public int Ypos { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public PriceTypeSummary PriceType { get; set; }

        [Documentation(Required = true)]
        public int BackgroundColor { get; set; }

        [Documentation(Required = true)]
        public int ForegroundColor { get; set; }
    }
  
    public partial class SalesLayoutPriceTypes : List<SalesLayoutPriceType>
    {
    }
  
    public partial class SalesLayouts : List<SalesLayout>
    {
    }
  
    public partial class SalesLayoutSummaries : List<SalesLayoutSummary>
    {
    }
  
    public partial class SalesLayoutSummary
    {
        [Documentation(Required = true, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true)]
        public bool Inactive { get; set; }

        [Documentation(Required = true)]
        public bool PrimaryIndicator { get; set; }
    }
  
    public partial class Screen
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public int RowCount { get; set; }

        public int ColumnCount { get; set; }

        public int ScreenUp { get; set; }

        public int ScreenDown { get; set; }

        public int ScreenLeft { get; set; }

        public int ScreenRight { get; set; }

        public HouseMapRectangles HouseMapRectangles { get; set; }

    }
  
    public partial class ScreenMap
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public Screens Screens { get; set; }

    }
  
    public partial class Screens : List<Screen>
    {
        
    }
  
    public partial class Seat
    {
        public int SectionId { get; set; }
        public string SeatRow { get; set; }
        public string SeatNumber { get; set; }
        public int SeatStatus { get; set; }
        public int SeatId { get; set; }
        public int ZoneId { get; set; }
        public int AllocationId { get; set; }
        public int SeatTypeId { get; set; }
        public int LogicalSeatRow { get; set; }
        public int LogicalSeatNumber { get; set; }
        public int XPosition { get; set; }
        public int YPosition { get; set; }
        public bool IsSeat { get; set; }
        public string AisleIndicator { get; set; }
        public bool HasStairs { get; set; }
        public int ScreenId { get; set; }
        public int HoldCodeId { get; set; }
    }
  
    public partial class SeatFeeSummary
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public EntitySummary Category { get; set; }
    }
  
    public partial class SeatHold
    {
        public int SeatId { get; set; }
        public int HoldCodeId { get; set; }
        public DateTime? EndDate { get; set; }

    }
  
    public partial class SeatHoldDetail
    {
        public int SeatId { get; set; }
        public DateTime? EndDate { get; set; }
        public int Priority { get; set; }
        public HoldCodeDetail HoldCodeDetail { get; set; }
    }
  
    public partial class SeatHoldDetails : List<SeatHoldDetail>
    {
         
    }
  
    public partial class SeatHoldRequest
    {
        [Documentation(Required = true, NotesForPost = "Must be a valid seat for the performance")]
        public int SeatId { get; set; }
        [Documentation(Required = true, NotesForPost = "Must be a valid hold code, security rights apply.")]
        public int HoldCodeId { get; set; }
    }
  
    public partial class SeatHoldRequests : List<SeatHoldRequest>
    {
         
    }
  
    public partial class SeatHolds : List<SeatHold>
    {
         
    }
  
    public partial class SeatMap
    {
        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class SeatMaps : List<SeatMap>
    {
    }
  
    public partial class SeatMapSummary
    {
        public string Description { get; set; }

        public int? Id { get; set; }
    }
  
    public partial class Seats : List<Seat>
    {
        
    }
  
    public partial class SeatSummaries : List<SeatSummary>
    {
        
    }
  
    public partial class SeatSummary
    {
        public int SectionId { get; set; }
        public int ZoneId { get; set; }
        public int ScreenId { get; set; }
        public int AvailableCount { get; set; }
    }
  
    public partial class SLIPerformanceSummary
    {
        public int Id { get; set; }

        public string Code { get; set; }

        public string Description { get; set; }

        public DateTime PerformanceDateTime { get; set; }

        public int ProductionSeasonId { get; set; }

    }
  
    public partial class SLISeatSummary
    {
        public int Id { get; set; }

        public string Row { get; set; }

        public string Number { get; set; }

        public EntitySummary Section { get; set; }
    }
  
    public partial class SubLineItem
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public short? PriceTypeId { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public short? OriginalPriceTypeId { get; set; }

        [Documentation(Required = false)]
        public int? ZoneId { get; set; }

        public SubLineItemPricingRule AppliedRule { get; set; }

        [Documentation(Required = false)]
        public string RuleIndicator { get; set; }

        public decimal? TotalDue { get; set; }

        public bool? ApplyPricing { get; set; }

        public decimal? UnAllocatedDiscount { get; set; }

        public SubLineItemDetails SubLineItemDetails { get; set; }

        [Documentation(Required = false)]
        public int? PriceTypeReasonId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public int? LineItemId { get; set; }

        [Documentation(Required = false)]
        public int? ReturnParentSubLineItemId { get; set; }

        [Documentation(Required = false)]
        public int? SeatId { get; set; }

        [Documentation(Required = false)]
        public int? StatusId { get; set; }

        [Documentation(Required = false)]
        public int? TicketNumber { get; set; }

        [Documentation(Required = false)]
        public int? UnseatableReasonId { get; set; }

        [Documentation(Required = false, FKTable = "T_ORDER", FKColumn = "order_no", FKResourceName = "Orders")]
        public int? OrderId { get; set; }

        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int? RecipientId { get; set; }
    }
  
    public partial class SubLineItemDetail
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public int? CampaignId { get; set; }

        [Documentation(Required = false)]
        public decimal? DueAmount { get; set; }

        [Documentation(Required = false, FKTable = "T_PERF_PRICE_TYPE", FKColumn = "id", FKResourceName = "PerformancePriceTypes")]
        public int? PerformancePriceTypeId { get; set; }

        [Documentation(Required = false)]
        public int? DiscountTypeId { get; set; }

        [Documentation(Required = true)]
        public bool? BenevolentIndicator { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public decimal NonDiscountPrice { get; set; }

        [Documentation(Required = false)]
        public decimal PaidAmount { get; set; }

        [Documentation(Required = true)]
        public int? SubLineItemId { get; set; }
    }
  
    public partial class SubLineItemDetails : List<SubLineItemDetail>
    {
    }
  
    public partial class SubLineItemPricingRule
    {
        public string Description { get; set; }

        public int? Id { get; set; }
    }
  
    public partial class SubLineItems : List<SubLineItem>
    {
    }
  
    public partial class SubLineItemSummaries : List<SubLineItemSummary>
    {
    }
  
    public partial class SubLineItemSummary
    {
        public int OrderId { get; set; }

        public DateTime OrderDate { get; set; }

        public int SubLineItemId { get; set; }

        public int LineItemId { get; set; }

        public int ModeOfSaleId { get; set; }

        public int PackageLineItemId { get; set; }

        public decimal DueAmount { get; set; }

        public decimal PaidAmountDecimal { get; set; }

        public int TicketNumber { get; set; }

        public SLISeatSummary Seat { get; set; }

        public SLIPerformanceSummary Performance { get; set; }

        public ConstituentDisplaySummary Owner { get; set; }

        public ConstituentDisplaySummary Initiator { get; set; }

        public ConstituentDisplaySummary Recipient { get; set; }

        public EntitySummary Season { get; set; }

        public EntitySummary Package { get; set; }

        public EntitySummary Facility { get; set; }

        public EntitySummary PriceType { get; set; }

        public EntitySummary LineItemCategory { get; set; }

        public EntitySummary SubLineItemStatus { get; set; }

        public EntitySummary SeatStatus { get; set; }
    }
  
    public partial class SubPackageDetail
    {
        public BestSeatMapSummary BestSeatMap { get; set; }

        public string Code { get; set; }

        public ControlGroupSummary ControlGroup { get; set; }

        public string Description { get; set; }

        public FacilitySummary Facility { get; set; }

        public int Id { get; set; }

        public bool IsFixedSeatPackage { get; set; }

        public bool IsFlexSeatPackage { get; set; }

        public short? MaximumPerformances { get; set; }

        public short? MinimumPerformances { get; set; }

        public PerformanceGroupDetails PerformanceGroupDetails { get; set; }

        public SeasonSummary Season { get; set; }

        public PackageTypeSummary Type { get; set; }

        public ZoneMapSummary ZoneMap { get; set; }
    }
  
    public partial class SubPackageDetails : List<SubPackageDetail>
    {
    }
  
    public partial class SurveyResponse
    {
        [Documentation(Required = false, MaxLength = 255)]
        public string Answer { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "T_ORDER", FKColumn = "order_no", FKResourceName = "Orders")]
        public int OrderId { get; set; }

        [Documentation(Required = true, FKTable = "TR_SURVEY_QUESTION", FKColumn = "id", FKResourceName = "SurveyQuestions")]
        public int QuestionId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class SurveyResponses : List<SurveyResponse>
    {
    }
  
    public partial class TemplatePrice
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public bool EditIndicator { get; set; }

        [Documentation(Required = true)]
        public bool? Enabled { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public decimal MinPrice { get; set; }

        [Documentation(Required = true)]
        public decimal Price { get; set; }

        public ZoneSummary Zone { get; set; }

        [Documentation(Required = true, FKTable = "TX_TEMPLATE_PRICE_TYPE", FKColumn = "id", FKResourceName = "TemplatePriceTypes")]
        public TemplatePriceTypeSummary TemplatePriceType { get; set; }
    }
  
    public partial class TemplatePrices : List<TemplatePrice>
    {
    }
  
    public partial class TemplatePriceType
    {
        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_DESIG_CODE", FKColumn = "id", FKResourceName = "DesignationCodes")]
        public DesignationCodeSummary DesignationCode { get; set; }

        [Documentation(Required = true, FKTable = "T_GL_ACCOUNT", FKColumn = "id", FKResourceName = "GlAccounts")]
        public GlAccountSummary ResaleAccount { get; set; }

        [Documentation(Required = true, FKTable = "T_GL_ACCOUNT", FKColumn = "id", FKResourceName = "GlAccounts")]
        public GlAccountSummary GlAccount { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public PriceTypeSummary PriceType { get; set; }

        [Documentation(Required = true, FKTable = "T_DESIGN", FKColumn = "design_no", FKResourceName = "TicketDesigns")]
        public TicketDesign TicketDesign { get; set; }

        [Documentation(Required = true, FKTable = "T_PRICE_TEMPLATE", FKColumn = "id", FKResourceName = "PriceTemplates")]
        public PriceTemplateSummary PriceTemplate { get; set; }

        public TemplatePrices TemplatePrices { get; set; }
    }
  
    public partial class TemplatePriceTypes : List<TemplatePriceType>
    {
    }
  
    public partial class TemplatePriceTypeSummary
    {
        public int? Id { get; set; }
    }
  
    public partial class Title
    {
        [Documentation(Required = false, MaxLength = 32)]
        public string Author { get; set; }

        [Documentation(Required = true)]
        public ComposerSummary Composer { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public EraSummary Era { get; set; }

        [Documentation(Required = false)]
        public string Lib { get; set; }

        [Documentation(Required = true)]
        public LanguageSummary OriginalLanguage { get; set; }

        [Documentation(Required = false)]
        public string OriginalSynopsis { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public string Fulltext { get; set; }

        [Documentation(Required = true)]
        public DateTime? FulltextCompleteDateTime { get; set; }

        [Documentation(Required = true)]
        public DateTime? FulltextRequestDateTime { get; set; }

        [Documentation(Required = true)]
        public string ShortName { get; set; }

        [Documentation(Required = true)]
        public string Text1 { get; set; }

        [Documentation(Required = true)]
        public string Text2 { get; set; }

        [Documentation(Required = true)]
        public string Text3 { get; set; }

        [Documentation(Required = true)]
        public string Text4 { get; set; }

        [Documentation(Required = true)]
        public string InventoryType { get; set; }
    }
  
    public partial class Titles : List<Title>
    {
    }
  
    public partial class TitleSummaries : List<TitleSummary>
    {
    }
  
    public partial class TitleSummary
    {
        public int? Id { get; set; }
        public string Description { get; set; }
    }
  
    public partial class Transaction
    {
        [Documentation(Required = false)]
        public int? AppealId { get; set; }

        [Documentation(Required = false)]
        public int? BatchId { get; set; }

        [Documentation(Required = false, MaxLength = 1)]
        public bool IsBenevolent { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(Required = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false)]
        public int? FeeId { get; set; }

        [Documentation(Required = false)]
        public int? FundId { get; set; }

        [Documentation(Required = false)]
        public int? OrderId { get; set; }

        [Documentation(Required = false)]
        public bool IsPosted { get; set; }

        [Documentation(Required = true)]
        public int ReferenceNumber { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = false)]
        public int? SourceId { get; set; }

        [Documentation(Required = false)]
        public bool OriginatedFromOrder { get; set; }

        [Documentation(Required = true)]
        public int TransactionId { get; set; }

        [Documentation(Required = false)]
        public decimal TransactionAmount { get; set; }

        [Documentation(Required = false)]
        public DateTime? TransactionDateTime { get; set; }

        [Documentation(Required = false, FKTable = "TR_TRANSACT_ADJ_REASON", FKColumn = "id", FKResourceName = "TransactAdjustmentReasons")]
        public int? AdjustmentReason { get; set; }

        [Documentation(Required = false, FKTable = "T_CAMPAIGN", FKColumn = "campaign_no", FKResourceName = "Campaigns")]
        public int? CampaignId { get; set; }

        [Documentation(Required = false, FKTable = "TR_MEDIA_TYPE", FKColumn = "id", FKResourceName = "MediaTypes")]
        public int? MediaTypeId { get; set; }

        [Documentation(Required = false, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "Performances")]
        public int? PerformanceId { get; set; }

        [Documentation(Required = false, FKTable = "T_PERF_PRICE_TYPE", FKColumn = "id", FKResourceName = "PerformancePriceTypes")]
        public int? PriceLayerId { get; set; }

        [Documentation(Required = false, FKTable = "TR_TRANSACTION_TYPE", FKColumn = "id", FKResourceName = "TransactionTypes")]
        public int? TransactionType { get; set; }
    }

    public partial class Transactions : List<Transaction>
    {
    }
  
    public partial class UpdateSeatHoldRequest
    {
        [Documentation(Required = false)]
        public DateTime? HoldUntilDate { get; set; }
        [Documentation(Required = false, NotesForPost = "Controls if sold seats should have the hold applied.  Pass false to apply to sold seats.")]
        public bool? OnlyAffectAvailable { get; set; }
        [Documentation(Required = false, NotesForPost = "1 = Above Existing Hold Codes, 2 = Below Existing, 3 = Ignore if already held, 4 = Replace existing")]
        public int? ReplaceMode { get; set; }
        [Documentation(Required = true)]
        public SeatHoldRequests SeatHolds { get; set; }
    }
  
    public partial class WebContent
    {
        public Owner Owner { get; set; }

        public EntitySummary Type { get; set; }

        public string Value { get; set; }
    }
  
    public partial class WebContentResult
    {
        /// <summary>
        /// The production element or package to which the web content belongs
        /// </summary>
        public Owner RequestedOwner { get; set; }

        /// <summary>
        /// A collection of web content details for each web content entry returned. Details include content type, content value, and owner (the production element or package to which the content entry belongs)
        /// </summary>
        public WebContents WebContents { get; set; }
    }
  
    public partial class WebContentResults : List<WebContentResult>
    {
    }
  
    public partial class WebContents : List<WebContent>
    {
    }
  
    public partial class Zone
    {
        [Documentation(Required = false, MaxLength = 10)]
        public string Abbreviation { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public int Rank { get; set; }

        [Documentation(Required = false, MaxLength = 10)]
        public string ShortDescription { get; set; }

        [Documentation(Required = true, FKTable = "TR_ZONE_GROUP", FKColumn = "id", FKResourceName = "ZoneGroups")]
        public ZoneGroupSummary ZoneGroup { get; set; }

        public string ZoneTime { get; set; }

        public string StartTime { get; set; }

        public string EndTime { get; set; }

        [Documentation(Required = false, MaxLength = 3)]
        public string ZoneLegend { get; set; }

        [Documentation(Required = true, FKTable = "T_ZMAP", FKColumn = "zmap_no", FKResourceName = "ZoneMaps")]
        public int ZoneMapId { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int Id { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }
    }
  
    public partial class ZoneMap
    {
        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = false, MaxLength = 30)]
        public string Description { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = true, FKTable = "T_SMAP", FKColumn = "smap_no", FKResourceName = "SeatMaps")]
        public SeatMapSummary SeatMap { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }
    }
  
    public partial class ZoneMaps : List<ZoneMap>
    {
    }
  
    public partial class ZoneMapSummaries : List<ZoneMapSummary>
    {
    }
  
    public partial class ZoneMapSummary
    {
        public String Description { get; set; }

        public int? Id { get; set; }

        public bool? Inactive { get; set; }

        public SeatMapSummary SeatMap { get; set; }
    }
  
    public partial class Zones : List<Zone>
    {
    }
  
    /// <summary>
    /// All the request parameters are optional. If no parameters are specified, all the valid products would be returned.
    /// </summary>
    public partial class ZoneSearchRequest
    {
        public string ProductionSeasonIds { get; set; }

        public string PerformanceIds { get; set; }

        public string PackageTypeIds { get; set; }

        public string PackageIds { get; set; }

        public string ZoneIds { get; set; }
    }
  
    public partial class ZoneSearchResponse
    {
        public int FacilityId { get; set; }

        public string FacilityDescription { get; set; }

        public int ZoneMapId { get; set; }

        public string ZoneMapDescription { get; set; }

        public int ZoneId { get; set; }

        public string ZoneDescription { get; set; }

        public int Rank { get; set; }
    }
  
    public partial class ZoneSearchResponses : List<ZoneSearchResponse>
    {
    }
  
    public partial class ZoneSummaries : List<ZoneSummary>
    {
    }
  
    public partial class ZoneSummary
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public string ShortDescription { get; set; }

        public int Rank { get; set; }

        public int ZoneMapId { get; set; }

        public string ZoneTime { get; set; }
    }
  
    public partial class AddBookingRequest
    {
        /// <summary>
        /// The id of a valid, saved booking (EventsManagement/Bookings)
        /// </summary>
        public int BookingId { get; set; }
    }
  
    public partial class AddContributionRequest
    {
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// The ID number of the fund to which the donation should be applied.
        /// If the donation is applied to a fund, a contribution is created and campaign and acknowledgment defaults for the fund are used.  If the default camapaign is a membership campaign, the default membership rules can be overridden to allow an early renewal or a late upgrade.
        /// Optional value but either Fund or AccountMethod must be provided
        /// </summary>
        [Documentation(Required = true, FKTable = "T_FUND", FKColumn = "fund_no", FKResourceName = "Funds")]
        public int FundId { get; set; }

        /// <summary>
        /// Pass True to override an automatic renewal and upgrade the membership instead.
        /// Pass False to use the default membership rules to determine if the contribution will upgrade or renew a membership.
        /// Note that if both the Upgrade and Renew parameters are set to True, an existing membership will be upgraded rather than renewed.
        /// </summary>
        public bool Upgrade { get; set; }

        /// <summary>
        /// Pass True to override an automatic upgrade and renew the membership instead.
        /// Pass False to use the default membership rules to determine if the contribution will upgrade or renew a membership.
        /// Note that if both the Upgrade and Renew parameters are set to True, an existing membership will be upgraded rather than renewed.
        /// </summary>
        public bool Renew { get; set; }

        /// <summary>
        /// A membership level id to create the membership.  If the fund specified is not associated with a membership, this parameter has no effect.  Pass 0 in cases where the contribution is not for a membership or when you want the level to be calculated based on the amount (as was done in earlier versions)
        /// </summary>
        [Documentation(Required = true, FKTable = "T_MEMB_LEVEL", FKColumn = "memb_level_no", FKResourceName = "MembershipLevels")]
        public int MembershipLevelId { get; set; }

        /// <summary>
        /// Up to 10 custom data values for the created contribution.
        /// </summary>
        public CustomDataItems CustomDataItems { get; set; }
    }
  
    public partial class AddContributionResponse
    {
        public int LineItemId { get; set; }
    }
  
    public partial class AddGiftCertificateRequest
    {
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// Must be an id of a payment method where the payment method type is Gift Certificate. (pmt_type = 8)
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public int PaymentMethodId { get; set; }

        /// <summary>
        /// Notes to be included on the gift certificate payment.
        /// </summary>
        [Documentation(Required = false, MaxLength = 1024)]
        public string Notes { get; set; }

        /// <summary>
        /// The name to use as the receipient for this gift certificate.  This value can be printed on the gift certificate receipt.
        /// </summary>
        [Documentation(Required = false, MaxLength = 100)]
        public string Name { get; set; }
    }
  
    public partial class AddNFSPackagePerformanceItemRequest
    {
        /// <summary>
        /// The line item ID of the package to which the performances are being added.
        /// 
        /// For the first performance added the value should be 0.  The package line item is generated then and its ID returned for use with the remaining performances.
        /// </summary>
        [Documentation(Required = true)]
        public int NFSPackageLineItemId { get; set; }

        /// <summary>
        /// The price type for the package.
        /// 
        /// If multiple seats are being requested different price types can be used for each seat by passing a comma separated list of price types.When using multiple price types, a price type must be specified for each seat even if some seats are using the same price type.For example, if there are 4 seats, two at the Adult and two at the Child price type, 4 price type IDs must be passed.
        /// 
        /// The price types passed must be valid for the current mode of sale.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public string PriceType { get; set; }

        /// <summary>
        /// Price Type reasons (Comp Codes) for use with price types that require them.
        /// 
        /// If multiple seats are being requested with different price types, the price type reasons can be specified in a list, matching the price types.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_COMP_CODE", FKColumn = "id", FKResourceName = "PriceTypeReasons")]
        public string PriceTypeReason { get; set; }

        /// <summary>
        /// The ID number of the package to to which the performance being added belongs.  The same package ID must be passed for each performance.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_PKG", FKColumn = "pkg_no", FKResourceName = "Packages")]
        public int PackageId { get; set; }

        /// <summary>
        /// The ID number of the performance to be added to the cart.  Performances must be associated with the package passed in PackageId parameter. 
        /// </summary>
        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "Performances")]
        public int PerformanceId { get; set; }

        /// <summary>
        /// The ID of the performance group to which the performance being added belongs. The performance group must be associtated with the requested package.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_PERF_GROUP", FKColumn = "perf_group_no", FKResourceName = "PerformanceGroups")]
        public int PerformanceGroupId { get; set; }

        /// <summary>
        /// The number of seats to be added to the cart for the request.
        /// </summary>
        [Documentation(Required = true)]
        public int NumberOfSeats { get; set; }

        /// <summary>
        /// The ID number of the desired price zone for the request. A value of 0 can be passed .
        /// 
        /// When reserving specific seats, the zone of the specified seats overrides whatever zone value is passed here. As the parameter is required but essentially irrelevant, you can pass a value of 0 to meet the requirement.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_ZONE", FKColumn = "zone_no", FKResourceName = "Zones")]
        public int ZoneId { get; set; }

        /// <summary>
        /// The ID numbers (seat_no) of specific seats to reserve.  Muliple seat numbers can be passed as a comma separated list. 
        /// 
        /// If no value is passed seats are reserved using the best seating function.
        /// </summary>
        [Documentation(Required = false)]
        public string RequestedSeats { get; set; }

        /// <summary>
        /// When set to True, the best seating function is allowed to reserve seats that would leave a single contiguous seat available. 
        ///
        /// When set to False, the best seating function will not reserve seats that would leave a single contiguous seat available.
        /// </summary>
        [Documentation(Required = true)]
        public bool LeaveSingleSeats { get; set; }

        /// <summary>
        /// Used to refine which seats are selected by the best seat function (including reserving seats held with a hold code).  Special requests are passed as a string of name-value pairs formatted as follows:  name1=value1andname2=value2.  See the special requests section for valid special request  names and values.
        /// </summary>
        [Documentation(Required = false)]
        public string SpecialRequests { get; set; }

        /// <summary>
        /// When set to True, seats will not be assigned.
        /// 
        /// When set to False, seats will be assigned.
        /// </summary>
        [Documentation(Required = true)]
        public bool Unseated { get; set; }
    }
  
    public partial class AddNFSPackagePerformanceItemResponse
    {
        public int LineItemId { get; set; }

        public int NFSPackageLineItemId { get; set; }

        public int SeatsReserved { get; set; }
    }
  
    public partial class AddPackageItemRequest
    {
        /// <summary>
        /// The price type for the package.  
        /// If multiple seats are being requested different price types can be used for each seat by passing a comma separated list of price types.When using multiple price types, a price type must be specified for each seat even if some seats are using the same price type.For example, if there are 4 seats, two at the Adult and two at the Child price type, 4 price type IDs must be passed.
        /// The price types passed must be valid for the current mode of sale.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public string PriceType { get; set; }

        /// <summary>
        /// Price Type reasons (Comp Codes) for use with price types that require them.
        /// If multiple seats are being requested with different price types, the price type reasons can be specified in a list, matching the price types.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_COMP_CODE", FKColumn = "id", FKResourceName = "PriceTypeReasons")]
        public string PriceTypeReason { get; set; }

        /// <summary>
        /// The ID number of package to be added to the cart. Must be a fixed seat package.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_PKG", FKColumn = "pkg_no", FKResourceName = "Packages")]
        public int PackageId { get; set; }

        /// <summary>
        /// The number of seats to be added to the cart for the request.
        /// </summary>
        [Documentation(Required = true)]
        public int NumberOfSeats { get; set; }

        /// <summary>
        /// The ID number of the desired price zone for the request. A value of 0 can be passed 
        /// When reserving specific seats, the zone of the specified seats overrides whatever zone value is passed here.As the parameter is required but essentially irrelevant, you can pass a value of 0 to meet the requirement.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_ZONE", FKColumn = "zone_no", FKResourceName = "Zones")]
        public int ZoneId { get; set; }

        /// <summary>
        /// The ID numbers (seat_no) of specific seats to reserve.  Multiple seat numbers can be passed as a comma separated list.
        /// If no value is passed seats are reserved using the best seating function.
        /// </summary>
        [Documentation(Required = false)]
        public string RequestedSeats { get; set; }

        /// <summary>
        /// When set to True, the best seating function is allowed to reserve seats that would leave a single contiguous seat available.
        /// When set to False, the best seating function will not reserve seats that would leave a single contiguous seat available.
        /// </summary>
        [Documentation(Required = false)]
        public bool LeaveSingleSeats { get; set; }

        /// <summary>
        /// If the line item being added is primary (a new package) pass 0 for this parameter.
        /// If the line item being added is an alternate/upgrade line item pass the line item ID of parent package line item.
        /// </summary>
        [Documentation(Required = false)]
        public int ParentPackageLineItemId { get; set; }

        /// <summary>
        /// Setting this as True will create an unseated package lineitem.
        /// </summary>
        [Documentation(Required = false)]
        public bool Unseated { get; set; }
    }
  
    public partial class AddPackageItemResponse
    {
        public int LineItemId { get; set; }

        public int SeatsReserved { get; set; }
    }
  
    public partial class AddSubPackageItemRequest
    {
        /// <summary>
        /// If the line item being added is an alternate/upgrade line item pass the line item ID of parent super package line item.
        /// </summary>
        [Documentation(Required = false)]
        public int ParentSuperPackageLineItemId { get; set; }

        /// <summary>
        /// The super package line item ID of the super package to which the sub packages are being added. 
        /// 
        /// For the first sub package added the value should be 0.  The super package line item is generated then and its ID returned for use with the remaining sub packages.
        /// </summary>
        [Documentation(Required = true)]
        public int SuperPackageLineItemId { get; set; }

        /// <summary>
        /// The price type for the package.
        /// 
        /// If multiple seats are being requested different price types can be used for each seat by passing a comma separated list of price types.When using multiple price types, a price type must be specified for each seat even if some seats are using the same price type.For example, if there are 4 seats, two at the Adult and two at the Child price type, 4 price type IDs must be passed.
        /// 
        /// The price types passed must be valid for the current mode of sale.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public string PriceType { get; set; }

        /// <summary>
        /// Price Type reasons (Comp Codes) for use with price types that require them.
        /// 
        /// If multiple seats are being requested with different price types, the price type reasons can be specified in a list, matching the price types.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_COMP_CODE", FKColumn = "id", FKResourceName = "PriceTypeReasons")]
        public string PriceTypeReason { get; set; }

        /// <summary>
        /// The ID number of the sub package to be added to cart.  The super package ID number should not be used.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_PKG", FKColumn = "pkg_no", FKResourceName = "Packages")]
        public int SubPackageId { get; set; }

        /// <summary>
        /// The number of seats to be added to the cart for the request.
        /// </summary>
        [Documentation(Required = true)]
        public int NumberOfSeats { get; set; }

        /// <summary>
        /// The ID number of the desired price zone for the request. A value of 0 can be passed.
        /// 
        /// When reserving specific seats, the zone of the specified seats overrides whatever zone value is passed here. As the parameter is required but essentially irrelevant, you can pass a value of 0 to meet the requirement.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_ZONE", FKColumn = "zone_no", FKResourceName = "Zones")]
        public int ZoneId { get; set; }

        /// <summary>
        /// The ID numbers (seat_no) of specific seats to reserve.  Muliple seat numbers can be passed as a comma separated list. 
        /// 
        /// If no value is passed seats are reserved using the best seating function.
        /// </summary>
        [Documentation(Required = false)]
        public string RequestedSeats { get; set; }

        /// <summary>
        /// When set to True, the best seating function is allowed to reserve seats that would leave a single contiguous seat available. 
        ///
        /// When set to False, the best seating function will not reserve seats that would leave a single contiguous seat available.
        /// </summary>
        [Documentation(Required = true)]
        public bool LeaveSingleSeats { get; set; }

        /// <summary>
        /// When set to True, seats will not be assigned.
        /// 
        /// When set to False, seats will be assigned.
        /// </summary>
        [Documentation(Required = true)]
        public bool Unseated { get; set; }
    }
  
    public partial class AddSubPackageItemResponse
    {
        public int LineItemId { get; set; }

        public int SuperPackageLineItemId { get; set; }
    }
  
    public partial class AddUpdateFeeRequest
    {
        /// <summary> Determines the action the method should take. (A)dd, (O)verride, (U)n-override
        /// </summary>
        [Documentation(Required = true)]
        public string Action { get; set; }

        /// <summary> The Product ID or Line Item Id of the fee to be overridden or updated. Can be retrieved using /Web/Cart. Required when Action is (O)verride or (U)n-override 
        /// </summary>
        public int ItemFeeId { get; set; }

        /// <summary>
        /// The ID number of the fee to be updated. Can be retrieved using /TXN/Fees (if adding a new fee) or /Web/Cart (if updating an existing fee). 
        /// </summary>
        [Documentation(Required = true, FKTable = "T_FEE", FKColumn = "fee_no", FKResourceName = "Fees")]
        public int FeeId { get; set; }

        /// <summary> The fee amount to set when overriding a fee.  Must conform to override amount rules for the fee being overridden. Required when Action is (O)verride.
        /// </summary>
        public decimal Amount { get; set; }
    }
  
    public partial class AddUpdateFeeResponse
    {
        public int ItemFeeId { get; set; }
    }
  
    public partial class AlternateLineItem
    {
        public int Id { get; set; }

        public int LineItemGroupId { get; set; }

        public int PackageLineItemId { get; set; }

        public int SuperPackageId { get; set; }

        public string AlternateUpgrade { get; set; }

        public bool Primary { get; set; }

        public short DbStatus { get; set; }

        public CartPackage Package { get; set; }

        public CartPerformance Performance { get; set; }

        public CartSubLineItems SubLineItems { get; set; }

        public SpecialRequest SpecialRequest { get; set; }

        public decimal TotalDue { get; set; }

        public decimal DueAmount { get; set; }
    }
  
    public partial class AlternateLineItems : List<AlternateLineItem>
    {
    }
  
    public partial class ApplyCashPaymentRequest
    {
        /// <summary>
        /// Amount of the payment.
        /// </summary>
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// Amount tendered. Must be greater or equal to the Amount.
        /// </summary>
        [Documentation(Required = true)]
        public decimal TenderedAmount { get; set; }

        /// <summary>
        /// The cash payment method. Must have a payment type of Cash (pmt_type = 5)
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public int PaymentMethodId { get; set; }

        /// <summary>
        /// Optional notes for the payment.
        /// </summary>
        [Documentation(Required = false, MaxLength = 1024)]
        public string Notes { get; set; }
    }
  
    public partial class ApplyCheckPaymentRequest
    {
        /// <summary>
        /// Amount of the payment
        /// </summary>
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// Check Name
        /// </summary>
        [Documentation(MaxLength = 100)]
        public string PayerName { get; set; }

        /// <summary>
        /// Check number, required if the payment method has RequireCheckIndicator true.
        /// </summary>
        [Documentation(MaxLength = 30)]
        public string CheckNumber { get; set; }

        /// <summary>
        /// The check payment method. Must have a payment type of Check (pmt_type = 3)
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public int PaymentMethodId { get; set; }

        /// <summary>
        /// Optional notes for the payment.
        /// </summary>
        [Documentation(Required = false, MaxLength = 1024)]
        public string Notes { get; set; }
    }
  
    public partial class ApplyDiscountRequest
    {
        /// <summary>
        /// The Id of the discount to apply.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_DISCOUNT_TYPES", FKColumn = "id", FKResourceName = "DiscountTypes")]
        public int DiscountTypeId { get; set; }
    }
  
    public partial class ApplyGiftCertificatePaymentRequest
    {
        /// <summary>
        /// Amount of the payment. This cannot exceed the balance of the gift certificate.
        /// If Amount is specified as 0, the API will determine the correct amount to apply to the order.This amount will be the lesser of the remaining gift certificate amount or the order balance.
        /// </summary>
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// The gift certificate number to use for this payment. 
        /// </summary>
        [Documentation(Required = true, FKTable = "T_GC", FKColumn = "gc_no", FKResourceName = "GiftCertificates")]
        public string GiftCertificateNumber { get; set; }

        /// <summary>
        /// Optional notes for the payment.
        /// </summary>
        [Documentation(Required = false, MaxLength = 1024)]
        public string Notes { get; set; }
    }
  
    public partial class ApplyInvoicePaymentRequest
    {
        /// <summary>
        /// Amount of the payment
        /// </summary>
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// The invoice payment method. Must have a payment type of invoice (pmt_type = 4)
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public int PaymentMethodId { get; set; }

        /// <summary>
        /// Optional notes for the payment.
        /// </summary>
        [Documentation(Required = false, MaxLength = 1024)]
        public string Notes { get; set; }
    }
  
    public partial class ApplyOnAccountPaymentRequest
    {
        /// <summary>
        /// The amount of the payment. This amount cannot exceed the amount of money the constituent has on account for the specified payment method, and cannot cause the total of all payments to exceed the order total.
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// The On-Account payment method. Must have a payment type of on-account (pmt_type = 2)
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public int PaymentMethodId { get; set; }

        /// <summary>
        /// Optional notes for the payment.
        /// </summary>
        [Documentation(Required = false, MaxLength = 1024)]
        public string Notes { get; set; }
    }
  
    public partial class ApplyOtherPaymentRequest
    {
        /// <summary>
        /// Amount of the payment
        /// </summary>
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// The other payment method. Must have a payment type of other (pmt_type = 7)
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public int PaymentMethodId { get; set; }

        /// <summary>
        /// Optional notes for the payment.
        /// </summary>
        [Documentation(Required = false, MaxLength = 1024)]
        public string Notes { get; set; }
    }
  
    public partial class ApplyPaymentResponse
    {
        public int PaymentId { get; set; }
    }
  
    public partial class BusinessFacingSessionRequest
    {
        /// <summary>
        /// Specifies the IP Address to be stored in the T_WEB_SESSION_SESSION table.
        /// </summary>
        [Documentation(Required = true)]
        public string IpAddress { get; set; }

        /// <summary>
        /// The business unit for this session.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int BusinessUnit { get; set; }

        /// <summary>
        /// The organization name for this session. Must match the description column for a row in TR_ORGANIZATION.
        /// </summary>
        [Documentation(Required = false)]
        public string Organization { get; set; }

        /// <summary>SessionInfo (Batch, Mode of sale, Source) for this session.</summary>
        [Documentation(Required = true)]
        public SessionInfo SessionInfo { get; set; }
    }
  
    public partial class Cart
    {
        public string SessionKey { get; set; }

        public int Id { get; set; }

        public int? BatchId { get; set; }

        public string Solicitor { get; set; }

        public short? Class { get; set; }

        public short? DbStatus { get; set; }

        public DateTime? OrderDateTime { get; set; }

        public DateTime? FirstSeatAddedDateTime { get; set; }

        public decimal? CartPrimaryAmount { get; set; }

        public decimal? CartFirstChoiceAmount { get; set; }

        public decimal? CartAmount { get; set; }

        public decimal? AmountPaidPreviously { get; set; }

        public decimal? AmountPaidNow { get; set; }

        public decimal? BalanceToCharge { get; set; }

        public decimal? SubTotal { get; set; }

        public decimal? FeesAmount { get; set; }

        public int? BookingId { get; set; }

        public CustomDataItems CustomDataItems { get; set; }
      
        public bool CartWasPriced { get; set; }

        public ConstituentDisplaySummary Constituent { get; set; }

        public ConstituentDisplaySummary Initiator { get; set; }

        public EntitySummary DeliveryMethod { get; set; }

        public EntitySummary ModeOfSale { get; set; }

        public EntitySummary Source { get; set; }

        public EntitySummary Appeal { get; set; }

        public PaymentPlans PaymentPlans { get; set; }

        public CartFeeDetails OrderFees { get; set; }

        public CartPayments Payments { get; set; }

        public CartPricingRuleMessages Messages { get; set; }

        public CartProducts Products { get; set; }
    }
  
    public partial class CartContribution
    {
        public int Id { get; set; }

        public short DbStatus { get; set; }

        public decimal Amount { get; set; }

        public EntitySummary Fund { get; set; }

        public EntitySummary OnAccountMethod { get; set; }

        public CustomDataItems CustomDataItems { get; set; }

    }
  
    public partial class CartContributionSummary
    {
        public int ReferenceId { get; set; }

        public decimal Amount { get; set; }

        public string FundDescription { get; set; }

        public string OnAccountMethodDescription { get; set; }
    }
  
    public partial class CartFeeDetail
    {
        public int Id { get; set; }

        public int LineItemId { get; set; }

        public int SubLineItemId { get; set; }

        public CartFeeSummary FeeSummary { get; set; }

        public decimal Amount { get; set; }

        public string OverrideIndicator { get; set; }

        public decimal OverrideAmount { get; set; }

        public int DbStatus { get; set; }
    }
  
    public partial class CartFeeDetails : List<CartFeeDetail>
    {
    }
  
    public partial class CartFeeSummary
    {
        public int FeeId { get; set; }

        public string Description { get; set; }

        public EntitySummary Category { get; set; }
    }
  
    public partial class CartGiftCertificate
    {
        public int PaymentId { get; set; }

        public string GiftCertificateNumber { get; set; }

        public decimal Amount { get; set; }

        public string Notes { get; set; }

        public string Name { get; set; }
    }
  
    public partial class CartInfo
    {
        public int PerformanceCount { get; set; }

        public int PackageCount { get; set; }

        public int ContributionCount { get; set; }
        
        public int MembershipCount { get; set; }

        public int UserDefinedFeeCount { get; set; }

        public int GiftCertificateCount { get; set; }

        public int PaymentCount { get; set; }

        public DateTime? FirstSeatAddedDateTime { get; set; }
    }
  
    public partial class CartLineItem
    {
        public AlternateLineItems AlternateLineItems { get; set; }

        public int Id { get; set; }

        public int LineItemGroupId { get; set; }

        public int PackageLineItemId { get; set; }

        public int SuperPackageId { get; set; }

        public string AlternateUpgrade { get; set; }

        public bool Primary { get; set; }

        public short DbStatus { get; set; }

        public EntitySummary Source { get; set; }

        public CartPackage Package { get; set; }

        public CartPerformance Performance { get; set; }

        public CartSubLineItems SubLineItems { get; set; }

        public SpecialRequest SpecialRequest { get; set; }

        public decimal TotalDue { get; set; }

        public decimal DueAmount { get; set; }
    }
  
    public partial class CartLineItems : List<CartLineItem>
    {
    }
  
    public partial class CartMembership
    {
        public int Id { get; set; }

        public short DbStatus { get; set; }

        public decimal Amount { get; set; }

        public EntitySummary Fund { get; set; }

        public EntitySummary OnAccountMethod { get; set; }

        public EntitySummary MembershipOrganization { get; set; }

        public EntitySummary MembershipLevel { get; set; }

        public CustomDataItems CustomDataItems { get; set; }
    }
  
    public partial class CartMembershipSummary
    {
        public int ReferenceId { get; set; }

        public decimal Amount { get; set; }

        public string FundDescription { get; set; }

        public string OnAccountMethodDescription { get; set; }

        public EntitySummary MembershipOrganization { get; set; }

        public string MembershipLevelDescription { get; set; }
    }
  
    public partial class CartPackage
    {
        public int Id { get; set; }

        public string Code { get; set; }

        public string Description { get; set; }

        public EntitySummary Season { get; set; }

        public EntitySummary Type { get; set; }

        public bool FixedPackage { get; set; }

        public bool NFSPackage { get; set; }

        public bool SuperPackage { get; set; }

        public bool SubPackage { get; set; }

        public DateTime Date { get; set; }
    }
  
    public partial class CartPackageSummary
    {
        public int Id { get; set; }

        public string Code { get; set; }

        public DateTime PackageDateTime { get; set; }

        public string Description { get; set; }

        public bool FixedPackage { get; set; }

        public bool NFSPackage { get; set; }

        public bool SuperPackage { get; set; }

        public bool SubPackage { get; set; }
    }
  
    public partial class CartPayment
    {
        public int Id { get; set; }

        public decimal Amount { get; set; }

        public decimal TenderedAmount { get; set; }

        public CartPaymentMethod PaymentMethod { get; set; }

        public string LastFourCreditCardNumber { get; set; }

        public string PayerName { get; set; }
        
        public string CheckNumber { get; set; }

        public string GiftCertificateNumber { get; set; }

        public bool Applied { get; set; }

        public string Notes { get; set; }
    }
  
    public partial class CartPaymentMethod
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public EntitySummary AccountType { get; set; }
    }
  
    public partial class CartPayments : List<CartPayment>
    {
    }
  
    public partial class CartPerformance
    {
        public int Id { get; set; }

        public string Code { get; set; }

        public string Description { get; set; }

        public EntitySummary Facility { get; set; }

        public DateTime PerformanceDateTime { get; set; }

        public int? Duration { get; set; }

        public EntitySummary ProductionSeason { get; set; }

        public EntitySummary Season { get; set; }

        public EntitySummary TimeSlot { get; set; }

        public EntitySummary Type { get; set; }

        public CartZoneMap ZoneMap { get; set; }
    }
  
    public partial class CartPerformanceSummary
    {
        public int Id { get; set; }

        public string Code { get; set; }

        public DateTime PerformanceDateTime { get; set; }

        public string Description { get; set; }
    }
  
    public partial class CartPriceType
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public string ShortDescription { get; set; }

        public EntitySummary Category { get; set; }

        public EntitySummary PriceTypeReason { get; set; }
    }
  
    public partial class CartPricingRuleMessage
    {
        public int Id { get; set; }

        public string Message { get; set; }

        /// <summary>
        /// True if the message is from a Message Only rule.
        /// </summary>
        public bool IsMessageOnlyRule { get; set; }

        /// <summary>
        /// True if the messages comes from a rule that was applied to subline items in cart as of the most recent pricing call.
        /// </summary>
        public string NewRuleIndicator { get; set; }

        public EntitySummary MessageType { get; set; }

        /// <summary>
        /// The rule that the message is associated with.
        /// </summary>
        public CartPricingRuleSummary PricingRule { get; set; }
    }
  
    public partial class CartPricingRuleMessages : List<CartPricingRuleMessage>
    {
    }
  
    public partial class CartPricingRuleSummary
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public int RuleAction { get; set; }
    }
  
    public partial class CartProduct
    {
        /// <summary>
        /// One of:
        /// 1 = PerformanceId
        /// 2 = PackageId
        /// 3 = Contribution
        /// 4 = Membership
        /// 5 = Gift Certificate
        /// 6 = User Defined Fee
        /// </summary>
        public EntitySummary ProductType { get; set; }

        public CartProductPerformance Performance { get; set; }

        public CartProductPackage Package { get; set; }

        public CartContribution Contribution { get; set; }

        public CartMembership Membership { get; set; }

        public CartGiftCertificate GiftCertificate { get; set; }

        public CartFeeDetail UserDefinedFee { get; set; }

        public string ProductGrouping { get; set; }
    }
  
    public partial class CartProductPackage
    {
        public int Id { get; set; }

        public CartLineItems LineItems { get; set; }
    }
  
    public partial class CartProductPackageSummary
    {
        public int LineItemId { get; set; }

        public int PackageId { get; set; }

        public string PackageCode { get; set; }

        public DateTime PackageDateTime { get; set; }

        public string PackageDescription { get; set; }

        public decimal TotalAmount { get; set; }

        public bool FixedPackage { get; set; }

        public bool NFSPackage { get; set; }

        public bool SuperPackage { get; set; }

        public EntitySummary Source { get; set; }

        public bool SubPackage { get; set; }

        public CartProductPerformanceSummaries Performances { get; set; }
    }
  
    public partial class CartProductPerformance
    {
        public int Id { get; set; }

        public CartLineItem LineItem { get; set; }
    }
  
    public partial class CartProductPerformanceSummaries : List<CartProductPerformanceSummary>
    {
    }
  
    public partial class CartProductPerformanceSummary
    {
        public int LineItemId { get; set; }

        public int PerformanceId { get; set; }

        public string PerformanceCode { get; set; }

        public DateTime PerformanceDateTime { get; set; }

        public string PerformanceDescription { get; set; }

        public decimal TotalAmount { get; set; }

        public bool HasZoneTime { get; set; }

        public EntitySummary Source { get; set; }

        public DisplayLines DisplayLines { get; set; }
    }
  
    public partial class CartProductResponse
    {
        public int Id { get; set; }

        public int ProductTypeId { get; set; }

        public int? ParentId { get; set; }

        public int? ItemCount { get; set; }
    }
  
    public partial class CartProducts : List<CartProduct>
    {
    }
  
    public partial class CartProductSummaries : List<CartProductSummary>
    {
    }
  
    public partial class CartProductSummary
    {
        /// <summary>
        /// One of:
        /// 1 = PerformanceId
        /// 2 = PackageId
        /// 3 = Contribution
        /// 4 = Membership
        /// 5 = Gift Certificate
        /// 6 = User Defined Fee
        /// </summary>
        public EntitySummary ProductType { get; set; }

        public CartProductPerformanceSummary Performance { get; set; }

        public CartProductPackageSummary Package { get; set; }

        public CartContributionSummary Contribution { get; set; }

        public CartMembershipSummary Membership { get; set; }

        public CartGiftCertificate GiftCertificate { get; set; }

        public UserDefinedFee UserDefinedFee { get; set; }

        public string ProductGrouping { get; set; }
    }
  
    public partial class CartProperties
    {
        /// <summary>
        /// Mode of sale to set for the session. 
        /// Pass 0 to set the mode of sale to the default for the session(either the default web MOS, the MOS indicated by the source, or the MOS indicated by the constituent’s rank).
        /// The MOS can be set after products have been added to the cart as long as they are still valid in the new MOS. If the contents are not valid in the new mode of sale, an exception is thrown. If existing cart items exceed any quantity limits set at the price type level under the new mode of sale, an exception is thrown.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "ModesOfSale")]
        public int? ModeOfSaleId { get; set; }

        /// <summary>
        /// New source code for the session. To use a promo code for a source, /Web/Session/Promocode must be used to look up the source code associated with the promo code.
        /// </summary>
        [Documentation(Required = false, FKTable = "TX_APPEAL_MEDIA_TYPE", FKColumn = "source_no", FKResourceName = "Sources")]
        public int? SourceId { get; set; }

        /// <summary>
        /// The solicitor, identified by user name, that will be used for the order.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_METUSER", FKColumn = "userid", FKResourceName = "Users")]
        public string Solicitor { get; set; }

        /// <summary>
        /// The order category, identified by ID number, that will be selected for the order.
        /// Set the value to -1 to set the field to null for the order.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_ORDER_CATEGORY", FKColumn = "id", FKResourceName = "OrderCategories")]
        public int? CategoryId { get; set; }

        /// <summary>
        /// The channel, identified by ID number, that will be selected for the order.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_SALES_CHANNEL", FKColumn = "id", FKResourceName = "SalesChannels")]
        public int? ChannelId { get; set; }

        /// <summary>
        /// The hold until date to set for the order. This needs to be a valid date time.        
        /// </summary>
        [Documentation(Required = false)]
        public DateTime? HoldUntilDateTime { get; set; }

        /// <summary>
        /// The text of the note being added to the order.
        /// </summary>
        [Documentation(Required = false)]
        public string Notes { get; set; }

        /// <summary>
        /// Sets or removes the initiator for the order.  Note that an individual starts a session and the session context is shifted to the household, the original constituent (the individual) will automatically be recorded as the initiator on the order. 
        /// Pass 0 to remove any existing initiator.  
        /// </summary>
        [Documentation(Required = false, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int? InitiatorId { get; set; }

        /// <summary>
        /// The address to set as the delivery address.
        /// If the delivery method specified does not require a postal address and you don’t want to associate one with the order, then you can specifiy 0 as the Addressid.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_ADDRESS", FKColumn = "address_no", FKResourceName = "Addresses")]
        public int? AddressId { get; set; }

        /// <summary>
        /// The Email address to set as the delivery address.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_EADDRESS", FKColumn = "eaddress_no", FKResourceName = "ElectronicAddresses")]
        public int? ElectronicAddressId { get; set; }

        /// <summary>
        /// The delivery method to set for the order.
        /// /Web/Session/DeliveryMethods can be used to return valid delivery methods for the session.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_ORDER_SHIP_METHOD ", FKColumn = "id", FKResourceName = "DeliveryMethods")]
        public int? DeliveryMethodId { get; set; }
    }
  
    public partial class CartSeat
    {
        public int Id { get; set; }

        public string Row { get; set; }

        public string Number { get; set; }

        public CartSeatSection Section { get; set; }
    }
  
    public partial class CartSeatSection
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public string ShortDescription { get; set; }

        public string PrintDescription { get; set; }
    }
  
    public partial class CartSubLineItem
    {
        public int Id { get; set; }

        public bool ApplyPricing { get; set; }

        public short DbStatus { get; set; }

        public CartPriceType PriceType { get; set; }

        public CartPriceType OriginalPriceType { get; set; }

        public short Status { get; set; }

        public CartSubLineItemDetails SubLineItemDetails { get; set; }

        public CartZone Zone { get; set; }

        public CartSeat Seat { get; set; }

        public ConstituentDisplaySummary Recipient { get; set; }

        public decimal DueAmount { get; set; }

        public decimal PaidAmount { get; set; }

        public CartFeeDetails SubLineItemFees { get; set; }

        public string NewRuleIndicator { get; set; }

        public string RuleIndicator { get; set; }

        public CartPricingRuleSummary PricingRule { get; set; }
    }
  
    public partial class CartSubLineItemDetail
    {
        public int Id { get; set; }

        public bool BenevolentIndicator { get; set; }

        public int CampaignId { get; set; }

        public EntitySummary DiscountType { get; set; }

        public decimal DueAmount { get; set; }

        public decimal PaidAmount { get; set; }

        public decimal OriginalPrice { get; set; }

        public int PerformancePriceTypeLayerId { get; set; }
    }
  
    public partial class CartSubLineItemDetails : List<CartSubLineItemDetail>
    {
    }
  
    public partial class CartSubLineItems : List<CartSubLineItem>
    {
    }
  
    public partial class CartSummary
    {
        public string SessionKey { get; set; }

        public int Id { get; set; }

        public int? BatchId { get; set; }

        public string Solicitor { get; set; }

        public short? Class { get; set; }

        public DateTime? OrderDateTime { get; set; }

        public DateTime? FirstSeatAddedDateTime { get; set; }

        public ConstituentDisplaySummary Constituent { get; set; }

        public ConstituentDisplaySummary Initiator { get; set; }

        public EntitySummary DeliveryMethod { get; set; }

        public EntitySummary ModeOfSale { get; set; }

        public EntitySummary Source { get; set; }

        public EntitySummary Appeal { get; set; }

        public decimal? CartAmount { get; set; }

        public decimal? AmountPaidNow { get; set; }

        public decimal? BalanceToCharge { get; set; }

        public decimal? SubTotal { get; set; }

        public decimal? FeesAmount { get; set; }

        public bool CartWasPriced { get; set; }

        public int? BookingId { get; set; }

        public RuleBasedFees RuleBasedFees { get; set; }

        public CartPayments Payments { get; set; }

        public CartPricingRuleMessages Messages { get; set; }

        public CartProductSummaries Products { get; set; }
    }
  
    public partial class CartValidationRequest
    {
        /// <summary>
        /// If set to true, validates that all component sub packages in a super package have been added correctly.  It should be used after all sub packages have been added and will return information regarding any errors.
        /// </summary>
        public bool ValidateSuperPackages { get; set; }

        /// <summary>
        /// If set to true, validates that the performances in a fixed seat package have been added correctly and that the same number of seats exists for each performance and that all package minimums have been met. It should be used after all packages have been added and will return information regarding any errors.
        /// </summary>
        public bool ValidateFSPackages { get; set; }

        /// <summary>
        /// If set to true, validates that the performances in a non fixed seat (NFS) or flex package have been added correctly and that the performance minimums and maximums have been met for both the package and each component performance group.  It should be used after all performances in an NFS or flex package have been added, and will return information regarding any errors.  
        /// </summary>
        public bool ValidateNFSPackages { get; set; }

        /// <summary>
        /// If set to true, confirms that the payment plan applied to the current open order is complete (billing type specified, credit card info recorded) and that the total of all the payments equals the order total.
        /// </summary>
        public bool ValidatePaymentPlan { get; set; }
    }
  
    public partial class CartValidationResponse
    {
        public SuperPackageErrors SuperPackageErrors { get; set; }
        public FSPackageErrors FSPackageErrors { get; set; }
        public NFSPackageErrors NFSPackageErrors { get; set; }
        public PaymentPlanError PaymentPlanError { get; set; }
    }
  
    public partial class CartZone
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public int ZoneGroupId { get; set; }

        public string ShortDescription { get; set; }

        public string Abbreviation { get; set; }

        public int Rank { get; set; }

        public string ZoneTime { get; set; }
    }
  
    public partial class CartZoneMap
    {
        public int Id { get; set; }

        public string Description { get; set; }

        public EntitySummary SeatMap { get; set; }

        public bool Inactive { get; set; }
    }
  
    public partial class CheckoutRequest
    {
        /// <summary>
        /// The full name on the credit card being used for the transaction.
        /// </summary>
        public string CreditCardOwner { get; set; }

        /// <summary>
        /// The account number of the credit card being used for the transaction.
        /// </summary>
        public string CreditCardNumber { get; set; }

        /// <summary>
        /// The payment method to use for checkout.  Must match the account type of the card information provided.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public int CreditCardType { get; set; }

        /// <summary>
        /// The month of the expiration date for the credit card. Required when card details are being provided.
        /// </summary>
        public int CreditCardMonth { get; set; }

        /// <summary>
        /// The year of the expiration date for the credit card. Required when card details are being provided.
        /// </summary>
        public int CreditCardYear { get; set; }

        /// <summary>
        /// The amount of the payment to charge.
        /// If AllowUnderPayment is false, Amount must be equal to the total amount due. This value can never be greater than the amount due.        
        /// </summary>
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// Pass True to allow partial payment of the order.
        /// Pass False to require full payment of the order.        
        /// </summary>
        [Documentation(Required = true)]
        public bool AllowUnderPayment { get; set; }

        /// <summary>
        /// The CVV security code on the credit card used.  This data is used for authorization only and is not stored in the system.
        /// </summary>
        public string CreditCardAuthenticationCode { get; set; }

        /// <summary>
        /// Pass True to authorize credit cards.
        /// Pass False to not authorize credit cards or when saving an unpaid order
        /// </summary>
        public bool Authorize { get; set; }

        /// <summary>
        /// Third party authorization code to be recorded in Tessitura. 
        /// Required if Authorize = False.        
        /// </summary>
        public string AuthorizationCode { get; set; }

        /// <summary>
        /// Optional parameter used to pass 3D Secure values.
        /// The 3D Secure values are passed as a string to this single parameter rather than multiple parameters, e.g. sessionid=xxx&amp;eci=yyy&amp;xid=zzz...
        /// Though no formal rules have been established for this parameter, suggested content includes:
        /// -	sessionid - Tessitura session key
        /// -	eci – Ecommerce indicator
        /// -	xid – 3D Secure transaction id
        /// -	vts – secure code transaction security
        /// -	cavv – cardholder verification value
        /// -	vcsnch[no details available]
        /// -	vcsnca[no details available]
        /// -	vhr[no details available]
        /// </summary>
        public string SecureValues { get; set; }

        /// <summary>
        /// An id of previously stored credit card information for the owner or initiator of the cart. If this value exists, it takes precedance over any passed in credit card information.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_ACCOUNT_DATA", FKColumn = "id", FKResourceName = "Accounts")]
        public int AccountId { get; set; }

        /// <summary>
        /// Optional parameter used to specify the zip code for the credit card’s billing address
        /// </summary>
        public string ZipCode { get; set; }

        /// <summary>
        /// Optional parameter used to specify the address for the credit card’s billing address
        /// </summary>
        public string Address { get; set; }

        /// <summary>
        /// A credit card processor refererence number can be submitted here when an external authorization takes place.  This would allow refunds to be made against this reference number without storing the credit card number.
        /// </summary>
        public string PaymentReference { get; set; }

        /// <summary>
        /// Flag to indicate is this payment should be considered an ECommerce transaction.
        /// </summary>
        public bool ECommerce { get; set; }

        /// <summary>
        /// Flag to indicate if the card details provided should be stored on the constituent record, and tokenized if applicable, during checkout.
        /// </summary>
        public bool? StoreAccount { get; set; }
    }
  
    public partial class CheckoutResponse
    {
        public string Status { get; set; }

        public string Message { get; set; }
    }
  
    public partial class CheckoutWithCardRequest
    {
        /// <summary>
        /// The payment method to use for checkout.  Must match the account type of the card information provided.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PAYMENT_METHOD", FKColumn = "id", FKResourceName = "PaymentMethods")]
        public int CreditCardType { get; set; }

        /// <summary>
        /// The amount of the payment to charge.
        /// If AllowUnderPayment is false, Amount must be equal to the total amount due. This value can never be greater than the amount due.        
        /// </summary>
        [Documentation(Required = true)]
        public decimal Amount { get; set; }

        /// <summary>
        /// Pass True to allow partial payment of the order.
        /// Pass False to require full payment of the order.        
        /// </summary>
        [Documentation(Required = true)]
        public bool AllowUnderPayment { get; set; }

        /// <summary>
        /// Pass True to authorize credit cards.
        /// Pass False to not authorize credit cards or when saving an unpaid order
        /// </summary>
        public bool Authorize { get; set; }

        /// <summary>
        /// Third party authorization code to be recorded in Tessitura. 
        /// Required if Authorize = False.        
        /// </summary>
        public string AuthorizationCode { get; set; }

        /// <summary>
        /// Flag to indicate is this payment should be considered an ECommerce transaction.
        /// </summary>
        public bool ECommerce { get; set; }

        /// <summary>
        /// Data from track one of the swiped credit card.
        /// </summary>
        [Documentation(Required = true)]
        public string CreditCardTrack1 { get; set; }

        /// <summary>
        /// Data from track two of the swiped credit card.
        /// </summary>
        [Documentation(Required = true)]
        public string CreditCardTrack2 { get; set; }

        /// <summary>
        /// Optional parameter used to specify the zip code for the credit card’s billing address
        /// </summary>
        public string ZipCode { get; set; }

        /// <summary>
        /// Flag to indicate if the card details provided should be stored on the constituent record, and tokenized if applicable, during checkout.
        /// </summary>
        public bool? StoreAccount { get; set; }  
    }
  
    public partial class CustomValue
    {
        public int Id { get; set; }

        public string Value { get; set; }
    }
  
    public partial class CustomValues : List<CustomValue>
    {
    }
  
    public partial class DisplayLine
    {
        public string PriceTypeDescription { get; set; }

        public string PriceTypeReasonShortDescription { get; set; }

        public string ZoneShortDescription { get; set; }

        public string SeatLocationDescription { get; set; }

        public int Count { get; set; }

        public decimal Price { get; set; }

        public decimal Total { get; set; }

        public void Format()
        {
            Total = Count*Price;
        }
    }
  
    public partial class DisplayLines : List<DisplayLine>
    {
    }
  
    public partial class EmailTicketsResponse
    {
        /// <summary>
        /// A formatted HTML representation of the ticket elements.
        /// </summary>
        public string TicketsString { get; set; }

        /// <summary>
        /// Attachments for the tickets email, specific the barcode images referenced in the HTML.
        /// </summary>
        public EmailAttachments EmailAttachments { get; set; }
    }
  
    public partial class FSPackageError
    {
        public int PackageId { get; set; }

        public int LineItemId { get; set; }

        public string Error { get; set; }
    }
  
    public partial class FSPackageErrors : List<FSPackageError>
    {
    }
  
    public partial class LoginRequest
    {
        public string LoginName { get; set; }

        public string Password { get; set; }

        /// <summary>
        /// Login type, specified by ID.  This parameter determines which login on a constituent record is evaluated for authentication.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_LOGIN_TYPE", FKColumn = "id", FKResourceName = "LoginTypes")]
        public int LoginTypeId { get; set; }

        /// <summary>
        /// The source code to use for the session. Pass 0 to use the default source code.
        /// </summary>
        [Documentation(Required = true, FKTable = "TX_APPEAL_MEDIA_TYPE", FKColumn = "source_no", FKResourceName = "Sources")]
        public int PromotionCode { get; set; }

        /// <summary>
        /// Login email address. Must match the email address on the login of the type specified by the LoginType parameter.
        /// </summary>
        [Documentation(Required = false)]
        public string EmailAddress { get; set; }

        /// <summary>
        /// Phone number.  Can match any phone number on the constituent record specified by the ConstituentId parameter.
        /// Required when passing a constituent ID.
        /// </summary>
        public string PhoneNumber { get; set; }

        /// <summary>
        /// Postal code.  Can match any postal code on the constituent record specified by the ConstituentId parameter.
        /// A like statement is used to validate the postal code.E.g.submit 97, matches 97232.
        /// Required when passing a constituent ID.
        /// </summary>
        public string PostalCode { get; set; }

        [Documentation(Required = false)]
        public int ConstituentId { get; set; }

        /// <summary>
        /// A login token.  Token must be valid, i.e. not expired.
        /// </summary>
        public string ForgotLoginToken { get; set; }

        /// <summary>
        /// Indicates whether or not user has been authenticated by the external authentication mechanism.  
        /// </summary>
        public bool AlreadyAuthenticated { get; set; }
    }
  
    public partial class NFSPackageError
    {
        public int PackageId { get; set; }

        public int LineItemId { get; set; }

        public int PerformanceGroupId { get; set; }

        public string Error { get; set; }
    }
  
    public partial class NFSPackageErrors : List<NFSPackageError>
    {
    }
  
    public partial class OnAccountBalances : List<OnAccountBalance>
    {
    }

    public partial class OnAccountBalance
    {
        public int ConstituentId { get; set; }

        public int PaymentMethodId { get; set; }

        /// <summary>
        /// The description of the on-account payment method.
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// The total balance of the on-account money for this payment method and constituent disregarding the current session payments
        /// </summary>
        public decimal Balance { get; set; }

        /// <summary>
        /// The amount of the on-account money that is being used in the current session.
        /// </summary>
        public decimal UsedInSession { get; set; }

        /// <summary>
        /// The net balance, taking the current session amount into account.
        /// </summary>
        public decimal CurrentBalance { get; set; }
    }
  
    public partial class PaymentPlan
    {
        public int Id { get; set; }

        public decimal AmountDue { get; set; }

        public int AccountId { get; set; }

        public DateTime? DateDue { get; set; }

        public EntitySummary BillingType { get; set; }

        public PaymentPlanCard Card { get; set; }
    }
  
    public partial class PaymentPlanError
    {
        public int OrderId { get; set; }

        public string Error { get; set; }
    }
  
    public partial class PaymentPlans : List<PaymentPlan>
    {
    }
  
    public partial class PrintOrderRequest
    {
        /// <summary>
        /// Order for which to retrieve ticket information.
        /// Leave blank if generating print information for single line item or sub line item.
        /// Parameter maps to order_no column in T_ORDER.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_ORDER", FKColumn = "order_no", FKResourceName = "Orders")]
        public int? OrderId { get; set; }

        /// <summary>
        /// Ticket design to use for Headers. If included, header elements are returned by the service.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_DESIGN", FKColumn = "deisgn_no", FKResourceName = "Designs")]
        public int? HeaderDesignId { get; set; }

        /// <summary>
        /// Pass True to include receipts for the order
        /// Pass False to exclude receipts
        /// </summary>
        [Documentation(Required = false)]
        public string IncludeReceipts { get; set; }

        /// <summary>
        /// Pass true to reprint already printed tickets. NewTicketNoForReprints control if new ticket numbers are given when reprinting.
        /// Pass false to skip already printed tickets.
        /// </summary>
        public string ReprintInd { get; set; }

        /// <summary>
        /// Ticket design to use for retrieved ticket information.  If design is specified, will override ticket design applied to order items.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_DESIGN", FKColumn = "deisgn_no", FKResourceName = "Designs")]
        public int? TicketDesignId { get; set; }

        /// <summary>
        /// Pass 1 to return ticket element data.  Other modes are used by Print at Home.
        /// </summary>
        public int? Mode { get; set; }

        /// <summary>
        /// The li_seq_no of the line item(s) for which printed ticket information should be retrieved. Use a comma-delimited list of li_seq_nos to retrieve ticket information for multipl line items.
        /// If sublineitem number(s) or order ID is provided, leave blank.
        /// Parameter maps to li_seq_no column in the T_WEB_LINEITEM table.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_LINEITEM", FKColumn = "li_seq_no")]
        public string LiStr { get; set; }

        /// <summary>
        /// The sli_no of the sub line item(s) for which printed ticket information should be retrieved.  Use a comma-delimited list of sli_nos to retrieve ticket information for multiple subline items.
        /// If line item number(s) or order ID is provided, leave blank.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_SUB_LINEITEM", FKColumn = "sli_no", FKResourceName = "SubLineItems")]
        public string SliStr { get; set; }

        /// <summary>
        /// True - if new ticket number should be created if order is reprinting
        /// False - if existing ticket number should be used for reprinted order
        /// </summary>
        [Documentation(Required = true)]
        public string NewTicketNoForReprints { get; set; }

        /// <summary>
        /// Pass "B" for Boca.  
        /// Pass "Z" for Zebra. This will choose the alternate zebra design for the returned elements.
        /// </summary>
        public string PrinterType { get; set; }
    }
  
    public partial class PrintOrderResponse
    {
        public PrintStrings PrintStrings { get; set; }
    }
  
    public partial class PrintStrings : List<string>
    {
    }
  
    public partial class ReceiptStringResponse
    {
        public string ReceiptString { get; set; }

        public EmailAttachments EmailAttachments { get; set; }
    }
  
    public partial class RegisterAddress
    {
        [Documentation(Required = false, FKTable = "TR_ADDRESS_TYPE", FKColumn = "id", FKResourceName = "AddressType")]
        public int? AddressTypeId { get; set; }

        [Documentation(Required = true)]
        public string City { get; set; }

        [Documentation(Required = true)]
        public string PostalCode { get; set; }

        [Documentation(Required = true, FKTable = "TR_STATE", FKColumn = "id", FKResourceName = "State")]
        public string StateId { get; set; }

        [Documentation(Required = true)]
        public string Street1 { get; set; }

        [Documentation(Required = false)]
        public string Street2 { get; set; }

        [Documentation(Required = false)]
        public string Street3 { get; set; }

        [Documentation(Required = false, FKTable = "TR_COUNTRY", FKColumn = "id", FKResourceName = "Country")]
        public int? CountryId { get; set; }
    }
  
    public partial class RegisterAffiliate
    {
        [Documentation(Required = true, FKTable = "TR_AFFILIATION_TYPE", FKColumn = "id", FKResourceName = "AffiliationType")]
        public int? AffiliationTypeId { get; set; }

        [Documentation(Required = true)]
        public int? NameIndicator { get; set; }

        [Documentation(Required = false)]
        public string Note { get; set; }

        [Documentation(Required = false)]
        public string Title { get; set; }

        [Documentation(Required = true)]
        public string LastName { get; set; }

        [Documentation(Required = false)]
        public string MiddleName { get; set; }

        [Documentation(Required = false)]
        public string FirstName { get; set; }

        [Documentation(Required = false, FKTable = "TR_NAMESTATUS", FKColumn = "id", FKResourceName = "NameStatus")]
        public int NameStatusId { get; set; }

        [Documentation(Required = false, FKTable = "TR_PREFIX", FKColumn = "id", FKResourceName = "Prefix")]
        public PrefixSummary Prefix { get; set; }

        [Documentation(Required = false, FKTable = "TR_SUFFIX", FKColumn = "id", FKResourceName = "Suffix")]
        public SuffixSummary Suffix { get; set; }

        [Documentation(Required = false)]
        public string Gender { get; set; }

        [Documentation(Required = false)]
        public string SortName { get; set; }

        [Documentation(Required = true, FKTable = "TR_CUST_TYPE", FKColumn = "id", FKResourceName = "ConstituentType")]
        public int? ConstituentTypeId { get; set; }
    }
  
    public partial class RegisterAffiliates : List<RegisterAffiliate>
    {
    }
  
    public partial class RegisterConstituent
    {
        [Documentation(Required = true)]
        public RegisterAddress Address { get; set; }

        [Documentation(Required = false)]
        public RegisterAffiliates Affiliates { get; set; }

        [Documentation(Required = true, FKTable = "TR_CUST_TYPE", FKColumn = "id", FKResourceName = "ConstituentType")]
        public int ConstituentTypeId { get; set; }

        [Documentation(Required = true)]
        public RegisterElectronicAddress ElectronicAddress { get; set; }

        [Documentation(Required = false, FKTable = "TR_EMRKT_IND", FKColumn = "id", FKResourceName = "EmarketIndicator")]
        public int? EmarketIndicatorId { get; set; }

        [Documentation(Required = false)]
        public string FirstName { get; set; }

        [Documentation(Required = false)]
        public string Gender { get; set; }

        [Documentation(Required = true)]
        public string LastName { get; set; }

        [Documentation(Required = false, FKTable = "TR_MAIL_IND", FKColumn = "id", FKResourceName = "MailIndicator")]
        public int? MailIndicatorId { get; set; }

        [Documentation(Required = false)]
        public string MiddleName { get; set; }

        [Documentation(Required = false, FKTable = "TR_NAMESTATUS", FKColumn = "id", FKResourceName = "NameStatus")]
        public int? NameStatusId { get; set; }

        [Documentation(Required = true, FKTable = "TR_ORIGINAL_SOURCE", FKColumn = "id", FKResourceName = "OriginalSource")]
        public int OriginalSourceId { get; set; }

        [Documentation(Required = false, FKTable = "TR_PHONE_IND", FKColumn = "id", FKResourceName = "PhoneIndicator")]
        public int? PhoneIndicatorId { get; set; }

        [Documentation(Required = false)]
        public RegisterPhones Phones { get; set; }

        [Documentation(Required = false, FKTable = "TR_PREFIX", FKColumn = "id", FKResourceName = "Prefix")]
        public int? PrefixId { get; set; }

        [Documentation(Required = false)]
        public RegisterSalutationRequest Salutation { get; set; }

        [Documentation(Required = false)]
        public string SortName { get; set; }

        [Documentation(Required = false, FKTable = "TR_SUFFIX", FKColumn = "id", FKResourceName = "Suffix")]
        public int? SuffixId { get; set; }

        [Documentation(Required = true)]
        public RegisterWebLogin WebLogin { get; set; }
    }
  
    public partial class RegisterElectronicAddress
    {
        [Documentation(Required = true)]
        public string Address { get; set; }

        [Documentation(Required = false, FKTable = "TR_EADDRESS_TYPE", FKColumn = "id", FKResourceName = "ElectronicAddressType")]
        public int? ElectronicAddressTypeId { get; set; }

        [Documentation(Required = false)]
        public bool? AllowHtmlFormat { get; set; }

        [Documentation(Required = false)]
        public bool? AllowMarketing { get; set; }
    }
  
    public partial class RegisterPhone
    {
        [Documentation(Required = false)]
        public bool? AllowTelemarketing { get; set; }

        [Documentation(Required = false)]
        public string DayEveningIndicator { get; set; }

        [Documentation(Required = true)]
        public string PhoneNumber { get; set; }

        [Documentation(Required = true, FKTable = "TR_PHONE_TYPE", FKColumn = "id", FKResourceName = "PhoneType")]
        public int? PhoneTypeId { get; set; }
    }
  
    public partial class RegisterPhones : List<RegisterPhone>
    {
    }
  
    public partial class RegisterSalutationRequest
    {
        [Documentation(Required = false)]
        public string BusinessTitle { get; set; }

        [Documentation(Required = true)]
        public string EnvelopeSalutation1 { get; set; }

        [Documentation(Required = false)]
        public string EnvelopeSalutation2 { get; set; }

        [Documentation(Required = true)]
        public string LetterSalutation { get; set; }

        [Documentation(Required = false, FKTable = "TR_SIGNOR", FKColumn = "id", FKResourceName = "SalutationType")]
        public int? SalutationTypeId { get; set; }
    }
  
    public partial class RegisterWebLogin
    {
        [Documentation(Required = false, MaxLength = 80)]
        public string Login { get; set; }

        [Documentation(Required = true, FKTable = "TR_LOGIN_TYPE", FKColumn = "id", FKResourceName = "LoginType")]
        public int? LoginTypeId { get; set; }

        [Documentation(Required = true)]
        public string Password { get; set; }
    }
  
    public partial class ReprintRequest
    {
        /// <summary>
        /// The Id of the order to reprint. The order specified must belong to current session's constituent.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int OrderId { get; set; }

        /// <summary>
        /// The ID of the email address to which to send the reprinted Print At Home ticket.  The email address, if specified, must  be owned by the current session's constituent.
        /// By setting this value to 0, the order will be emailed to the primary email address of the authenticated user. When 0 is used, the eaddress associated with the order will not be updated.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_EADDRESS", FKColumn = "address_no", FKResourceName = "ElectronicAddresses")]
        public int EmailAddressId { get; set; }
    }
  
    public partial class ReserveTicketsRequest
    {
        /// <summary>
        /// The price type for the performance.
        /// If multiple seats are being requested different price types can be used for each seat by passing a comma separated list of price types. When using multiple price types, a price type must be specified for each seat even if some seats are using the same price type.For example, if there are 4 seats, two at the Adult and two at the Child price type, 4 price type IDs must be passed.
        /// The price types passed must be valid for the current mode of sale.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public string PriceType { get; set; }

        /// <summary>
        /// Price Type reasons (Comp Codes) for use with price types that require them.
        /// If multiple seats are being requested with different price types, the price type reasons can be specified in a list, matching the price types.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_COMP_CODE", FKColumn = "id", FKResourceName = "PriceTypeReasons")]
        public string PriceTypeReason { get; set; }

        /// <summary>
        /// The ID of the performance number to be added to the cart. 
        /// </summary>
        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "Performances")]
        public int PerformanceId { get; set; }

        /// <summary>
        /// The number of seats to be added to the cart for the request.
        /// </summary>
        [Documentation(Required = true)]
        public int NumberOfSeats { get; set; }

        /// <summary>
        /// The ID number of the desired price zone for the request. A value of 0 can be passed 
        /// When reserving specific seats, the zone of the specified seats overrides whatever zone value is passed here.As the parameter is required but essentially irrelevant, you can pass a value of 0 to meet the requirement.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_ZONE", FKColumn = "zone_no", FKResourceName = "Zones")]
        public int ZoneId { get; set; }

        /// <summary>
        /// Used to refine which seats are selected by the best seat function (including reserving seats held with a hold code).  Special requests are passed as a string of name-value pairs formatted as follows:  name1=value1andname2=value2.  See the special requests section for valid special request  names and values.
        /// </summary>
        public string SpecialRequests { get; set; }

        /// <summary>
        /// If True, the tickets will be added to the cart unseated.
        /// </summary>
        [Documentation(Required = false)]
        public bool Unseated { get; set; }

        /// <summary>
        /// The ID numbers (seat_no) of specific seats to reserve.  Muliple seat numbers can be passed as a comma separated list.
        /// Seats must be in the specificed performance and available. 
        /// </summary>
        [Documentation(Required = false)]
        public string RequestedSeats { get; set; }
    }
  
    public partial class ReserveTicketsResponse
    {
        public int LineItemId { get; set; }

        public int SeatsReserved { get; set; }
    }
  
    public partial class ReturnTicketWithNumberRequest
    {
        /// <summary>
        /// The checksum number for the ticket being returned. If supplied it must match the checksum for the ticket number.
        /// </summary>
        [Documentation(Required = false, FKTable = "TX_SLI_TICKET", FKColumn = "checksum")]
        public string Checksum { get; set; }

        /// <summary>
        /// The ticket number of the ticket being returned.
        /// </summary>
        [Documentation(Required = true, FKTable = "TX_SLI_TICKET", FKColumn = "ticket_no")]
        public int TicketNumber { get; set; }

        /// <summary>
        /// R for return, O for Donate.
        /// </summary>
        [Documentation(Required = true)]
        public string ReturnOrDonate { get; set; }
    }
  
    public partial class ReturnTicketWithSeatRequest
    {
        /// <summary>
        /// The performance number for the ticket being returned. 
        /// </summary>
        [Documentation(Required = true, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "Performances")]
        public int PerformanceId { get; set; }

        /// <summary>
        /// The seat number of the ticket being returned.  
        /// 
        ///Note that seat number is the database ID number of a seat, not the number value assigned to a seat to indicate its location in a venue
        /// </summary>
        [Documentation(Required = true)]
        public int SeatNumber { get; set; }

        /// <summary>
        /// The checksum number for the ticket being returned. If supplied it must match the checksum of the ticket for the performance seat.
        /// </summary>
        [Documentation(Required = false, FKTable = "TX_SLI_TICKET", FKColumn = "checksum")]
        public string Checksum { get; set; }

        /// <summary>
        /// R for return, O for Donate.
        /// </summary>
        [Documentation(Required = true)]
        public string ReturnOrDonate { get; set; }
    }
  
    public partial class RuleBasedFee
    {
        public string CategoryDescription { get; set; }

        public decimal Amount { get; set; }
    }
  
    public partial class RuleBasedFees : List<RuleBasedFee>
    {
    }
  
    public partial class SendCredentialsRequest
    {
        /// <summary>
        /// Email address to search for.
        /// </summary>
        [Documentation(Required = true)]
        public string EmailAddress { get; set; }

        /// <summary>
        /// Login type to search for the email address with in.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_LOGIN_TYPE", FKColumn = "id", FKResourceName = "LoginTypes")]
        public int LoginTypeId { get; set; }
    }
  
    public partial class Session
    {
		public int OrderId { get; set; }
		
        /// <summary>
        /// True if the session has been logged in
        /// </summary>
        public bool IsLoggedIn { get; set; }

        public int ModeOfSaleId { get; set; }

        public int OriginalModeOfSaleId { get; set; }

        public int SourceId { get; set; }

        public SessionLoginInfo LoginInfo { get; set; }

        /// <summary>
        /// Contains a count of each cart product for the session. Also, the date/time of the first seat added to the cart is returned.
        /// </summary>
        public CartInfo CartInfo { get; set; }

        public bool BusinessFacing { get; set; }
    }
  
    public partial class SessionExpirationResponse
    {
        public DateTime Expiration { get; set; }
    }
  
    public partial class SessionInfo
    {
        /// <summary>
        /// A valid batch number.  The batch must be owned by the User and be open or held.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_BATCH", FKColumn = "batch_no", FKResourceName = "BatchMaintenance")]
        public int BatchId { get; set; }

        /// <summary>
        /// The Mode of sale for this cart. Used to determine the validity of products and price types when adding to the cart.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_MOS", FKColumn = "id", FKResourceName = "MOdesOfSale")]
        public int ModeOfSaleId { get; set; }

        /// <summary>
        /// A valid source number. Items created during the session will be marked with this source_no.
        /// </summary>
        [Documentation(Required = true, FKTable = "TX_APPEAL_MEDIA_SOURCE", FKColumn = "source_no", FKResourceName = "Sources")]
        public int PromotionCode { get; set; }
    }
  
    public partial class SessionLoginInfo
    {
        /// <summary>
        /// The constituentId for the session
        /// </summary>
        public int ConstituentId { get; set; }

        /// <summary>
        /// The constituent Id that owns the login that was used to authenticate, if different from the session. For example, a primary affiliate of a household.
        /// </summary>
        public int OriginalConstituentId { get; set; }

        public string UserId { get; set; }

        /// <summary>
        /// This value will be ‘P’ (Permanent) or ‘T’ (Temporary), indicating whether the login is a temporary one or not.
        /// </summary>
        public string Status { get; set; }

        public int FailedAttempts { get; set; }

        public DateTime? LockedDate { get; set; }

        public string ElectronicAddress { get; set; }
    }
  
    public partial class SessionRequest
    {
        /// <summary>
        /// Specifies the IP Address to be stored in the T_WEB_SESSION_SESSION table.
        /// </summary>
        [Documentation(Required = true)]
        public string IpAddress { get; set; }

        /// <summary>
        /// The business unit for this session.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_BU", FKColumn = "id", FKResourceName = "BusinessUnits")]
        public int BusinessUnitId { get; set; }

        /// <summary>
        /// The organization name for this session. Must match the description column for a row in TR_ORGANIZATION.
        /// </summary>
        [Documentation(Required = false)]
        public string Organization { get; set; }
    }
  
    public partial class SessionResponse
    {
        public string SessionKey { get; set; }
    }
  
    public partial class SessionVariables : List<SessionVariable>
    {
    }

    public partial class SessionVariable
    {
        public string Name { get; set; }

        public string Value { get; set; }
    }
  
    public partial class SessionWebLogin
    {
        [Documentation(Required = false)]
        public DateTime? ConstituentUpdateDate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public DateTime? CreatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreateLocation { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public string CreatedBy { get; set; }

        [Documentation(Required = true)]
        public Entity Constituent { get; set; }

        [Documentation(Required = false, FKTable = "T_EADDRESS", FKColumn = "eaddress_no", FKResourceName = "ElectronicAddresses")]
        public Entity Email { get; set; }

        [Documentation(Required = true)]
        public int FailedAttempts { get; set; }

        [Documentation(Required = true)]
        public bool? Inactive { get; set; }

        [Documentation(Required = false)]
        public DateTime? LastLoginDate { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public DateTime? UpdatedDateTime { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = false, NotesForPost = "Auto-assigned", NotesForPut = "Auto-assigned")]
        public string UpdatedBy { get; set; }

        [Documentation(Required = false)]
        public DateTime? LockedDate { get; set; }

        [Documentation(Required = true, MaxLength = 80)]
        public string Login { get; set; }

        [Documentation(RequiredForPost = true, MaxLength = 40, Description = "Required for POST")]
        public string Password { get; set; }

        [Documentation(RequiredForPost = false, RequiredForPut = true, NotesForPost = "Auto-assigned", NotesForPut = "Non-updatable")]
        public int? Id { get; set; }

        [Documentation(Required = true, FKTable = "TR_LOGIN_TYPE", FKColumn = "id", FKResourceName = "LoginTypes")]
        public LoginTypeSummary LoginType { get; set; }

        [Documentation(Required = true)]
        public bool PrimaryIndicator { get; set; }

        [Documentation(Required = true)]
        public bool? TemporaryIndicator { get; set; }

        public bool EditIndicator { get; set; }
    }
  
    public partial class SetConstituentRequest
    {
        /// <summary>
        /// The Id of the constituent to set for the cart. 
        /// </summary>
        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int ConstituentId { get; set; }

        /// <summary>
        /// Used to set a specific constituent when the TRANSACT_AS_HOUSEHOLD_ORDER entry in T_DEFAULTS is set to "Prompt".
        /// </summary>
        public bool OverridePrompt { get; set; }
    }
  
    public partial class SetSessionExpirationRequest
    {
        /// <summary>
        /// The date/time to consider the tickets in the cart expired.
        /// 
        /// Either Expiration or TimeOffset must be supplied.
        /// </summary>
        public DateTime? Expiration { get; set; }
        /// <summary>
        /// Number of seconds by which the expiration should be altered. Positive values increase the time until expiration and negative values decrease the time until expiration.
        /// 
        /// Either Expiration or TimeOffset must be supplied.
        /// </summary>
        public int TimeOffset { get; set; }
    }
  
    public partial class ShiftContextRequest
    {
 
        public int ContextConstituentId { get; set; }
    }
  
    public partial class SourceRequest
    {
        /// <summary>
        /// The source number to apply to the lineitem.
        /// </summary>
        [Documentation(Required = true, FKTable = "TX_APPEAL_MEDIA_TYPE", FKColumn = "source_no", FKResourceName = "Sources")]
        public int SourceId { get; set; }
    }
  
    public partial class SourceResponse
    {
        public EntitySummary OldSource { get; set; }
        public EntitySummary NewSource { get; set; }
    }
  
    [Serializable]
    public partial class SpecialRequest
    {
        /// <summary>
        /// The starting price of the price range requested
        /// </summary>
        public decimal? StartPrice { get; set; }

        /// <summary>
        /// The ending price of the price range requested
        /// </summary>
        public decimal? EndPrice { get; set; }

        /// <summary>
        /// The number of wheelchair seats requested
        /// </summary>
        public int? WheelchairSeats { get; set; }

        /// <summary>
        /// The request for Aisle seats, one of (L)eft, (R)ight, (A)ll, (N)one
        /// </summary>
        public string AisleSeat { get; set; }

        /// <summary>
        /// The number of contigious seats requested
        /// </summary>
        public int? ContiguousSeats { get; set; }

        /// <summary>
        /// The starting row for the range of rows requested
        /// </summary>
        public string StartingRow { get; set; }

        /// <summary>
        /// The ending row for the range of rows requested
        /// </summary>
        public string EndingRow { get; set; }

        /// <summary>
        /// The starting seat number for the range of seats requested
        /// </summary>
        public string StartingSeat { get; set; }

        /// <summary>
        /// Tne ending seat number for the range of seats requested
        /// </summary>
        public string EndingSeat { get; set; }

        /// <summary>
        /// The id of the hold code to reserve
        /// </summary>
        public int? HoldCode { get; set; }

        /// <summary>
        /// If true, requests no stairs
        /// </summary>
        public bool? NoStairs { get; set; }

        /// <summary>
        /// If true, allows best seating to leave single seats in the seat map
        /// </summary>
        public bool? LeaveSingleSeats { get; set; }

        /// <summary>
        /// Line item notes
        /// </summary>
        public string Notes { get; set; }

        /// <summary>
        /// The id of the Line item category from TR_LINEITEM_CATEGORY
        /// </summary>
        public EntitySummary Category { get; set; }
    }
  
    public partial class SuperPackageError
    {
        public int SuperPackageLineItemId { get; set; }

        public string Error { get; set; }
    }
  
    public partial class SuperPackageErrors : List<SuperPackageError>
    {
    }
  
    public partial class TicketElement
    {
        public int SliNo { get; set; }

        public string Val { get; set; }

        public int EleSlNo { get; set; }

        public string EleType { get; set; }

        public int? EleX1 { get; set; }

        public int? EleY1 { get; set; }

        public string Mask { get; set; }

        public int? FontNo { get; set; }

        public string FontRotation { get; set; }

        public int? FontX { get; set; }

        public int? FontY { get; set; }

        public int? BoxX { get; set; }

        public int? BoxY { get; set; }

        public int? LineWidth { get; set; }

        public string NegPrintInd { get; set; }

        public int? DataLen { get; set; }

        public string DataType { get; set; }

        public int? RectHeight { get; set; }

        public int? RectWidth { get; set; }

        public int? LineHeight { get; set; }

        public int? LineThick { get; set; }

        public int? TextWidth { get; set; }

        public int? TextHeight { get; set; }

        public string ReprintInd { get; set; }

        public int? EleHeight { get; set; }

        public int? EleWidth { get; set; }

        public string JustifyText { get; set; }

        public string BarcodeInd { get; set; }

        public int? BarcodeTypeNo { get; set; }

        public string BarcodeInterpInd { get; set; }

        public int? BarcodeExpand { get; set; }

        public int? BarcodeHeight { get; set; }

        public byte[] BarcodeImage { get; set; }

        public int? DesignNo { get; set; }

        public string Description { get; set; }

        public string ElementType { get; set; }

        public int? OrderNo { get; set; }

        public int? IdentId { get; set; }

        public int? CompositeTicketNo { get; set; }

        public int? QrScaling { get; set; }
    }
  
    public partial class TicketElements : List<TicketElement>
    {
    }
  
    public partial class TransferSessionRequest
    {
        [Documentation(Required = true)]
        public string NewSessionKey { get; set; }
    }
  
    public partial class UpdatePriceRequest
    {
        /// <summary>
        /// The new price for the sub lineitems.
        /// </summary>
        [Documentation(RequiredForPut = true)]
        public decimal NewPrice { get; set; } 
    }
  
    public partial class UpdatePriceResponse
    {
        public int LineItemId { get; set; }
        public int SubLineItemId { get; set; }
        public int PerformanceId { get; set; }
        public int PackageId { get; set; }
        public int ZoneId { get; set; }
        public int SeatNumber { get; set; }

        /// <summary>
        /// The new price for the sub lineitem. Will be NULL if an error occurred.
        /// </summary>
        public decimal? DueAmount { get; set; }

        public int PriceTypeId { get; set; }

        /// <summary>
        /// The original price of the sub lineitem. Will be NULL if an error occurred.
        /// </summary>
        public decimal? NonDiscountPrice { get; set; }

        /// <summary>
        /// Will be 'S' if the price or discount is applied, 'E' if it could not be.
        /// </summary>
        public string Status { get; set; }

        /// <summary>
        /// A description of why the price or discount could not be applied, if an error occurred. Will be present if Status is 'E'
        /// </summary>
        public string Error { get; set; }

    }
  
    public partial class UpdatePriceResponses : List<UpdatePriceResponse>
    {
         
    }
  

    public partial class UpdatePriceTypeRequest
    {
        /// <summary>
        /// Used to filter which sub line items get updated, optional. Only sub lineitems with this price type will get the new one specified.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public int? OriginalPriceType { get; set; }

        /// <summary>
        /// The new price type to apply. Must be valid for the current MOS and for the current price zone of the seats.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public int NewPriceType { get; set; }

        /// <summary>
        /// The price type reason (comp code) to apply. Required if the price type specified requires reasons.
        /// </summary>
        [Documentation(Required = false, FKTable = "TR_COMP_CODE", FKColumn = "id", FKResourceName = "PriceTypeReasons")]
        public int? NewPriceTypeReason { get; set; }
    }
  
    public partial class UpdateRecipientRequest
    {
        /// <summary>
        /// The Id of the constituent to be the recipient of this ticket.  Pass 0 to remove an existing recipient.
        /// </summary>
        [Documentation(Required = true, FKTable = "T_CUSTOMER", FKColumn = "customer_no", FKResourceName = "Constituents")]
        public int RecipientId { get; set; }
    }
  
    public partial class UserDefinedFee
    {
        public int ItemFeeId { get; set; }

        public string Description { get; set; }

        public string CategoryDescription { get; set; }

        public decimal Amount { get; set; }
    }
  
    public partial class ValidateLimitsRequest
    {
        /// <summary>
        /// PerformanceId to validate.
        /// 
        /// Either a performance or package ID must be supplied.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_PERF", FKColumn = "perf_no", FKResourceName = "Performances")]
        public int PerformanceId { get; set; }

        /// <summary>
        /// PackageId to validate.
        /// 
        /// Either a performance or package ID must be supplied.
        /// </summary>
        [Documentation(Required = false, FKTable = "T_PKG", FKColumn = "pkg_no", FKResourceName = "Packages")]
        public int PackageId { get; set; }

        /// <summary>
        /// Price Type to validate
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_PRICE_TYPE", FKColumn = "id", FKResourceName = "PriceTypes")]
        public int PriceTypeId { get; set; }

        /// <summary>
        /// Number of seats requested to validate against offer ticket limits.
        /// </summary>
        [Documentation(Required = true)]
        public int SeatCount { get; set; }
    }
  
    public partial class WebConstituentDisplaySummaries : List<WebConstituentDisplaySummary>
    {
    }
  
    public partial class WebConstituentDisplaySummary
    {
        public int? Id { get; set; }

        public string DisplayName { get; set; }
    }
  
    public partial class WebDeliveryMethod
    {
        public int Id { get; set; }

        public string Description { get; set; }

        /// <summary>
        /// Indicates if there are restrictions on this delivery method. The possible flag values are:  N (no restrictions), T (time restrictions), or F (foreign country restrictions).
        /// </summary>
        public string Restricted { get; set; }

        /// <summary>
        /// Indicates that this delivery method is the default for the mode of sale.
        /// </summary>
        public string Default { get; set; }

        /// <summary>
        /// Indicates that this delivery method is setup for Print at Home.
        /// </summary>
        public string PrintAtHome { get; set; }

        /// <summary>
        /// Indicates that this delivery method requires an address on the constituent account.
        /// </summary>
        public string RequireAddress { get; set; }

        /// <summary>
        /// Indicates if this delivery method is inactive
        /// </summary>
        public bool Inactive { get; set; }
    }
  
    public partial class WebDeliveryMethods : List<WebDeliveryMethod>
    {
    }
  
    public partial class WebLoginUpdateRequest
    {   
        /// <summary>
        /// Current login user name, must be the login used to log into the current session.
        /// </summary>
        [Documentation(RequiredForPut = true, FKTable = "T_CUST_LOGIN", FKColumn = "login", FKResourceName = "WebLogins")]
        public string LoginName { get; set; }
        
        /// <summary>
        /// New login username
        /// </summary>
        [Documentation(RequiredForPut = true, FKTable = "T_CUST_LOGIN", FKColumn = "login", FKResourceName = "WebLogins")]
        public string NewLoginName { get; set; }

        /// <summary>
        /// Current login password
        /// 
        /// Not required when resetting a temporary password or a login where the password is an empty string.
        /// </summary>
        [Documentation(RequiredForPut = false)]
        public string Password { get; set; }
        
        /// <summary>
        /// New login password
        /// </summary>
        [Documentation(RequiredForPut = true)]
        public string NewPassword { get; set; }
        
        /// <summary>
        /// Current login email address
        /// </summary>
        [Documentation(RequiredForPut = true, FKTable = "T_EADDRESS", FKColumn = "address", FKResourceName = "ElectronicAddresses")]
        public string EmailAddress { get; set; }
        
        /// <summary>
        /// New email address for the login. Must not be already associated with a login of the same type. If the email does not exist on the constituent's account, it will be added.
        /// </summary>
        [Documentation(RequiredForPut = true)]
        public string NewEmailAddress { get; set; }
        
        /// <summary>
        /// The type of the login. This determines which login on a constituent account is updated.
        /// </summary>
        [Documentation(RequiredForPut = true, FKTable = "TR_LOGIN_TYPE", FKColumn = "id", FKResourceName = "LoginTypes")]
        public int LoginTypeId { get; set; }
    }
  
    public partial class WebOrderSearchResponses : List<WebOrderSearchResponse>
    {
    }

    public partial class WebOrderSearchResponse
    {
        public int ConstituentId { get; set; }

        public int OrderId { get; set; }

        public DateTime? OrderDate { get; set; }

        public short ModeOfSaleId { get; set; }

        public decimal TotalDueAmount { get; set; }

        public decimal TotalPaidAmount { get; set; }

        public int LockedInBatch { get; set; }

        public bool IsRolloverOrder { get; set; }

        public DateTime? CreateDate { get; set; }

        public string LockedBySessionKey { get; set; }

        public bool IsOkToPrint { get; set; }

        public int NumberOfUnprintedSeats { get; set; }
    }
  
    public partial class WebPromoCode
    {
        /// <summary>
        /// The new Mode of Sale that will be applied to the session if this source is used.
        /// </summary>
        public int ModeOfSaleId { get; set; }

        /// <summary>
        /// Indicates that this source's MOS change should override any rank-based MOS change.
        /// </summary>
        public string OverrideRankIndicator { get; set; }

        /// <summary>
        /// The Text promo code for the source.
        /// </summary>
        public string PromoCode { get; set; }

        /// <summary>
        /// The date that this source code was promoted to the constituent's record, if any.
        /// </summary>
        public DateTime? PromotionDate { get; set; }

        /// <summary>
        /// The numeric source and description
        /// </summary>
        public SourceSummary Source { get; set; }

        public string Text1 { get; set; }

        public string Text2 { get; set; }

        public string Text3 { get; set; }

        public string Text4 { get; set; }

        public string Text5 { get; set; }

        public string Text6 { get; set; }
    }
  
    public partial class WebPromoCodeRequest
    {
        /// <summary>
        /// The text promo code to return.
        /// 
        /// Either the PromoCodeString or the PromoCode is required.
        /// </summary>
        public string PromoCodeString { get; set; }

        /// <summary>
        /// The numeric promo code (source) to return.
        /// 
        /// Either the PromoCodeString or the PromoCode is required.
        /// </summary>
        public int? PromoCode { get; set; }
    }
  
    public partial class WebPromoCodes : List<WebPromoCode>
    {
    }
  
    public partial class PaymentPlanCard
    {
        [Documentation(NotesForPost = "Required if tokenization is enabled")]
        public int? PaymentMethodGroupId { get; set; }

        public string Name { get; set; }

        [Documentation(Required = true)]
        public string Number { get; set; }

        [Documentation(Required = true)]
        public int ExpiryMonth { get; set; }

        [Documentation(Required = true)]
        public int ExpiryYear { get; set; }
    }
  
    public partial class PaymentPlanInstallmentRequest
    {
        /// <summary>
        /// The list of installment dates and amounts.  The total amount in this collection must equal the cart due total.
        /// </summary>
        [Documentation(Required = true)]
        public List<PaymentPlanInstallment> PaymentPlanInstallments { get; set; }

        /// <summary>
        /// The account to use for billing.
        /// </summary>
        public int? AccountId { get; set; }

        /// <summary>
        /// The Credit card to use for the payment plan. Required if the specified billing type is marked as "Auto Bill" and an AccountId is not being passed in.
        /// </summary>
        public PaymentPlanCard Card { get; set; }

        /// <summary>
        /// The billing type for this plan.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_BILLING_TYPE", FKColumn = "id", FKResourceName = "BillingTypes")]
        public int BillingTypeId { get; set; }
    }

    public partial class PaymentPlanInstallment
    {
        /// <summary>
        /// The date for this installment.
        /// </summary>
        [Documentation(Required = true)]
        public DateTime? DueDate { get; set; }

        /// <summary>
        /// The amount for this installment.
        /// </summary>
        [Documentation(Required = true)]
        public decimal Amount { get; set; }
    }
  
    public partial class PaymentPlanRequest
    {
        /// <summary>
        /// The Start Date for the schedule.
        /// </summary>
        [Documentation(Required = true)]
        public DateTime? StartDate { get; set; }

        /// <summary>
        /// The End Date for the schedule
        /// </summary>
        [Documentation(Required = true)]
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// The desired number of payments.
        /// </summary>
        [Documentation(Required = true)]
        public int? NumberOfPayments { get; set; }

        /// <summary>
        /// The account to use for billing.
        /// </summary>
        public int? AccountId { get; set; }

        /// <summary>
        /// The Credit card to use for the payment plan. Required if the specified billing type is marked as "Auto Bill" and an AccountId is not being passed in.
        /// </summary>
        public PaymentPlanCard Card { get; set; }

        /// <summary>
        /// The billing type for the payment plan.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_BILLING_TYPE", FKColumn = "id", FKResourceName = "BillingTypes")]
        public int BillingTypeId { get; set; }
    }
  
    public partial class PaymentPlanScheduleRequest
    {
        /// <summary>
        /// The Start Date for the schedule.
        /// </summary>
        [Documentation(Required = true)]
        public DateTime? StartDate { get; set; }

        /// <summary>
        /// The End Date for the schedule
        /// </summary>
        [Documentation(Required = true)]
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// The Billing Schedule to use to create this plan.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_BILLING_SCHEDULE", FKColumn = "id", FKResourceName = "BillingSchedules")]
        public int? BillingScheduleId { get; set; }

        /// <summary>
        /// The account to use for billing.
        /// </summary>
        public int? AccountId { get; set; }

        /// <summary>
        /// The Credit card to use for the payment plan. Required if the specified billing type is marked as "Auto Bill" and an AccountId is not being passed in.
        /// </summary>
        public PaymentPlanCard Card { get; set; }

        /// <summary>
        /// The billing type for this plan.
        /// </summary>
        [Documentation(Required = true, FKTable = "TR_BILLING_TYPE", FKColumn = "id", FKResourceName = "BillingTypes")]
        public int BillingTypeId { get; set; }

        /// <summary>
        /// If supplied, this value will be used for the amount to schedule instead of the cart total. Any additional amount due in the cart will be included in a payment due on the cart date.
        /// </summary>
        [Documentation(Required = false)]
        public decimal? OverrideAmountToSchedule { get; set; }
    }
 
}
