/* Options:
Date: 2025-10-31 02:04:02
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: GetSalesPackageDiscountsRequest.*
//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 GetSalesPackageInstallmentsDto
        : ApiDtoBase
    {
        public virtual int PackageId { get; set; }
    }
}
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/{PackageId}/installments", "GET")]
    public partial class GetSalesPackageDiscountsRequest
        : GetSalesPackageInstallmentsDto, 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 package plans for
        ///
        [ApiMember(DataType="string", Description="ID # of store to get package plans for", IsRequired=true, Name="StoreId", ParameterType="query")]
        public virtual int? StoreId { get; set; }
        ///
        ///ID # of package to get installment plans for
        ///
        [ApiMember(DataType="string", Description="ID # of package to get installment plans for", IsRequired=true, Name="PackageId", ParameterType="path")]
        public virtual int PackageId { get; set; }
        public virtual int? RestrictedId { get; set; }
        public virtual RestrictedResourceType RestrictedResourceType { get; set; }
    }
}