{"id":25171303,"url":"https://github.com/basemax/therapistbookinggraphqlts","last_synced_at":"2026-04-13T02:04:54.069Z","repository":{"id":191106952,"uuid":"674920487","full_name":"BaseMax/TherapistBookingGraphQLTS","owner":"BaseMax","description":"This repository contains a Therapist Booking Project built using GraphQL and TypeScript. The project aims to create a platform where users can book appointments with therapists for counseling sessions.","archived":false,"fork":false,"pushed_at":"2025-03-12T07:41:09.000Z","size":1813,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T17:08:10.025Z","etag":null,"topics":["graphql","graphql-therapist","therapist-api","therapist-api-graphql","therapist-graphql","therapist-typescript","therapists","typescript","typescript-graphql"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BaseMax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-05T07:03:55.000Z","updated_at":"2025-03-12T07:41:07.000Z","dependencies_parsed_at":"2023-08-28T06:28:30.581Z","dependency_job_id":"94d07be3-a28b-4556-b005-e9833bd03c75","html_url":"https://github.com/BaseMax/TherapistBookingGraphQLTS","commit_stats":null,"previous_names":["basemax/therapistbookinggraphqlts"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FTherapistBookingGraphQLTS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FTherapistBookingGraphQLTS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FTherapistBookingGraphQLTS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2FTherapistBookingGraphQLTS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BaseMax","download_url":"https://codeload.github.com/BaseMax/TherapistBookingGraphQLTS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247079204,"owners_count":20880015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphql","graphql-therapist","therapist-api","therapist-api-graphql","therapist-graphql","therapist-typescript","therapists","typescript","typescript-graphql"],"created_at":"2025-02-09T09:19:48.603Z","updated_at":"2026-04-13T02:04:54.036Z","avatar_url":"https://github.com/BaseMax.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Therapist Booking Project - GraphQL and TypeScript\n\nThis repository contains a Therapist Booking Project built using GraphQL and TypeScript. The project aims to create a platform where users can book appointments with therapists for counseling sessions.\n\n## Features\n\n- User authentication and authorization\n- Search for available therapists and their specialties\n- Schedule and manage therapy appointments\n- View upcoming and past appointments\n- Rate and review therapists based on their services\n\n## Demo \n\nRegister users\n\n![Demo](./screenshots/register.png)\n\nLogin users\n\n![Demo](./screenshots/login.png)\n\nCreate review (Auth required)\n\n![Demo](./screenshots/createReview.png)\n\nFind all review\n\n![Demo](./screenshots/findAllReview.png)\n\nUser details\n\n![Demo](./screenshots/me.png)\n\nFind all users (Admin role required)\n\n![Demo](./screenshots/findAllUsers.png)\n\nCreate therapist by admin (Admin role required)\n\n![Demo](./screenshots/register.png)\n\nTherapist count \n\n![Demo](./screenshots/therapistCount.png)\n\nFind therapist by location\n\n![Demo](./screenshots/findTherapistByLocation.png.png)\n\nGet all therapist appoinemnt (therapist role required)\n\n![Demo](./screenshots/findTherapistAppoinment.png)\n\nChange Appoinemnt status by therapist\n\n![Demo](./screenshots/TherapistchangeStatus.png)\n\n## Getting Started\n\n**Prerequisites**\n\nBefore running this project, make sure you have the following prerequisites installed on your system:\n\n- Node.js (https://nodejs.org)\n- npm (Node Package Manager) or yarn (https://yarnpkg.com)\n\n**Installation**\n\nClone this repository to your local machine using:\n\n```bash\ngit clone https://github.com/BaseMax/TherapistBookingGraphQLTS.git\n```\n\nNavigate to the project directory:\n\n```bash\ncd TherapistBookingGraphQLTS\n```\n\nInstall the project dependencies:\nUsing npm:\n\n```bash\nnpm install\n```\n\nOr using yarn:\n\n```bash\nyarn install\n```\n\n## Init Prisma : \n\n```\nnpx prisma migrate dev --name init \n\n```\n\n**Configuration**\n\nCreate a `.env` file in the root directory and add the following environment variables:\n```\n# Set enviornment variable :\nDATABASE_URL=\"postgresql://username:password@localhost:5432/your-database?schema=public\"\n```\n\nConfigure any other necessary environment variables based on your specific setup.\n\n## Usage\n\nTo start the development server, run the following command:\n\nUsing npm:\n\n```bash\nnpm run start:dev\n```\n\nOr using yarn:\n\n```bash\nyarn dev\n```\n\nThe server should now be running on `http://localhost:3000` (or the port you specified in the .env file). You can access the GraphQL Playground to interact with the API and test various queries and mutations.\n\n## GraphQL API\n\nThe GraphQL API provides the following endpoints:\n\n- `POST /graphql`: The main endpoint for executing GraphQL queries and mutations.\n\nYou can explore the available schema and operations using the GraphQL Playground available at the server's root URL.\n\n## GraphQL\n\n### GetTherapists: Fetch a list of therapists based on specified filters.\n\n```graphql\nquery GetTherapists($specialty: String, $location: String, $available: Boolean) {\n  therapists(specialty: $specialty, location: $location, available: $available) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistById: Get details of a specific therapist by their ID.\n\n```graphql\nquery GetTherapistById($therapistId: ID!) {\n  therapist(id: $therapistId) {\n    id\n    name\n    specialty\n    location\n    available\n    reviews {\n      id\n      rating\n      comment\n    }\n  }\n}\n```\n\n### GetAppointments: Fetch a list of appointments for the authenticated user.\n\n```graphql\nquery GetAppointments {\n  appointments {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### GetTherapistSpecialties: Fetch a list of all available therapist specialties.\n\n```graphql\nquery GetTherapistSpecialties {\n  therapistSpecialties {\n    id\n    name\n  }\n}\n```\n\n### GetUser: Get the details of the authenticated user.\n\n```graphql\nquery GetUser {\n  me {\n    id\n    name\n    email\n  }\n}\n```\n\n### GetTherapistReviews: Get reviews for a specific therapist.\n\n```graphql\nquery GetTherapistReviews($therapistId: ID!) {\n  therapistReviews(therapistId: $therapistId) {\n    id\n    rating\n    comment\n    user {\n      id\n      name\n    }\n  }\n}\n```\n\n### GetAvailableAppointments: Fetch a list of available appointments for a specific therapist within a given date range.\n\n```graphql\nquery GetAvailableAppointments($therapistId: ID!, $startDate: String!, $endDate: String!) {\n  availableAppointments(therapistId: $therapistId, startDate: $startDate, endDate: $endDate) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n  }\n}\n```\n\n### GetUserAppointments: Fetch a list of appointments for a specific user within a given date range.\n\n```graphql\nquery GetUserAppointments($startDate: String!, $endDate: String!) {\n  userAppointments(startDate: $startDate, endDate: $endDate) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### GetTherapistAvailabilities: Fetch a therapist's weekly schedule and availability.\n\n```graphql\nquery GetTherapistAvailabilities($therapistId: ID!) {\n  therapistAvailabilities(therapistId: $therapistId) {\n    dayOfWeek\n    startTime\n    endTime\n  }\n}\n```\n\n### GetTherapistsByLocation: Fetch therapists within a certain radius of a specified location.\n\n```graphql\nquery GetTherapistsByLocation($location: String!, $radius: Float!) {\n  therapistsByLocation(location: $location, radius: $radius) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetUpcomingAppointments: Fetch upcoming appointments for the authenticated user.\n\n```graphql\nquery GetUpcomingAppointments {\n  upcomingAppointments {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### GetPastAppointments: Fetch past appointments for the authenticated user.\n\n```graphql\nquery GetPastAppointments {\n  pastAppointments {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### GetTherapistsBySpecialty: Fetch therapists specializing in a specific therapy category.\n\n```graphql\nquery GetTherapistsBySpecialty($specialty: String!) {\n  therapistsBySpecialty(specialty: $specialty) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistCount: Get the total number of registered therapists.\n\n```graphql\nquery GetTherapistCount {\n  therapistCount\n}\n```\n\n### GetUserReviews: Fetch reviews given by the authenticated user to therapists.\n\n```graphql\nquery GetUserReviews {\n  userReviews {\n    id\n    therapist {\n      id\n      name\n    }\n    rating\n    comment\n  }\n}\n```\n\n### GetUserRatings: Get the average rating and the total number of reviews given by the authenticated user.\n\n```graphql\nquery GetUserRatings {\n  userRatings {\n    averageRating\n    totalReviews\n  }\n}\n```\n\n### GetTherapistRating: Get the average rating and the total number of reviews for a specific therapist.\n\n```graphql\nquery GetTherapistRating($therapistId: ID!) {\n  therapistRating(therapistId: $therapistId) {\n    averageRating\n    totalReviews\n  }\n}\n```\n\n### GetUserBookedTherapists: Fetch a list of therapists booked by the authenticated user.\n\n```graphql\nquery GetUserBookedTherapists {\n  userBookedTherapists {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistAvailability: Fetch the availability of a specific therapist for a given date.\n\n```graphql\nquery GetTherapistAvailability($therapistId: ID!, $date: String!) {\n  therapistAvailability(therapistId: $therapistId, date: $date) {\n    available\n    startTime\n    endTime\n  }\n}\n```\n\n### GetUserUpcomingTherapists: Fetch a list of therapists for whom the authenticated user has upcoming appointments.\n\n```graphql\nquery GetUserUpcomingTherapists {\n  userUpcomingTherapists {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistSchedules: Fetch the weekly schedules of multiple therapists.\n\n```graphql\nquery GetTherapistSchedules($therapistIds: [ID!]!, $startDate: String!, $endDate: String!) {\n  therapistSchedules(therapistIds: $therapistIds, startDate: $startDate, endDate: $endDate) {\n    therapist {\n      id\n      name\n    }\n    schedule {\n      dayOfWeek\n      startTime\n      endTime\n    }\n  }\n}\n```\n\n### GetUserReviewsByRating: Fetch reviews given by the authenticated user based on the specified rating.\n\n```graphql\nquery GetUserReviewsByRating($rating: Int!) {\n  userReviewsByRating(rating: $rating) {\n    id\n    therapist {\n      id\n      name\n    }\n    rating\n    comment\n  }\n}\n```\n\n### GetTherapistsByLanguage: Fetch therapists who offer counseling in a specific language.\n\n```graphql\nquery GetTherapistsByLanguage($language: String!) {\n  therapistsByLanguage(language: $language) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistRatingsInRange: Fetch therapists whose average ratings fall within a specified range.\n\n```graphql\nquery GetTherapistRatingsInRange($minRating: Float!, $maxRating: Float!) {\n  therapistsByRatingRange(minRating: $minRating, maxRating: $maxRating) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetUserTherapistsBySpecialty: Fetch therapists in a specific specialty who were booked by the authenticated user.\n\n```graphql\nquery GetUserTherapistsBySpecialty($specialty: String!) {\n  userTherapistsBySpecialty(specialty: $specialty) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistBookedDates: Fetch the dates on which a specific therapist is booked.\n\n```graphql\nquery GetTherapistBookedDates($therapistId: ID!) {\n  therapistBookedDates(therapistId: $therapistId) {\n    date\n  }\n}\n```\n\n### GetUserTherapistsByLocation: Fetch therapists within a certain radius of the authenticated user's location.\n\n```graphql\nquery GetUserTherapistsByLocation($radius: Float!) {\n  userTherapistsByLocation(radius: $radius) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistByLocationAndSpecialty: Fetch therapists within a certain radius of a specified location and offering a specific specialty.\n\n```graphql\nquery GetTherapistByLocationAndSpecialty($location: String!, $radius: Float!, $specialty: String!) {\n  therapistsByLocationAndSpecialty(location: $location, radius: $radius, specialty: $specialty) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetUserTherapistsWithUpcomingAvailability: Fetch therapists who have upcoming available slots within a specified date range, and whom the authenticated user has not booked.\n\n```graphql\nquery GetUserTherapistsWithUpcomingAvailability($startDate: String!, $endDate: String!) {\n  userTherapistsWithUpcomingAvailability(startDate: $startDate, endDate: $endDate) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistAppointmentsByStatus: Fetch appointments for a specific therapist filtered by status.\n\n```graphql\nquery GetTherapistAppointmentsByStatus($therapistId: ID!, $status: AppointmentStatus!) {\n  therapistAppointmentsByStatus(therapistId: $therapistId, status: $status) {\n    id\n    date\n    status\n    user {\n      id\n      name\n    }\n  }\n}\n```\n\n### GetTherapistsByReviewRating: Fetch therapists based on their average review rating falling within a specified range.\n\n```graphql\nquery GetTherapistsByReviewRating($minRating: Float!, $maxRating: Float!) {\n  therapistsByReviewRating(minRating: $minRating, maxRating: $maxRating) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetUserFavoriteTherapists: Fetch a list of therapists marked as favorites by the authenticated user.\n\n```graphql\nquery GetUserFavoriteTherapists {\n  userFavoriteTherapists {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### GetTherapistsByYearsOfExperience: Fetch therapists with a minimum number of years of experience.\n\n```graphql\nquery GetTherapistsByYearsOfExperience($minExperience: Int!) {\n  therapistsByYearsOfExperience(minExperience: $minExperience) {\n    id\n    name\n    specialty\n    location\n    available\n    yearsOfExperience\n  }\n}\n```\n\n### GetUserTherapistAvailability: Fetch a list of therapists available at a specific date and time.\n\n```graphql\nquery GetUserTherapistAvailability($date: String!, $time: String!) {\n  userTherapistAvailability(date: $date, time: $time) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n## GraphQL Mutations\n\n### UpdateUserProfile: Update the details of the authenticated user (e.g., name, email, password).\n\n```graphql\nmutation UpdateUserProfile($input: UserProfileInput!) {\n  updateUserProfile(input: $input) {\n    id\n    name\n    email\n  }\n}\n```\n\n### DeleteUser: Delete the authenticated user's account.\n\n```graphql\nmutation DeleteUser {\n  deleteUser\n}\n```\n\n### CreateTherapist: Add a new therapist to the platform (for admin users).\n\n```graphql\nmutation CreateTherapist($input: TherapistInput!) {\n  createTherapist(input: $input) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### UpdateTherapist: Update the details of a therapist (for admin users).\n\n```graphql\nmutation UpdateTherapist($therapistId: ID!, $input: TherapistInput!) {\n  updateTherapist(id: $therapistId, input: $input) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### DeleteTherapist: Remove a therapist from the platform (for admin users).\n\n```graphql\nmutation DeleteTherapist($therapistId: ID!) {\n  deleteTherapist(id: $therapistId)\n}\n```\n\n### ApproveAppointment: Approve a pending appointment request (for therapists or admin users).\n\n```graphql\nmutation ApproveAppointment($appointmentId: ID!) {\n  approveAppointment(id: $appointmentId) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### RejectAppointment: Reject a pending appointment request (for therapists or admin users).\n\n```graphql\nmutation RejectAppointment($appointmentId: ID!, $reason: String!) {\n  rejectAppointment(id: $appointmentId, reason: $reason) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### AddTherapistToFavorites: Add a therapist to the authenticated user's list of favorite therapists.\n\n```graphql\nmutation AddTherapistToFavorites($therapistId: ID!) {\n  addTherapistToFavorites(therapistId: $therapistId) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### RemoveTherapistFromFavorites: Remove a therapist from the authenticated user's list of favorite therapists.\n\n```graphql\nmutation RemoveTherapistFromFavorites($therapistId: ID!) {\n  removeTherapistFromFavorites(therapistId: $therapistId) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### CreateTherapistReview: Create a new review for a therapist by the authenticated user.\n\n```graphql\nmutation CreateTherapistReview($therapistId: ID!, $rating: Int!, $comment: String) {\n  createTherapistReview(therapistId: $therapistId, rating: $rating, comment: $comment) {\n    id\n    rating\n    comment\n    user {\n      id\n      name\n    }\n  }\n}\n```\n\n### UpdateTherapistReview: Update an existing review given by the authenticated user to a therapist.\n\n```graphql\nmutation UpdateTherapistReview($reviewId: ID!, $rating: Int!, $comment: String) {\n  updateTherapistReview(id: $reviewId, rating: $rating, comment: $comment) {\n    id\n    rating\n    comment\n    user {\n      id\n      name\n    }\n  }\n}\n```\n\n### DeleteTherapistReview: Delete a review given by the authenticated user to a therapist.\n\n```graphql\nmutation DeleteTherapistReview($reviewId: ID!) {\n  deleteTherapistReview(id: $reviewId)\n}\n```\n\n### CreateTherapistAvailability: Add availability slots for a therapist's weekly schedule.\n\n```graphql\nmutation CreateTherapistAvailability($therapistId: ID!, $availability: [AvailabilityInput!]!) {\n  createTherapistAvailability(therapistId: $therapistId, availability: $availability) {\n    id\n    dayOfWeek\n    startTime\n    endTime\n  }\n}\n```\n\n### UpdateTherapistAvailability: Update availability slots for a therapist's weekly schedule.\n\n```graphql\nmutation UpdateTherapistAvailability($availabilityId: ID!, $startTime: String!, $endTime: String!) {\n  updateTherapistAvailability(id: $availabilityId, startTime: $startTime, endTime: $endTime) {\n    id\n    dayOfWeek\n    startTime\n    endTime\n  }\n}\n```\n\n### DeleteTherapistAvailability: Remove availability slots from a therapist's weekly schedule.\n\n```graphql\nmutation DeleteTherapistAvailability($availabilityId: ID!) {\n  deleteTherapistAvailability(id: $availabilityId)\n}\n```\n\n### CreateTherapistSpecialty: Add a new specialty to the therapist's list of expertise.\n\n```graphql\nmutation CreateTherapistSpecialty($name: String!) {\n  createTherapistSpecialty(name: $name) {\n    id\n    name\n  }\n}\n```\n\n### UpdateTherapistSpecialty: Update the name of a therapist's specialty.\n\n```graphql\nmutation UpdateTherapistSpecialty($specialtyId: ID!, $name: String!) {\n  updateTherapistSpecialty(id: $specialtyId, name: $name) {\n    id\n    name\n  }\n}\n```\n\n### DeleteTherapistSpecialty: Remove a specialty from the therapist's list of expertise.\n\n```graphql\nmutation DeleteTherapistSpecialty($specialtyId: ID!) {\n  deleteTherapistSpecialty(id: $specialtyId)\n}\n```\n\n### CreateAppointmentRequest: Request a therapy appointment with a specific therapist. This mutation allows users to request a booking, which the therapist can then approve or reject.\n\n```graphql\nmutation CreateAppointmentRequest($therapistId: ID!, $date: String!) {\n  createAppointmentRequest(therapistId: $therapistId, date: $date) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### UpdateAppointmentRequest: Update an existing appointment request. This mutation allows users to reschedule or modify the details of their pending appointment request.\n\n```graphql\nmutation UpdateAppointmentRequest($requestId: ID!, $date: String!) {\n  updateAppointmentRequest(id: $requestId, date: $date) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### CancelAppointmentRequest: Cancel a pending appointment request. This mutation allows users to cancel an appointment request before it is approved or rejected by the therapist.\n\n```graphql\nmutation CancelAppointmentRequest($requestId: ID!) {\n  cancelAppointmentRequest(id: $requestId) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### ApproveAppointmentRequest: Approve a pending appointment request as a therapist. This mutation allows therapists to accept a user's appointment request and schedule the session.\n\n```graphql\nmutation ApproveAppointmentRequest($requestId: ID!) {\n  approveAppointmentRequest(id: $requestId) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### RejectAppointmentRequest: Reject a pending appointment request as a therapist. This mutation allows therapists to decline a user's appointment request, providing an optional reason for the rejection.\n\n```graphql\nmutation RejectAppointmentRequest($requestId: ID!, $reason: String) {\n  rejectAppointmentRequest(id: $requestId, reason: $reason) {\n    id\n    therapist {\n      id\n      name\n    }\n    date\n    status\n  }\n}\n```\n\n### UpdateTherapistStatus: Update the availability status of a therapist. This mutation allows therapists to mark their availability as \"available\" or \"unavailable.\"\n\n```graphql\nmutation UpdateTherapistStatus($available: Boolean!) {\n  updateTherapistStatus(available: $available) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### UpdateTherapistDetails: Update various details of a therapist's profile, such as their name, location, or years of experience.\n\n```graphql\nmutation UpdateTherapistDetails($input: TherapistInput!) {\n  updateTherapistDetails(input: $input) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### CreateTherapistProfile: Create a new therapist profile. This mutation is used by therapists to join the platform and provide their information.\n\n```graphql\nmutation CreateTherapistProfile($input: TherapistInput!) {\n  createTherapistProfile(input: $input) {\n    id\n    name\n    specialty\n    location\n    available\n  }\n}\n```\n\n### DeleteTherapistProfile: Delete a therapist's profile. This mutation allows therapists to leave the platform and remove their profile and associated data.\n\n```graphql\nmutation DeleteTherapistProfile {\n  deleteTherapistProfile\n}\n```\n\n## Contributing\n\nContributions to this project are welcome! If you find any issues or want to add new features, please follow the standard GitHub workflow:\n\n- Fork the repository.\n- Create a new branch with a descriptive name.\n- Commit your changes and push the branch to your fork.\n- Submit a pull request with a detailed explanation of your changes.\n\n## License\n\nThis project is licensed under the MIT License. Feel free to use and modify the code as per the terms of the license.\n\nCopyright 2023, Max Base\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Ftherapistbookinggraphqlts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasemax%2Ftherapistbookinggraphqlts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Ftherapistbookinggraphqlts/lists"}