officernd-mcp-server
Version:
MCP server for OfficeRnD workspace management - create, search, update and cancel bookings
287 lines • 6.86 kB
TypeScript
export interface TokenResponse {
access_token: string;
token_type: string;
expires_in: number;
scope: string;
}
export interface BookingSearchParams {
bookingId?: string;
companyId?: string;
memberId?: string;
locationId?: string;
resourceId?: string;
seriesStartFrom?: string;
seriesStartTo?: string;
seriesEndFrom?: string;
seriesEndTo?: string;
/** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
limit?: number;
cursorNext?: string;
cursorPrev?: string;
fields?: string[];
}
export interface Booking {
_id: string;
timezone: string;
start: string;
end: string;
member?: string | null;
company?: string;
location?: string;
resource?: string;
title?: string;
rate?: string;
isTentative?: boolean;
isCancelled?: boolean;
isAccounted?: boolean;
fees: Fee[];
recurrence: {
rrule: string | null;
};
reference: string;
visitors: any[];
members: any[];
serviceSlots: {
before: number;
after: number;
};
createdAt: string;
createdBy: string;
modifiedAt: string;
modifiedBy: string;
}
export interface Fee {
date: string;
extraFees: any[];
passes: any[];
credits: Credit[];
coins: any[];
}
export interface Credit {
count: number;
credit: string;
}
export interface BookingSearchResponse {
rangeStart: number;
rangeEnd: number;
cursorNext?: string;
cursorPrev?: string;
results: Booking[];
}
export interface MemberSearchParams {
memberId?: string;
name?: string;
email?: string;
locationId?: string;
companyId?: string;
status?: 'active' | 'former';
createdAtFrom?: string;
createdAtTo?: string;
modifiedAtFrom?: string;
modifiedAtTo?: string;
/** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
limit?: number;
cursorNext?: string;
cursorPrev?: string;
sort?: string;
fields?: string[];
}
export interface Member {
_id: string;
name: string;
email: string;
location: string;
company: string;
status: 'active' | 'former';
startDate?: string;
createdAt: string;
modifiedAt: string;
properties?: Record<string, any>;
}
export interface MemberSearchResponse {
rangeStart: number;
rangeEnd: number;
cursorNext?: string;
cursorPrev?: string;
results: Member[];
}
export interface ResourceSearchParams {
resourceId?: string;
name?: string;
locationId?: string;
resourceTypeId?: string;
/** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
limit?: number;
cursorNext?: string;
cursorPrev?: string;
sort?: string;
fields?: string[];
}
export interface Resource {
_id: string;
name: string;
type: string;
location: string;
timezone?: string;
description?: string;
capacity?: number;
floor?: string;
image?: string;
images?: string[];
amenities?: string[];
properties?: Record<string, any>;
bookable?: boolean;
visible?: boolean;
archived?: boolean;
createdAt: string;
modifiedAt: string;
createdBy?: string;
modifiedBy?: string;
}
export interface ResourceSearchResponse {
rangeStart: number;
rangeEnd: number;
cursorNext?: string;
cursorPrev?: string;
results: Resource[];
}
export interface ResourceType {
_id: string;
name: string;
code: string;
description?: string;
icon?: string;
bookable: boolean;
billable: boolean;
allowMultipleBookings?: boolean;
properties?: Record<string, any>;
createdAt: string;
modifiedAt: string;
}
export interface ResourceTypeSearchResponse {
rangeStart: number;
rangeEnd: number;
cursorNext?: string;
cursorPrev?: string;
results: ResourceType[];
}
export interface CompanySearchParams {
companyId?: string;
name?: string;
email?: string;
locationId?: string;
status?: 'active' | 'former';
createdAtFrom?: string;
createdAtTo?: string;
modifiedAtFrom?: string;
modifiedAtTo?: string;
/** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
limit?: number;
cursorNext?: string;
cursorPrev?: string;
sort?: string;
fields?: string[];
}
export interface Company {
_id: string;
name: string;
email?: string;
location?: string;
status?: 'active' | 'former';
phone?: string;
website?: string;
address?: string;
description?: string;
properties?: Record<string, any>;
createdAt: string;
modifiedAt: string;
createdBy?: string;
modifiedBy?: string;
}
export interface CompanySearchResponse {
rangeStart: number;
rangeEnd: number;
cursorNext?: string;
cursorPrev?: string;
results: Company[];
}
export interface CreateBookingParams {
start: string;
end: string;
resource: string;
member?: string;
company?: string;
title?: string;
description?: string;
visitors?: string[];
members?: string[];
isTentative?: boolean;
isPrivate?: boolean;
isFree?: boolean;
recurrence?: {
rrule?: string;
exdate?: string[];
};
}
export interface UpdateBookingParams {
start?: string;
end?: string;
resource?: string;
member?: string;
company?: string;
title?: string;
description?: string;
visitors?: string[];
members?: string[];
isTentative?: boolean;
isPrivate?: boolean;
isFree?: boolean;
recurrence?: {
rrule?: string;
exdate?: string[];
};
}
export interface CancelBookingResponse {
success: boolean;
booking?: Booking;
message?: string;
}
export interface ResourceRateSearchParams {
resourceRateId?: string;
resourceId?: string;
name?: string;
/** Maximum number of results to return (1-50). OfficeRnD API has a hard cap of 50. */
limit?: number;
cursorNext?: string;
cursorPrev?: string;
sort?: string;
fields?: string[];
}
export interface ResourceRate {
_id: string;
name: string;
resource: string;
price: number;
currency: string;
period: 'hour' | 'day' | 'week' | 'month' | 'year';
minDuration?: number;
maxDuration?: number;
description?: string;
isDefault?: boolean;
isActive?: boolean;
validFrom?: string;
validTo?: string;
properties?: Record<string, any>;
createdAt: string;
modifiedAt: string;
createdBy?: string;
modifiedBy?: string;
}
export interface ResourceRateSearchResponse {
rangeStart: number;
rangeEnd: number;
cursorNext?: string;
cursorPrev?: string;
results: ResourceRate[];
}
//# sourceMappingURL=types.d.ts.map