Phase 2: Admin availability UI with calendar grid, edit modal, and e2e tests
This commit is contained in:
parent
64d2e99d73
commit
f6cf093cb1
5 changed files with 1130 additions and 1 deletions
|
|
@ -312,6 +312,50 @@ export interface paths {
|
|||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/admin/availability": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
/**
|
||||
* Get Availability
|
||||
* @description Get availability slots for a date range.
|
||||
*/
|
||||
get: operations["get_availability_api_admin_availability_get"];
|
||||
/**
|
||||
* Set Availability
|
||||
* @description Set availability for a specific date. Replaces any existing availability.
|
||||
*/
|
||||
put: operations["set_availability_api_admin_availability_put"];
|
||||
post?: never;
|
||||
delete?: never;
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/admin/availability/copy": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
get?: never;
|
||||
put?: never;
|
||||
/**
|
||||
* Copy Availability
|
||||
* @description Copy availability from one day to multiple target days.
|
||||
*/
|
||||
post: operations["copy_availability_api_admin_availability_copy_post"];
|
||||
delete?: never;
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/api/meta/constants": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
@ -346,6 +390,27 @@ export interface components {
|
|||
/** Email */
|
||||
email: string;
|
||||
};
|
||||
/**
|
||||
* AvailabilityDay
|
||||
* @description Availability for a single day.
|
||||
*/
|
||||
AvailabilityDay: {
|
||||
/**
|
||||
* Date
|
||||
* Format: date
|
||||
*/
|
||||
date: string;
|
||||
/** Slots */
|
||||
slots: components["schemas"]["TimeSlot"][];
|
||||
};
|
||||
/**
|
||||
* AvailabilityResponse
|
||||
* @description Response model for availability query.
|
||||
*/
|
||||
AvailabilityResponse: {
|
||||
/** Days */
|
||||
days: components["schemas"]["AvailabilityDay"][];
|
||||
};
|
||||
/**
|
||||
* ConstantsResponse
|
||||
* @description Response model for shared constants.
|
||||
|
|
@ -358,6 +423,19 @@ export interface components {
|
|||
/** Invite Statuses */
|
||||
invite_statuses: string[];
|
||||
};
|
||||
/**
|
||||
* CopyAvailabilityRequest
|
||||
* @description Request to copy availability from one day to others.
|
||||
*/
|
||||
CopyAvailabilityRequest: {
|
||||
/**
|
||||
* Source Date
|
||||
* Format: date
|
||||
*/
|
||||
source_date: string;
|
||||
/** Target Dates */
|
||||
target_dates: string[];
|
||||
};
|
||||
/**
|
||||
* CounterRecordResponse
|
||||
* @description Response model for a counter audit record.
|
||||
|
|
@ -515,6 +593,19 @@ export interface components {
|
|||
/** Invite Identifier */
|
||||
invite_identifier: string;
|
||||
};
|
||||
/**
|
||||
* SetAvailabilityRequest
|
||||
* @description Request to set availability for a specific date.
|
||||
*/
|
||||
SetAvailabilityRequest: {
|
||||
/**
|
||||
* Date
|
||||
* Format: date
|
||||
*/
|
||||
date: string;
|
||||
/** Slots */
|
||||
slots: components["schemas"]["TimeSlot"][];
|
||||
};
|
||||
/**
|
||||
* SumRecordResponse
|
||||
* @description Response model for a sum audit record.
|
||||
|
|
@ -558,6 +649,22 @@ export interface components {
|
|||
/** Result */
|
||||
result: number;
|
||||
};
|
||||
/**
|
||||
* TimeSlot
|
||||
* @description A single time slot (start and end time).
|
||||
*/
|
||||
TimeSlot: {
|
||||
/**
|
||||
* Start Time
|
||||
* Format: time
|
||||
*/
|
||||
start_time: string;
|
||||
/**
|
||||
* End Time
|
||||
* Format: time
|
||||
*/
|
||||
end_time: string;
|
||||
};
|
||||
/**
|
||||
* UserCredentials
|
||||
* @description Base model for user email/password.
|
||||
|
|
@ -1097,6 +1204,106 @@ export interface operations {
|
|||
};
|
||||
};
|
||||
};
|
||||
get_availability_api_admin_availability_get: {
|
||||
parameters: {
|
||||
query: {
|
||||
/** @description Start date (inclusive) */
|
||||
from: string;
|
||||
/** @description End date (inclusive) */
|
||||
to: string;
|
||||
};
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
requestBody?: never;
|
||||
responses: {
|
||||
/** @description Successful Response */
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["AvailabilityResponse"];
|
||||
};
|
||||
};
|
||||
/** @description Validation Error */
|
||||
422: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["HTTPValidationError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
set_availability_api_admin_availability_put: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
requestBody: {
|
||||
content: {
|
||||
"application/json": components["schemas"]["SetAvailabilityRequest"];
|
||||
};
|
||||
};
|
||||
responses: {
|
||||
/** @description Successful Response */
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["AvailabilityDay"];
|
||||
};
|
||||
};
|
||||
/** @description Validation Error */
|
||||
422: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["HTTPValidationError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
copy_availability_api_admin_availability_copy_post: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
requestBody: {
|
||||
content: {
|
||||
"application/json": components["schemas"]["CopyAvailabilityRequest"];
|
||||
};
|
||||
};
|
||||
responses: {
|
||||
/** @description Successful Response */
|
||||
200: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["AvailabilityResponse"];
|
||||
};
|
||||
};
|
||||
/** @description Validation Error */
|
||||
422: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["HTTPValidationError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
get_constants_api_meta_constants_get: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue