mirror of
https://github.com/Dvorinka/Bookra.git
synced 2026-06-04 04:22:59 +00:00
124 lines
4.0 KiB
Go
124 lines
4.0 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
type Principal struct {
|
|
Subject string `json:"subject"`
|
|
Email string `json:"email,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Role string `json:"role"`
|
|
}
|
|
|
|
type DashboardKPI struct {
|
|
Code string `json:"code"`
|
|
Label string `json:"label"`
|
|
Value string `json:"value"`
|
|
}
|
|
|
|
type DashboardSummary struct {
|
|
TenantName string `json:"tenantName"`
|
|
Locale string `json:"locale"`
|
|
Timezone string `json:"timezone"`
|
|
PlanCode string `json:"planCode"`
|
|
KPIs []DashboardKPI `json:"kpis"`
|
|
}
|
|
|
|
type TenantBootstrap struct {
|
|
TenantID string `json:"tenantId"`
|
|
TenantName string `json:"tenantName"`
|
|
Preset string `json:"preset"`
|
|
Locale string `json:"locale"`
|
|
Timezone string `json:"timezone"`
|
|
PlanCode string `json:"planCode,omitempty"`
|
|
CurrentUser Principal `json:"currentUser"`
|
|
}
|
|
|
|
type OnboardTenantRequest struct {
|
|
Name string `json:"name"`
|
|
Slug string `json:"slug"`
|
|
Preset string `json:"preset"`
|
|
Locale string `json:"locale"`
|
|
Timezone string `json:"timezone"`
|
|
}
|
|
|
|
type TimeSlot struct {
|
|
ServiceID *string `json:"serviceId,omitempty"`
|
|
ClassSessionID *string `json:"classSessionId,omitempty"`
|
|
StaffID *string `json:"staffId,omitempty"`
|
|
LocationID *string `json:"locationId,omitempty"`
|
|
StartsAt string `json:"startsAt"`
|
|
EndsAt string `json:"endsAt"`
|
|
Mode string `json:"mode"`
|
|
Label string `json:"label"`
|
|
RemainingCapacity *int32 `json:"remainingCapacity,omitempty"`
|
|
}
|
|
|
|
type PublicAvailability struct {
|
|
TenantSlug string `json:"tenantSlug"`
|
|
Timezone string `json:"timezone"`
|
|
Locale string `json:"locale"`
|
|
Slots []TimeSlot `json:"slots"`
|
|
}
|
|
|
|
type CreateBookingRequest struct {
|
|
TenantSlug string `json:"tenantSlug"`
|
|
BookingMode string `json:"bookingMode"`
|
|
ServiceID *string `json:"serviceId,omitempty"`
|
|
ClassSessionID *string `json:"classSessionId,omitempty"`
|
|
StaffID *string `json:"staffId,omitempty"`
|
|
LocationID *string `json:"locationId,omitempty"`
|
|
CustomerName string `json:"customerName"`
|
|
CustomerEmail string `json:"customerEmail"`
|
|
Notes string `json:"notes"`
|
|
StartsAt string `json:"startsAt"`
|
|
EndsAt string `json:"endsAt"`
|
|
}
|
|
|
|
type CreateBookingResponse struct {
|
|
BookingID string `json:"bookingId"`
|
|
Reference string `json:"reference"`
|
|
Status string `json:"status"`
|
|
}
|
|
|
|
type PlanEntitlements struct {
|
|
MaxLocations int `json:"maxLocations"`
|
|
MaxStaff int `json:"maxStaff"`
|
|
SMSAddonAvailable bool `json:"smsAddonAvailable"`
|
|
AdvancedReporting bool `json:"advancedReporting"`
|
|
}
|
|
|
|
type SubscriptionSnapshot struct {
|
|
TenantID string `json:"tenantId"`
|
|
CustomerID string `json:"customerId"`
|
|
SubscriptionID string `json:"subscriptionId"`
|
|
Status string `json:"status"`
|
|
PlanCode string `json:"planCode"`
|
|
PriceID string `json:"priceId"`
|
|
CancelAtPeriodEnd bool `json:"cancelAtPeriodEnd"`
|
|
CurrentPeriodStart *time.Time `json:"currentPeriodStart,omitempty"`
|
|
CurrentPeriodEnd *time.Time `json:"currentPeriodEnd,omitempty"`
|
|
PaymentMethodBrand string `json:"paymentMethodBrand,omitempty"`
|
|
PaymentMethodLast4 string `json:"paymentMethodLast4,omitempty"`
|
|
Entitlements PlanEntitlements `json:"entitlements"`
|
|
LastSyncedAt *time.Time `json:"lastSyncedAt,omitempty"`
|
|
CheckoutURLAvailable bool `json:"checkoutUrlAvailable,omitempty"`
|
|
}
|
|
|
|
type CheckoutSessionRequest struct {
|
|
PlanCode string `json:"planCode"`
|
|
}
|
|
|
|
type CheckoutSessionResponse struct {
|
|
URL string `json:"url"`
|
|
}
|
|
|
|
type DispatchReminderJobsRequest struct {
|
|
Limit int `json:"limit,omitempty"`
|
|
}
|
|
|
|
type DispatchReminderJobsResponse struct {
|
|
ProcessedCount int `json:"processedCount"`
|
|
SentCount int `json:"sentCount"`
|
|
FailedCount int `json:"failedCount"`
|
|
}
|