/* Options:
Date: 2025-10-31 16:00:23
Version: 6.50
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://clubready.com/api/current
//GlobalNamespace: 
//MakePartial: True
//MakeVirtual: True
//MakeInternal: False
//MakeDataContractsExtensible: False
//AddNullableAnnotations: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//InitializeCollections: True
//ExportValueTypes: False
IncludeTypes: GetSalesPackagesRequest.*
//ExcludeTypes: 
//AddNamespaces: 
//AddDefaultXmlNamespace: http://schemas.servicestack.net/types
*/
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using ClubReady.Web.Api;
using ClubReady.Core.Api;
using ClubReady.Core.Api.Models;
using ClubReady.Web.Api.Sales.Model;
namespace ClubReady.Core.Api
{
    public partial class ApiDtoBase
        : IApiDtoBase
    {
        public virtual string ApiKey { get; set; }
        public virtual int? StoreId { get; set; }
        public virtual int? ChainId { get; set; }
    }
    public partial interface IApiDtoBase
    {
        string ApiKey { get; set; }
        int? StoreId { get; set; }
        int? ChainId { get; set; }
    }
}
namespace ClubReady.Core.Api.Models
{
    public partial class GetSalesPackagesRequestDto
        : ApiDtoBase
    {
    }
}
namespace ClubReady.Web.Api
{
    public partial interface IApiKeyEndpoint
    {
        string ApiKey { get; set; }
    }
    public partial interface IRestrictedApiRequest
        : IApiKeyEndpoint
    {
        int? RestrictedId { get; set; }
        RestrictedResourceType RestrictedResourceType { get; set; }
    }
    public enum RestrictedResourceType
    {
        Store,
        Chain,
        User,
        Undefined,
    }
}
namespace ClubReady.Web.Api.Sales.Model
{
    [Route("/sales/packages", "GET")]
    public partial class GetSalesPackagesRequest
        : GetSalesPackagesRequestDto, IRestrictedApiRequest
    {
        ///
        ///IP address of the end user
        ///
        [ApiMember(Description="IP address of the end user", Name="X-Forwarded-For", ParameterType="header")]
        public virtual string XForwardedFor { get; set; }
        ///
        ///Api Key - grants access to resources
        ///
        [ApiMember(DataType="string", Description="Api Key - grants access to resources", IsRequired=true, Name="ApiKey", ParameterType="query")]
        public virtual string ApiKey { get; set; }
        ///
        ///ID # of store to get packages for
        ///
        [ApiMember(DataType="string", Description="ID # of store to get packages for", IsRequired=true, Name="StoreId", ParameterType="query")]
        public virtual int? StoreId { get; set; }
        ///
        ///ID # of the user to get packages for
        ///
        [ApiMember(DataType="integer", Description="ID # of the user to get packages for", Name="UserId", ParameterType="query")]
        public virtual int? UserId { get; set; }
        ///
        ///The filter type which will used for packages credit (Class = 1, ClassSchedule = 2, SessionSize = 3)
        ///
        [ApiMember(DataType="integer", Description="The filter type which will used for packages credit (Class = 1, ClassSchedule = 2, SessionSize = 3)", Name="CreditFilterType", ParameterType="query")]
        public virtual int? CreditFilterType { get; set; }
        ///
        ///ClassId or ClassScheduleId or SessionSizeId packages which drop credits
        ///
        [ApiMember(DataType="integer", Description="ClassId or ClassScheduleId or SessionSizeId packages which drop credits", Name="CreditFilterId", ParameterType="query")]
        public virtual int? CreditFilterId { get; set; }
        public virtual int? RestrictedId { get; set; }
        public virtual RestrictedResourceType RestrictedResourceType { get; set; }
        ///
        ///Show packages enabled for In App purchase. True or False
        ///
        [ApiMember(DataType="string", Description="Show packages enabled for In App purchase. True or False", Name="InApp", ParameterType="query")]
        public virtual bool InApp { get; set; }
    }
}