All staff routes are protected by Laravel’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/OswalSnow/AR-Barber/llms.txt
Use this file to discover all available pages before exploring further.
auth middleware. Requests without a valid authenticated session are redirected to /login with a 302 response. Authentication is handled by Laravel Breeze using a session cookie — there is no token-based auth on these routes.
GET /dashboard
Renders the main staff panel view. Fetches all users withrole = 'barber' and passes them to the dashboard view.
Middleware: auth, verified
No parameters. Renders an HTML view.
GET /staff/availability
Returns the full slot grid for a barber on a given date, including both available and occupied slots. Unlike the public availability endpoint, this response shows every slot so staff can see the complete schedule at a glance. Middleware:auth
The ID of the barber whose schedule to retrieve.
The date to inspect, formatted as
YYYY-MM-DD.Array of slot objects covering the barber’s full workday.
GET /staff/appointments
Returns all appointments booked for a barber on a given date. Middleware:auth
The date to query, formatted as
YYYY-MM-DD. Defaults to today’s date when omitted.Array of Appointment objects.
DELETE /staff/appointments/{id}
Cancels and removes an appointment by its ID. Middleware:auth
The ID of the appointment to delete.
200 response on success or a 404 if the appointment does not exist.
POST /staff/workdays/set
Opens or closes a specific calendar day for a barber and sets the working hours for that day. Middleware:auth
The ID of the barber whose schedule is being updated.
The date to configure, formatted as
YYYY-MM-DD.Set to
true to mark the day as a working day, or false to close it. Closed days will return an empty array from the public availability endpoint.The start of the working day in
HH:MM format, e.g. "09:00".The end of the working day in
HH:MM format, e.g. "18:00".POST /staff/portfolio
Uploads a new image to the barber’s portfolio gallery. The image appears on the public/servicios page.
Middleware: authRoute name:
staff.portfolio.store
Send the request as multipart/form-data with the image file attached. Refer to PortfolioImageController@store for accepted MIME types and size limits.
DELETE /staff/portfolio/{id}
Removes a portfolio image by its ID. Middleware:authRoute name:
staff.portfolio.destroy
The ID of the portfolio image to delete.
200 on success or a 404 if the image does not exist.