| POST,GET | /api/Member/GetMembersForAccessControl |
|---|
import Foundation
import ServiceStack
public class AccessControlMembers : Codable
{
public var members:[AccessControlMember] = []
public var schedules:[Schedule] = []
public var branch:Branch?
required public init(){}
}
public class AccessControlMember : Codable
{
public var memberId:Int?
public var enrolmentId:Int?
public var branchId:Int?
public var membershipState:MembershipState?
public var membershipNumber:String?
public var cardNumber:String?
public var forenames:String?
public var surname:String?
public var multiSiteAccess:Bool?
public var useExternalStatus:Bool?
public var externalStatus:ExternalStatus?
public var membershipTypeName:String?
public var startDate:Date?
public var endDate:Date?
public var scheduleId:Int?
public var sessionsRemaining:Int?
public var lastAttendance:Date?
public var memberAccess:MemberAccess?
required public init(){}
}
public enum MembershipState : String, Codable
{
case Prospect
case Active
case Expired
case Cancelled
case PaymentRequired
case Suspended
}
public enum ExternalStatus : String, Codable
{
case Off
case Active
case Pending
case CancelledInsideContract
case CancelledOutsideContract
case WithDebtRecovery
case Suspended
}
public enum MemberAccess : Int, Codable
{
case AccessAllowed = 1
case NoAccess = 2
case NoMultiSiteAccess = 3
case NoSessions = 4
case NoScheduleAccess = 5
case NoAccessTimeLimitExceeded = 6
case Suspended = 7
case MemberHasDebt = 8
}
public class Schedule : Codable
{
public var scheduleId:Int?
public var name:String?
public var Description:String?
@TimeSpan public var mondayFrom:TimeInterval?
@TimeSpan public var mondayTo:TimeInterval?
@TimeSpan public var tuesdayFrom:TimeInterval?
@TimeSpan public var tuesdayTo:TimeInterval?
@TimeSpan public var wednesdayFrom:TimeInterval?
@TimeSpan public var wednesdayTo:TimeInterval?
@TimeSpan public var thursdayFrom:TimeInterval?
@TimeSpan public var thursdayTo:TimeInterval?
@TimeSpan public var fridayFrom:TimeInterval?
@TimeSpan public var fridayTo:TimeInterval?
@TimeSpan public var saturdayFrom:TimeInterval?
@TimeSpan public var saturdayTo:TimeInterval?
@TimeSpan public var sundayFrom:TimeInterval?
@TimeSpan public var sundayTo:TimeInterval?
public var scheduleType:Int?
public var branchId:Int?
public var deleted:Bool?
public var demo:Bool?
public var monday:Bool?
public var tuesday:Bool?
public var wednesday:Bool?
public var thursday:Bool?
public var friday:Bool?
public var saturday:Bool?
public var sunday:Bool?
@TimeSpan public var mondayTotalTime:TimeInterval?
@TimeSpan public var tuesdayTotalTime:TimeInterval?
@TimeSpan public var wednesdayTotalTime:TimeInterval?
@TimeSpan public var thursdayTotalTime:TimeInterval?
@TimeSpan public var fridayTotalTime:TimeInterval?
@TimeSpan public var saturdayTotalTime:TimeInterval?
@TimeSpan public var sundayTotalTime:TimeInterval?
@TimeSpan public var totalTime:TimeInterval?
required public init(){}
}
public class Branch : Codable
{
public var branchId:Int?
public var branchType:BranchType?
public var name:String?
public var `prefix`:String?
public var companyName:String?
public var companyAddress:String?
public var companyOfficialName:String?
public var directDebitReference:String?
public var fastDDReference:String?
public var fastDDPlatinumRef:String?
public var style:String?
public var publicKey:String?
public var privateKey:String?
public var trialStart:Date?
public var trialEnd:Date?
public var paymentStartDate:Date?
public var inTrial:Bool?
public var useFreeText:Bool?
public var freeTextTitle:String?
public var useMembershipTypes:Bool?
public var ddUserName:String?
public var ddPassword:String?
public var ddServiceUser:String?
public var dfcUserName:String?
public var dfcPassword:String?
public var dfcClubNumber:String?
public var companyEmail:String?
public var smsOriginator:String?
public var languageId:Int?
public var vatRate:Double?
public var swipeAction:Int?
public var modules:Module?
public var useCreditBalance:Bool?
public var allowNegativeBalance:Bool?
public var defaultCreditLimit:Double?
public var applicationType:ApplicationType?
public var externalProviderWarning:String?
public var domain:String?
public var mobileDomain:String?
public var onlineBookingTimetableLimit:Int?
public var onlineBookingCancellationLimit:Int?
public var onlineBookingLimit:Int?
public var feature:Feature?
public var timeZone:String?
public var culture:String?
public var country:String?
public var iso3166Country:Iso3166Country?
public var currencyCulture:String?
public var showGoCardlessAd:Bool?
public var goCardlessSaving:Double?
public var sroAddress:String?
public var mcaClubNo:String?
public var mcaClubRef:String?
public var twilioNumber:String?
public var telephone:String?
public var transferred:Bool?
public var onlineBookingAllowNonActives:Bool?
public var memberLimit:Int?
public var sortCode:String?
public var accountNumber:String?
public var website:String?
public var sendSMSAppointmentRemindersDefault:Bool?
public var sendSMSBookingReminders:Bool?
public var giftAid:Bool?
@TimeSpan public var globalBookingStartTime:TimeInterval?
@TimeSpan public var globalBookingEndTime:TimeInterval?
public var bookingMinuteIncrements:Int?
public var cancelReason:String?
public var cancelFurther:String?
public var cancelDate:Date?
public var directDebitFee:Double?
public var creditCardFee:Double?
public var smsPriceAdjustment:Double?
public var bookingsPayLinkOnTrack:Bool?
public var accessControlTimeLimit:Int?
public var minimiser:BranchMinimiser?
public var autoGenerateLicenses:Bool?
public var terms:String?
public var fingerprintThreshold:Int?
public var fingerprintMatcherThreshold:Int?
public var autoShutoff:Bool?
public var primaryColors:String?
public var hasColors:Bool?
public var primaryColor:String?
public var secondaryColor:String?
public var backgroundColor:String?
public var headerTopColor:String?
public var headerBottomColor:String?
public var sideLeftColor:String?
public var sideRightColor:String?
public var sideFontColor:String?
public var sideFontActiveColor:String?
public var extWebBackgroundColor:String?
public var extWebTextColor:String?
public var extWebTintBackColor:String?
public var extWebHighlightBackColor:String?
public var extWebTabBackColor:String?
public var headingColor:String?
public var reportFormat:ReportFormat?
public var fixPayments:Bool?
public var fixPaymentSchedle:String?
public var appFeature:AppFeature?
public var signInScreenFeature:SignInScreenFeature?
public var appOptions:String?
public var companyDescription:String?
public var capacity:Int?
public var monthlySalesTarget:Int?
public var bookingAccessTimeLimit:Int?
public var facebook:String?
public var twitter:String?
public var instagram:String?
public var youTube:String?
public var tikTok:String?
public var shopify:String?
public var minimumMemberAge:Int?
public var termsAndConditionsVersionDate:Date?
public var termsAndConditionsAcceptedDate:Date?
public var termsAndConditionsAccepted:Bool?
public var siteUrl:String?
public var isUsingSmartDebit:Bool?
public var isUsingDfc:Bool?
public var isSouthAfrica:Bool?
public var smartDebitConfigured:Bool?
public var dfcConfigured:Bool?
public var usingPaymentMethods:Bool?
public var smsPrefix:String?
public var logo:String?
public var logoThumbnail:String?
public var logoHash:String?
public var sendMarketingInviteWhenMemberAdded:Bool?
public var sendMarketingInviteWhenMemberJoinedOnline:Bool?
public var marketingComplianceManagedExternally:Bool?
public var onlineBookingAllowWaitingList:Bool?
public var onlineMultiSiteEnabled:Bool?
public var canBookOnline:Bool?
public var publicMembershipTypes:Int?
public var trustedBranches:Int?
public var isAddingProspects:Bool?
public var isSellingMemberships:Bool?
public var isCreatingTasks:Bool?
public var isCreatingAppointments:Bool?
public var isBookingClasses:Bool?
public var isRegisteringAttendance:Bool?
public var isSellingProducts:Bool?
public var isSendingEmails:Bool?
public var isSendingSMS:Bool?
public var isUsingAutomation:Bool?
public var deductSessionsOnBooking:Bool?
public var showTrustedBranchBookings:Bool?
public var score:Int?
public var applicationId:String?
public var iOSAppLink:String?
public var androidAppLink:String?
required public init(){}
}
public enum BranchType : String, Codable
{
case DebitFinance
case SmartDebit
case Standard
case Root
case Reseller
case Referrer
}
// @Flags()
public enum Module : Int, Codable
{
case Standard = 0
case Bookings = 1
}
public enum ApplicationType : Int, Codable
{
case Gym = 1
case Golf = 2
case Dance = 3
case Soccer = 4
case Vanilla = 5
case Association = 6
case MartialArts = 7
case Gymnastics = 8
case Swimming = 9
case Nurseries = 10
case Racquet = 11
case SubscriptionBox = 12
case Clinic = 13
case Wellness = 14
case HealthAndBeauty = 15
case Climbing = 16
case AfterSchoolClub = 17
case PersonalTrainer = 18
}
// @Flags()
public enum Feature : Int, Codable
{
case None = 0
case Standard = 1
case Bookings = 2
case Rota = 4
case GoCardless = 8
case HomeScreen = 16
case EPos = 32
case Attendance = 64
case Sales = 128
case PaymentCollections = 256
case MailChimp = 512
case MultiSite = 1024
case AccountingDashboard = 2048
case OtherDashboards = 4096
case Reports = 8192
case AdvancedAccounting = 16384
case MemberLicenseDates = 32768
case FaceRecognition = 65536
case MemberAccountCreation = 131072
case Automation = 262144
case FacebookMarketing = 524288
case Grades = 1048576
case ZoomIntegration = 2097152
case SalesTargetChart = 4194304
case CustomApp = 8388608
case CustomAttributesOnPortal = 16777216
case NoExport = 33554432
case EnterpriseClubPerformanceDashboards = 67108864
case NoBasketForBookings = 134217728
}
public class Iso3166Country : Codable
{
public var name:String?
public var twoLetterCode:String?
public var threeLetterCode:String?
public var numericCode:Int?
public var phonePrefix:[String] = []
required public init(){}
}
public enum BranchMinimiser : String, Codable
{
case None
case CMGo
case BasicPortal
}
public enum ReportFormat : Int, Codable
{
case PDF = 1
case Word = 2
case Excel = 3
case PNG = 4
case XPS = 5
case CSV = 6
case Html5 = 7
}
// @Flags()
public enum AppFeature : Int, Codable
{
case None = 0
case JoinOnline = 1
case TodaysClasses = 2
case RegistrationForm = 4
case ForthcomingBookings = 8
case WeeklyTimetable = 16
case SessionTimetable = 32
case FacilityTimetable = 64
case TasterSessions = 128
case HowToFindUs = 256
case AttendanceLeaderboard = 512
case MemberMessages = 1024
case AchievementGallery = 2048
case FreeText = 4096
case QRCode = 8192
case ShareAndInviteAFriend = 16384
case RenewalPrompt = 32768
case CurrentCapacity = 65536
case JoinFriend = 131072
case MemberPoints = 262144
case PromoMembership = 524288
case Shop = 1048576
case ShowFacebook = 2097152
case ShowTwitter = 4194304
case ShowInstagram = 8388608
case ShowYouTube = 16777216
case ShowTikTok = 33554432
case ShowShopify = 67108864
case AttendanceStreak = 134217728
case BookingCategories = 268435456
case ShowSessionsRemaining = 536870912
case PromptToCollectDebt = 1073741824
}
// @Flags()
public enum SignInScreenFeature : Int, Codable
{
case None = 0
case SignInNumPad = 1
}
Swift MemberService.GetMembersForAccessControlRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /api/Member/GetMembersForAccessControl HTTP/1.1
Host: api.clubmanagercentral.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
MemberId: 0,
Date: 0001-01-01
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Members:
[
{
MemberId: 0,
EnrolmentId: 0,
BranchId: 0,
MembershipState: Prospect,
MembershipNumber: String,
CardNumber: String,
Forenames: String,
Surname: String,
MultiSiteAccess: False,
UseExternalStatus: False,
ExternalStatus: Off,
MembershipTypeName: String,
StartDate: 0001-01-01,
EndDate: 0001-01-01,
ScheduleId: 0,
SessionsRemaining: 0,
LastAttendance: 0001-01-01,
MemberAccess: AccessAllowed
}
],
Schedules:
[
{
ScheduleId: 0,
Name: String,
Description: String,
MondayFrom: PT0S,
MondayTo: PT0S,
TuesdayFrom: PT0S,
TuesdayTo: PT0S,
WednesdayFrom: PT0S,
WednesdayTo: PT0S,
ThursdayFrom: PT0S,
ThursdayTo: PT0S,
FridayFrom: PT0S,
FridayTo: PT0S,
SaturdayFrom: PT0S,
SaturdayTo: PT0S,
SundayFrom: PT0S,
SundayTo: PT0S,
ScheduleType: 0,
BranchId: 0,
Deleted: False,
Demo: False,
Monday: True,
Tuesday: True,
Wednesday: True,
Thursday: True,
Friday: True,
Saturday: True,
Sunday: True,
MondayTotalTime: P1D,
TuesdayTotalTime: P1D,
WednesdayTotalTime: P1D,
ThursdayTotalTime: P1D,
FridayTotalTime: P1D,
SaturdayTotalTime: P1D,
SundayTotalTime: P1D,
TotalTime: P7D
}
],
Branch:
{
BranchId: 0,
BranchType: DebitFinance,
Name: String,
Prefix: String,
CompanyName: String,
CompanyAddress: String,
CompanyOfficialName: String,
DirectDebitReference: String,
FastDDReference: String,
FastDDPlatinumRef: String,
Style: String,
PublicKey: 00000000000000000000000000000000,
PrivateKey: 00000000000000000000000000000000,
TrialStart: 0001-01-01,
TrialEnd: 0001-01-01,
PaymentStartDate: 0001-01-01,
InTrial: False,
UseFreeText: False,
FreeTextTitle: String,
UseMembershipTypes: False,
DDUserName: String,
DDPassword: String,
DDServiceUser: String,
DfcUserName: String,
DfcPassword: String,
DfcClubNumber: String,
CompanyEmail: String,
SmsOriginator: String,
LanguageId: 0,
VatRate: 0,
SwipeAction: 0,
Modules: 0,
UseCreditBalance: False,
AllowNegativeBalance: False,
DefaultCreditLimit: 0,
ApplicationType: Gym,
ExternalProviderWarning: String,
Domain: String,
MobileDomain: String,
OnlineBookingTimetableLimit: 0,
OnlineBookingCancellationLimit: 0,
OnlineBookingLimit: 0,
Feature: 0,
TimeZone: String,
Culture: String,
Country: String,
CurrencyCulture: String,
ShowGoCardlessAd: False,
GoCardlessSaving: 0,
SROAddress: String,
MCAClubNo: String,
MCAClubRef: String,
TwilioNumber: String,
Telephone: String,
Transferred: False,
OnlineBookingAllowNonActives: False,
MemberLimit: 0,
SortCode: String,
AccountNumber: String,
Website: String,
SendSMSAppointmentRemindersDefault: False,
SendSMSBookingReminders: False,
GiftAid: False,
GlobalBookingStartTime: PT0S,
GlobalBookingEndTime: PT0S,
BookingMinuteIncrements: 0,
CancelReason: String,
CancelFurther: String,
CancelDate: 0001-01-01,
DirectDebitFee: 0,
CreditCardFee: 0,
SMSPriceAdjustment: 0,
BookingsPayLinkOnTrack: False,
AccessControlTimeLimit: 0,
Minimiser: None,
AutoGenerateLicenses: False,
Terms: String,
FingerprintThreshold: 0,
FingerprintMatcherThreshold: 0,
AutoShutoff: False,
PrimaryColors: String,
HasColors: False,
PrimaryColor: String,
SecondaryColor: #FF0C67,
BackgroundColor: #ffffff,
HeaderTopColor: #d4fd04,
HeaderBottomColor: #d4fd04,
SideLeftColor: #F0F0F0,
SideRightColor: #F0F0F0,
SideFontColor: #555555,
SideFontActiveColor: #808080,
ExtWebBackgroundColor: #FFFFFF,
ExtWebTextColor: #404040,
ExtWebTintBackColor: #B9DE00,
ExtWebHighlightBackColor: #FF0C67,
ExtWebTabBackColor: #e8e8e8,
HeadingColor: #000000,
ReportFormat: PDF,
FixPayments: False,
FixPaymentSchedle: String,
AppFeature: 0,
SignInScreenFeature: 0,
AppOptions: String,
CompanyDescription: String,
Capacity: 0,
MonthlySalesTarget: 0,
BookingAccessTimeLimit: 0,
Facebook: String,
Twitter: String,
Instagram: String,
YouTube: String,
TikTok: String,
Shopify: String,
MinimumMemberAge: 0,
TermsAndConditionsVersionDate: 0001-01-01,
TermsAndConditionsAcceptedDate: 0001-01-01,
TermsAndConditionsAccepted: False,
SiteUrl: "https://string",
IsUsingSmartDebit: False,
IsUsingDfc: True,
IsSouthAfrica: False,
SmartDebitConfigured: True,
DfcConfigured: True,
UsingPaymentMethods: False,
SmsPrefix: String,
Logo: "https:///Template.mvc/GetImage?id=UgByAHUAeQBNAHMAZABmADQASQBMAFEAZwBIAGMAcgArADAAQgBoADEAQQA9AD0A",
LogoThumbnail: "https:///Template.mvc/GetThumbnail?id=UgByAHUAeQBNAHMAZABmADQASQBMAFEAZwBIAGMAcgArADAAQgBoADEAQQA9AD0A",
LogoHash: String,
SendMarketingInviteWhenMemberAdded: False,
SendMarketingInviteWhenMemberJoinedOnline: False,
MarketingComplianceManagedExternally: False,
OnlineBookingAllowWaitingList: False,
OnlineMultiSiteEnabled: False,
CanBookOnline: False,
PublicMembershipTypes: 0,
TrustedBranches: 0,
IsAddingProspects: False,
IsSellingMemberships: False,
IsCreatingTasks: False,
IsCreatingAppointments: False,
IsBookingClasses: False,
IsRegisteringAttendance: False,
IsSellingProducts: False,
IsSendingEmails: False,
IsSendingSMS: False,
IsUsingAutomation: False,
DeductSessionsOnBooking: False,
ShowTrustedBranchBookings: False,
Score: 0,
ApplicationId: com.clubmanagercentral.clublink,
iOSAppLink: String,
AndroidAppLink: String
}
}