# Mentor

## GET /api/v1/dashboard/mentor/availability/

> List all availability slots for the logged-in mentor.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"AvailabilitySlot":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"mentor_user_id":{"type":"string","readOnly":true},"ig_id":{"type":"string","nullable":true,"readOnly":true},"ig_name":{"type":"string","readOnly":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","end_time","ig_id","ig_name","mentor_user_id","start_time","updated_at","weekday"]}}},"paths":{"/api/v1/dashboard/mentor/availability/":{"get":{"operationId":"dashboard_mentor_availability_list","description":"List all availability slots for the logged-in mentor.","parameters":[{"in":"query","name":"ig_id","schema":{"type":"string"}},{"in":"query","name":"is_active","schema":{"type":"boolean"}}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilitySlot"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/mentor/availability/

> Create a new mentor availability slot.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"AvailabilitySlotCreateUpdate":{"type":"object","properties":{"ig":{"type":"string","nullable":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true}},"required":["end_time","start_time","weekday"]}}},"paths":{"/api/v1/dashboard/mentor/availability/":{"post":{"operationId":"dashboard_mentor_availability_create","description":"Create a new mentor availability slot.","tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## DELETE /api/v1/dashboard/mentor/availability/

> Delete a mentor availability slot.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/mentor/availability/":{"delete":{"operationId":"dashboard_mentor_availability_destroy","description":"Delete a mentor availability slot.","tags":["Mentor"],"responses":{"204":{"description":"No response body"}}}}}}
```

## PATCH /api/v1/dashboard/mentor/availability/

> Update an existing mentor availability slot.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedAvailabilitySlotCreateUpdate":{"type":"object","properties":{"ig":{"type":"string","nullable":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true}}},"AvailabilitySlotCreateUpdate":{"type":"object","properties":{"ig":{"type":"string","nullable":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true}},"required":["end_time","start_time","weekday"]}}},"paths":{"/api/v1/dashboard/mentor/availability/":{"patch":{"operationId":"dashboard_mentor_availability_partial_update","description":"Update an existing mentor availability slot.","tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedAvailabilitySlotCreateUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedAvailabilitySlotCreateUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedAvailabilitySlotCreateUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/availability/{slot\_id}/

> List all availability slots for the logged-in mentor.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"AvailabilitySlot":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"mentor_user_id":{"type":"string","readOnly":true},"ig_id":{"type":"string","nullable":true,"readOnly":true},"ig_name":{"type":"string","readOnly":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","end_time","ig_id","ig_name","mentor_user_id","start_time","updated_at","weekday"]}}},"paths":{"/api/v1/dashboard/mentor/availability/{slot_id}/":{"get":{"operationId":"dashboard_mentor_availability_list_2","description":"List all availability slots for the logged-in mentor.","parameters":[{"in":"query","name":"ig_id","schema":{"type":"string"}},{"in":"query","name":"is_active","schema":{"type":"boolean"}},{"in":"path","name":"slot_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilitySlot"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/mentor/availability/{slot\_id}/

> Create a new mentor availability slot.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"AvailabilitySlotCreateUpdate":{"type":"object","properties":{"ig":{"type":"string","nullable":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true}},"required":["end_time","start_time","weekday"]}}},"paths":{"/api/v1/dashboard/mentor/availability/{slot_id}/":{"post":{"operationId":"dashboard_mentor_availability_create_2","description":"Create a new mentor availability slot.","parameters":[{"in":"path","name":"slot_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## DELETE /api/v1/dashboard/mentor/availability/{slot\_id}/

> Delete a mentor availability slot.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/mentor/availability/{slot_id}/":{"delete":{"operationId":"dashboard_mentor_availability_destroy_2","description":"Delete a mentor availability slot.","parameters":[{"in":"path","name":"slot_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"204":{"description":"No response body"}}}}}}
```

## PATCH /api/v1/dashboard/mentor/availability/{slot\_id}/

> Update an existing mentor availability slot.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedAvailabilitySlotCreateUpdate":{"type":"object","properties":{"ig":{"type":"string","nullable":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true}}},"AvailabilitySlotCreateUpdate":{"type":"object","properties":{"ig":{"type":"string","nullable":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true}},"required":["end_time","start_time","weekday"]}}},"paths":{"/api/v1/dashboard/mentor/availability/{slot_id}/":{"patch":{"operationId":"dashboard_mentor_availability_partial_update_2","description":"Update an existing mentor availability slot.","parameters":[{"in":"path","name":"slot_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedAvailabilitySlotCreateUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedAvailabilitySlotCreateUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedAvailabilitySlotCreateUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/AvailabilitySlotCreateUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/detail/{mentor\_id}/

> Get details of a specific mentor by ID.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorDetail":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"user_full_name":{"type":"string","readOnly":true},"user_email":{"type":"string","readOnly":true},"about":{"type":"string","nullable":true,"maxLength":1000},"expertise":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"maxLength":1000},"hours":{"type":"integer","maximum":4294967295,"minimum":0,"format":"int64"},"mentor_tier":{"enum":["IG_MENTOR","MENTOR","COMPANY_MENTOR","CAMPUS_MENTOR"],"type":"string","description":"* `IG_MENTOR` - IG Mentor\n* `MENTOR` - Mentor\n* `COMPANY_MENTOR` - Company Mentor\n* `CAMPUS_MENTOR` - Campus Mentor"},"status":{"enum":["PENDING","APPROVED","REJECTED"],"type":"string","description":"* `PENDING` - Pending\n* `APPROVED` - Approved\n* `REJECTED` - Rejected"},"preferred_ig_ids":{"nullable":true},"verified_at":{"type":"string","format":"date-time","nullable":true},"verification_note":{"type":"string","nullable":true,"maxLength":500},"updated_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"user":{"type":"string"},"org":{"type":"string","nullable":true},"verified_by":{"type":"string","nullable":true},"updated_by":{"type":"string"},"created_by":{"type":"string"}},"required":["created_by","updated_by","user","user_email","user_full_name"]}}},"paths":{"/api/v1/dashboard/mentor/detail/{mentor_id}/":{"get":{"operationId":"dashboard_mentor_detail_retrieve","description":"Get details of a specific mentor by ID.","parameters":[{"in":"path","name":"mentor_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/MentorDetail"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/list/

> List all mentor applications with filtering.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"user_id":{"type":"string","readOnly":true},"user_full_name":{"type":"string","readOnly":true},"user_email":{"type":"string","readOnly":true},"mentor_tier":{"enum":["IG_MENTOR","MENTOR","COMPANY_MENTOR","CAMPUS_MENTOR"],"type":"string","description":"* `IG_MENTOR` - IG Mentor\n* `MENTOR` - Mentor\n* `COMPANY_MENTOR` - Company Mentor\n* `CAMPUS_MENTOR` - Campus Mentor"},"status":{"enum":["PENDING","APPROVED","REJECTED"],"type":"string","description":"* `PENDING` - Pending\n* `APPROVED` - Approved\n* `REJECTED` - Rejected"},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}},"required":["user_email","user_full_name","user_id"]}}},"paths":{"/api/v1/dashboard/mentor/list/":{"get":{"operationId":"dashboard_mentor_list_list","description":"List all mentor applications with filtering.","parameters":[{"in":"query","name":"mentor_tier","schema":{"type":"string"}},{"in":"query","name":"status","schema":{"type":"string"}}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/MentorList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/profile/

> Retrieve the profile of a verified mentor.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorDetail":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"user_full_name":{"type":"string","readOnly":true},"user_email":{"type":"string","readOnly":true},"about":{"type":"string","nullable":true,"maxLength":1000},"expertise":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"maxLength":1000},"hours":{"type":"integer","maximum":4294967295,"minimum":0,"format":"int64"},"mentor_tier":{"enum":["IG_MENTOR","MENTOR","COMPANY_MENTOR","CAMPUS_MENTOR"],"type":"string","description":"* `IG_MENTOR` - IG Mentor\n* `MENTOR` - Mentor\n* `COMPANY_MENTOR` - Company Mentor\n* `CAMPUS_MENTOR` - Campus Mentor"},"status":{"enum":["PENDING","APPROVED","REJECTED"],"type":"string","description":"* `PENDING` - Pending\n* `APPROVED` - Approved\n* `REJECTED` - Rejected"},"preferred_ig_ids":{"nullable":true},"verified_at":{"type":"string","format":"date-time","nullable":true},"verification_note":{"type":"string","nullable":true,"maxLength":500},"updated_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"user":{"type":"string"},"org":{"type":"string","nullable":true},"verified_by":{"type":"string","nullable":true},"updated_by":{"type":"string"},"created_by":{"type":"string"}},"required":["created_by","updated_by","user","user_email","user_full_name"]}}},"paths":{"/api/v1/dashboard/mentor/profile/":{"get":{"operationId":"dashboard_mentor_profile_retrieve","description":"Retrieve the profile of a verified mentor.","tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/MentorDetail"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/mentor/profile/

> Update the profile of a verified mentor.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedMentorUpdate":{"type":"object","properties":{"about":{"type":"string","nullable":true,"maxLength":1000},"expertise":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"maxLength":1000},"hours":{"type":"integer","maximum":4294967295,"minimum":0,"format":"int64"},"preferred_ig_ids":{"nullable":true}}},"MentorUpdate":{"type":"object","properties":{"about":{"type":"string","nullable":true,"maxLength":1000},"expertise":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"maxLength":1000},"hours":{"type":"integer","maximum":4294967295,"minimum":0,"format":"int64"},"preferred_ig_ids":{"nullable":true}}}}},"paths":{"/api/v1/dashboard/mentor/profile/":{"patch":{"operationId":"dashboard_mentor_profile_partial_update","description":"Update the profile of a verified mentor.","tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedMentorUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedMentorUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedMentorUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/MentorUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/public/availability/{mentor\_id}/

> List active availability slots for a specific mentor.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"AvailabilitySlot":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"mentor_user_id":{"type":"string","readOnly":true},"ig_id":{"type":"string","nullable":true,"readOnly":true},"ig_name":{"type":"string","readOnly":true},"weekday":{"type":"integer","maximum":32767,"minimum":-32768},"start_time":{"type":"string","format":"time"},"end_time":{"type":"string","format":"time"},"timezone":{"type":"string","maxLength":64},"is_active":{"type":"boolean"},"valid_from":{"type":"string","format":"date","nullable":true},"valid_to":{"type":"string","format":"date","nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","end_time","ig_id","ig_name","mentor_user_id","start_time","updated_at","weekday"]}}},"paths":{"/api/v1/dashboard/mentor/public/availability/{mentor_id}/":{"get":{"operationId":"dashboard_mentor_public_availability_list","description":"List active availability slots for a specific mentor.","parameters":[{"in":"path","name":"mentor_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/AvailabilitySlot"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/public/profile/{mentor\_id}/

> View a mentor's profile publicly.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorDetail":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"user_full_name":{"type":"string","readOnly":true},"user_email":{"type":"string","readOnly":true},"about":{"type":"string","nullable":true,"maxLength":1000},"expertise":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"maxLength":1000},"hours":{"type":"integer","maximum":4294967295,"minimum":0,"format":"int64"},"mentor_tier":{"enum":["IG_MENTOR","MENTOR","COMPANY_MENTOR","CAMPUS_MENTOR"],"type":"string","description":"* `IG_MENTOR` - IG Mentor\n* `MENTOR` - Mentor\n* `COMPANY_MENTOR` - Company Mentor\n* `CAMPUS_MENTOR` - Campus Mentor"},"status":{"enum":["PENDING","APPROVED","REJECTED"],"type":"string","description":"* `PENDING` - Pending\n* `APPROVED` - Approved\n* `REJECTED` - Rejected"},"preferred_ig_ids":{"nullable":true},"verified_at":{"type":"string","format":"date-time","nullable":true},"verification_note":{"type":"string","nullable":true,"maxLength":500},"updated_at":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"user":{"type":"string"},"org":{"type":"string","nullable":true},"verified_by":{"type":"string","nullable":true},"updated_by":{"type":"string"},"created_by":{"type":"string"}},"required":["created_by","updated_by","user","user_email","user_full_name"]}}},"paths":{"/api/v1/dashboard/mentor/public/profile/{mentor_id}/":{"get":{"operationId":"dashboard_mentor_public_profile_retrieve","description":"View a mentor's profile publicly.","parameters":[{"in":"path","name":"mentor_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/MentorDetail"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/mentor/register/

> Submit a new mentor registration.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorRegister":{"type":"object","properties":{"about":{"type":"string","nullable":true,"maxLength":1000},"expertise":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"maxLength":1000},"hours":{"type":"integer","maximum":4294967295,"minimum":0,"format":"int64"},"preferred_ig_ids":{"nullable":true}}}}},"paths":{"/api/v1/dashboard/mentor/register/":{"post":{"operationId":"dashboard_mentor_register_create","description":"Submit a new mentor registration.","tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentorRegister"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/MentorRegister"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/MentorRegister"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/MentorRegister"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/mentor/register/

> Update a pending mentor application or resubmit a rejected one.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedMentorUpdate":{"type":"object","properties":{"about":{"type":"string","nullable":true,"maxLength":1000},"expertise":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"maxLength":1000},"hours":{"type":"integer","maximum":4294967295,"minimum":0,"format":"int64"},"preferred_ig_ids":{"nullable":true}}},"MentorUpdate":{"type":"object","properties":{"about":{"type":"string","nullable":true,"maxLength":1000},"expertise":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true,"maxLength":1000},"hours":{"type":"integer","maximum":4294967295,"minimum":0,"format":"int64"},"preferred_ig_ids":{"nullable":true}}}}},"paths":{"/api/v1/dashboard/mentor/register/":{"patch":{"operationId":"dashboard_mentor_register_partial_update","description":"Update a pending mentor application or resubmit a rejected one.","tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedMentorUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedMentorUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedMentorUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/MentorUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/session/admin/list/

> Admin view to list all mentorship sessions.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"SessionList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"ig_id":{"type":"string","nullable":true,"readOnly":true},"ig_name":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":150},"mode":{"enum":["ONLINE","OFFLINE","HYBRID"],"type":"string","description":"* `ONLINE` - Online\n* `OFFLINE` - Offline\n* `HYBRID` - Hybrid"},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"status":{"enum":["SCHEDULED","PENDING_APPROVAL","COMPLETED","CANCELLED","REJECTED"],"type":"string","description":"* `SCHEDULED` - Scheduled\n* `PENDING_APPROVAL` - Pending Approval\n* `COMPLETED` - Completed\n* `CANCELLED` - Cancelled\n* `REJECTED` - Rejected"},"created_by_id":{"type":"string","readOnly":true},"created_by_name":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"max_participants":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}},"required":["created_at","created_by_id","created_by_name","ends_at","ig_id","ig_name","starts_at","status","title"]}}},"paths":{"/api/v1/dashboard/mentor/session/admin/list/":{"get":{"operationId":"dashboard_mentor_session_admin_list_list","description":"Admin view to list all mentorship sessions.","parameters":[{"in":"query","name":"ig_id","schema":{"type":"string"}},{"in":"query","name":"status","schema":{"type":"string"}}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/SessionList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/mentor/session/admin/verify/{session\_id}/

> Verify or reject a mentorship session.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedAdminSessionVerify":{"type":"object","properties":{"status":{"enum":["SCHEDULED","REJECTED"],"type":"string","description":"* `SCHEDULED` - SCHEDULED\n* `REJECTED` - REJECTED"}}}}},"paths":{"/api/v1/dashboard/mentor/session/admin/verify/{session_id}/":{"patch":{"operationId":"dashboard_mentor_session_admin_verify_partial_update","description":"Verify or reject a mentorship session.","parameters":[{"in":"path","name":"session_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedAdminSessionVerify"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedAdminSessionVerify"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedAdminSessionVerify"}}}},"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/mentor/session/available/

> List all scheduled sessions for the IGs the user belongs to.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"SessionList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"ig_id":{"type":"string","nullable":true,"readOnly":true},"ig_name":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":150},"mode":{"enum":["ONLINE","OFFLINE","HYBRID"],"type":"string","description":"* `ONLINE` - Online\n* `OFFLINE` - Offline\n* `HYBRID` - Hybrid"},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"status":{"enum":["SCHEDULED","PENDING_APPROVAL","COMPLETED","CANCELLED","REJECTED"],"type":"string","description":"* `SCHEDULED` - Scheduled\n* `PENDING_APPROVAL` - Pending Approval\n* `COMPLETED` - Completed\n* `CANCELLED` - Cancelled\n* `REJECTED` - Rejected"},"created_by_id":{"type":"string","readOnly":true},"created_by_name":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"max_participants":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}},"required":["created_at","created_by_id","created_by_name","ends_at","ig_id","ig_name","starts_at","status","title"]}}},"paths":{"/api/v1/dashboard/mentor/session/available/":{"get":{"operationId":"dashboard_mentor_session_available_list","description":"List all scheduled sessions for the IGs the user belongs to.","tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/SessionList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/mentor/session/create/

> Create a new mentorship session.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"SessionCreate":{"type":"object","properties":{"ig":{"type":"string","nullable":true},"title":{"type":"string","maxLength":150},"description":{"type":"string","nullable":true},"mode":{"enum":["ONLINE","OFFLINE","HYBRID"],"type":"string","description":"* `ONLINE` - Online\n* `OFFLINE` - Offline\n* `HYBRID` - Hybrid"},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"meeting_link":{"type":"string","nullable":true,"maxLength":500},"venue":{"type":"string","nullable":true,"maxLength":255},"max_participants":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}},"required":["ends_at","starts_at","title"]}}},"paths":{"/api/v1/dashboard/mentor/session/create/":{"post":{"operationId":"dashboard_mentor_session_create_create","description":"Create a new mentorship session.","tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionCreate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/SessionCreate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/SessionCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/SessionCreate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/session/list/

> List all sessions created by the logged-in mentor, or get details of a specific session.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"SessionList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"ig_id":{"type":"string","nullable":true,"readOnly":true},"ig_name":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":150},"mode":{"enum":["ONLINE","OFFLINE","HYBRID"],"type":"string","description":"* `ONLINE` - Online\n* `OFFLINE` - Offline\n* `HYBRID` - Hybrid"},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"status":{"enum":["SCHEDULED","PENDING_APPROVAL","COMPLETED","CANCELLED","REJECTED"],"type":"string","description":"* `SCHEDULED` - Scheduled\n* `PENDING_APPROVAL` - Pending Approval\n* `COMPLETED` - Completed\n* `CANCELLED` - Cancelled\n* `REJECTED` - Rejected"},"created_by_id":{"type":"string","readOnly":true},"created_by_name":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"max_participants":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}},"required":["created_at","created_by_id","created_by_name","ends_at","ig_id","ig_name","starts_at","status","title"]}}},"paths":{"/api/v1/dashboard/mentor/session/list/":{"get":{"operationId":"dashboard_mentor_session_list_list","description":"List all sessions created by the logged-in mentor, or get details of a specific session.","parameters":[{"in":"query","name":"status","schema":{"type":"string"}}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/SessionList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/session/list/{session\_id}/

> List all sessions created by the logged-in mentor, or get details of a specific session.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"SessionList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"ig_id":{"type":"string","nullable":true,"readOnly":true},"ig_name":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":150},"mode":{"enum":["ONLINE","OFFLINE","HYBRID"],"type":"string","description":"* `ONLINE` - Online\n* `OFFLINE` - Offline\n* `HYBRID` - Hybrid"},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"status":{"enum":["SCHEDULED","PENDING_APPROVAL","COMPLETED","CANCELLED","REJECTED"],"type":"string","description":"* `SCHEDULED` - Scheduled\n* `PENDING_APPROVAL` - Pending Approval\n* `COMPLETED` - Completed\n* `CANCELLED` - Cancelled\n* `REJECTED` - Rejected"},"created_by_id":{"type":"string","readOnly":true},"created_by_name":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"max_participants":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}},"required":["created_at","created_by_id","created_by_name","ends_at","ig_id","ig_name","starts_at","status","title"]}}},"paths":{"/api/v1/dashboard/mentor/session/list/{session_id}/":{"get":{"operationId":"dashboard_mentor_session_list_list_2","description":"List all sessions created by the logged-in mentor, or get details of a specific session.","parameters":[{"in":"path","name":"session_id","schema":{"type":"string"},"required":true},{"in":"query","name":"status","schema":{"type":"string"}}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/SessionList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/mentor/session/participant/feedback/{session\_id}/

> Allows a user to submit feedback for a session they attended.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedParticipantFeedback":{"type":"object","properties":{"feedback":{"type":"string","nullable":true}}},"ParticipantList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"session_id":{"type":"string","readOnly":true},"user_id":{"type":"string","readOnly":true},"user_full_name":{"type":"string","readOnly":true},"mu_id":{"type":"string","readOnly":true},"participant_role":{"enum":["MENTOR","MENTEE","CO_MENTOR"],"type":"string","description":"* `MENTOR` - Mentor\n* `MENTEE` - Mentee\n* `CO_MENTOR` - Co-Mentor"},"attendance_status":{"enum":["INVITED","ATTENDED","ABSENT"],"type":"string","description":"* `INVITED` - Invited\n* `ATTENDED` - Attended\n* `ABSENT` - Absent"},"progress_note":{"type":"string","nullable":true,"maxLength":500},"feedback":{"type":"string","nullable":true},"contributed_minutes":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","mu_id","participant_role","session_id","user_full_name","user_id"]}}},"paths":{"/api/v1/dashboard/mentor/session/participant/feedback/{session_id}/":{"patch":{"operationId":"dashboard_mentor_session_participant_feedback_partial_update","description":"Allows a user to submit feedback for a session they attended.","parameters":[{"in":"path","name":"session_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedParticipantFeedback"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedParticipantFeedback"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedParticipantFeedback"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/ParticipantList"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/session/participant/history/

> List all mentorship sessions the logged-in user has joined.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"ParticipantList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"session_id":{"type":"string","readOnly":true},"user_id":{"type":"string","readOnly":true},"user_full_name":{"type":"string","readOnly":true},"mu_id":{"type":"string","readOnly":true},"participant_role":{"enum":["MENTOR","MENTEE","CO_MENTOR"],"type":"string","description":"* `MENTOR` - Mentor\n* `MENTEE` - Mentee\n* `CO_MENTOR` - Co-Mentor"},"attendance_status":{"enum":["INVITED","ATTENDED","ABSENT"],"type":"string","description":"* `INVITED` - Invited\n* `ATTENDED` - Attended\n* `ABSENT` - Absent"},"progress_note":{"type":"string","nullable":true,"maxLength":500},"feedback":{"type":"string","nullable":true},"contributed_minutes":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","mu_id","participant_role","session_id","user_full_name","user_id"]}}},"paths":{"/api/v1/dashboard/mentor/session/participant/history/":{"get":{"operationId":"dashboard_mentor_session_participant_history_list","description":"List all mentorship sessions the logged-in user has joined.","tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/session/participant/list/{session\_id}/

> Mentor view to list all participants in a specific session.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"ParticipantList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"session_id":{"type":"string","readOnly":true},"user_id":{"type":"string","readOnly":true},"user_full_name":{"type":"string","readOnly":true},"mu_id":{"type":"string","readOnly":true},"participant_role":{"enum":["MENTOR","MENTEE","CO_MENTOR"],"type":"string","description":"* `MENTOR` - Mentor\n* `MENTEE` - Mentee\n* `CO_MENTOR` - Co-Mentor"},"attendance_status":{"enum":["INVITED","ATTENDED","ABSENT"],"type":"string","description":"* `INVITED` - Invited\n* `ATTENDED` - Attended\n* `ABSENT` - Absent"},"progress_note":{"type":"string","nullable":true,"maxLength":500},"feedback":{"type":"string","nullable":true},"contributed_minutes":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","mu_id","participant_role","session_id","user_full_name","user_id"]}}},"paths":{"/api/v1/dashboard/mentor/session/participant/list/{session_id}/":{"get":{"operationId":"dashboard_mentor_session_participant_list_list","description":"Mentor view to list all participants in a specific session.","parameters":[{"in":"path","name":"session_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/mentor/session/participant/update/{link\_id}/

> Mentor view to update participant's attendance and progress.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedParticipantUpdate":{"type":"object","properties":{"attendance_status":{"enum":["INVITED","ATTENDED","ABSENT"],"type":"string","description":"* `INVITED` - Invited\n* `ATTENDED` - Attended\n* `ABSENT` - Absent"},"progress_note":{"type":"string","nullable":true,"maxLength":500},"contributed_minutes":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}}},"ParticipantUpdate":{"type":"object","properties":{"attendance_status":{"enum":["INVITED","ATTENDED","ABSENT"],"type":"string","description":"* `INVITED` - Invited\n* `ATTENDED` - Attended\n* `ABSENT` - Absent"},"progress_note":{"type":"string","nullable":true,"maxLength":500},"contributed_minutes":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}}}}},"paths":{"/api/v1/dashboard/mentor/session/participant/update/{link_id}/":{"patch":{"operationId":"dashboard_mentor_session_participant_update_partial_update","description":"Mentor view to update participant's attendance and progress.","parameters":[{"in":"path","name":"link_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedParticipantUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedParticipantUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedParticipantUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/ParticipantUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/mentor/session/participation/join/{session\_id}/

> Allows a MuLearn user to join a scheduled mentorship session.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"ParticipantList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"session_id":{"type":"string","readOnly":true},"user_id":{"type":"string","readOnly":true},"user_full_name":{"type":"string","readOnly":true},"mu_id":{"type":"string","readOnly":true},"participant_role":{"enum":["MENTOR","MENTEE","CO_MENTOR"],"type":"string","description":"* `MENTOR` - Mentor\n* `MENTEE` - Mentee\n* `CO_MENTOR` - Co-Mentor"},"attendance_status":{"enum":["INVITED","ATTENDED","ABSENT"],"type":"string","description":"* `INVITED` - Invited\n* `ATTENDED` - Attended\n* `ABSENT` - Absent"},"progress_note":{"type":"string","nullable":true,"maxLength":500},"feedback":{"type":"string","nullable":true},"contributed_minutes":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","mu_id","participant_role","session_id","user_full_name","user_id"]}}},"paths":{"/api/v1/dashboard/mentor/session/participation/join/{session_id}/":{"post":{"operationId":"dashboard_mentor_session_participation_join_create","description":"Allows a MuLearn user to join a scheduled mentorship session.","parameters":[{"in":"path","name":"session_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/ParticipantList"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## DELETE /api/v1/dashboard/mentor/session/update/{session\_id}/

> Delete a mentorship session.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/mentor/session/update/{session_id}/":{"delete":{"operationId":"dashboard_mentor_session_update_destroy","description":"Delete a mentorship session.","parameters":[{"in":"path","name":"session_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"204":{"description":"No response body"}}}}}}
```

## PATCH /api/v1/dashboard/mentor/session/update/{session\_id}/

> Update or cancel a mentorship session.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedSessionUpdate":{"type":"object","properties":{"title":{"type":"string","maxLength":150},"description":{"type":"string","nullable":true},"mode":{"enum":["ONLINE","OFFLINE","HYBRID"],"type":"string","description":"* `ONLINE` - Online\n* `OFFLINE` - Offline\n* `HYBRID` - Hybrid"},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"meeting_link":{"type":"string","nullable":true,"maxLength":500},"venue":{"type":"string","nullable":true,"maxLength":255},"max_participants":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}}},"SessionUpdate":{"type":"object","properties":{"title":{"type":"string","maxLength":150},"description":{"type":"string","nullable":true},"mode":{"enum":["ONLINE","OFFLINE","HYBRID"],"type":"string","description":"* `ONLINE` - Online\n* `OFFLINE` - Offline\n* `HYBRID` - Hybrid"},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":"string","format":"date-time"},"meeting_link":{"type":"string","nullable":true,"maxLength":500},"venue":{"type":"string","nullable":true,"maxLength":255},"max_participants":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true}},"required":["ends_at","starts_at","title"]}}},"paths":{"/api/v1/dashboard/mentor/session/update/{session_id}/":{"patch":{"operationId":"dashboard_mentor_session_update_partial_update","description":"Update or cancel a mentorship session.","parameters":[{"in":"path","name":"session_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedSessionUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedSessionUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedSessionUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/SessionUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/mentor/status/

> Check the status of a mentor registration.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/mentor/status/":{"get":{"operationId":"dashboard_mentor_status_retrieve","description":"Check the status of a mentor registration.","tags":["Mentor"],"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/mentor/tasks/

> List all tasks submitted by the authenticated mentor (filtered by requested\_by). Supports pagination, search, and sort.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorTaskListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{}}},"pagination":{"type":"object","additionalProperties":{}}},"required":["data","pagination"]}}},"paths":{"/api/v1/dashboard/mentor/tasks/":{"get":{"operationId":"dashboard_mentor_tasks_retrieve","description":"List all tasks submitted by the authenticated mentor (filtered by requested_by). Supports pagination, search, and sort.","parameters":[{"in":"query","name":"approval_status","schema":{"type":"string"},"description":"Filter by approval_status: pending | approved | rejected"}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/MentorTaskListResponse"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/mentor/tasks/

> Create a new task for an IG the mentor belongs to. The task is saved with approval\_status='pending' and active=False until an admin approves it. Accepts an optional skill\_ids list (array of active skill UUIDs) alongside the task fields — mirrors admin task creation behaviour.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorTaskCreate":{"type":"object","description":"Mirrors admin TaskModifySerializer field-for-field.\nLocked fields (active, approval_status, requested_by, requested_at)\nare injected by the view via serializer.save(**overrides).","properties":{"hashtag":{"type":"string","maxLength":75},"title":{"type":"string","maxLength":75},"karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"usage_count":{"type":"integer","maximum":2147483647,"minimum":-2147483648},"description":{"type":"string","nullable":true},"type":{"type":"string"},"level":{"type":"string","nullable":true},"ig":{"type":"string"},"created_by":{"type":"string"},"updated_by":{"type":"string"}},"required":["created_by","hashtag","ig","title","type","updated_by"]}}},"paths":{"/api/v1/dashboard/mentor/tasks/":{"post":{"operationId":"dashboard_mentor_tasks_create","description":"Create a new task for an IG the mentor belongs to. The task is saved with approval_status='pending' and active=False until an admin approves it. Accepts an optional skill_ids list (array of active skill UUIDs) alongside the task fields — mirrors admin task creation behaviour.","tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentorTaskCreate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/MentorTaskCreate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/MentorTaskCreate"}}},"required":true},"responses":{"200":{"description":"Task submitted for approval."}}}}}}
```

## GET /api/v1/dashboard/mentor/tasks/{task\_id}/

> Retrieve the detail of a specific task submitted by the mentor.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorTaskList":{"type":"object","description":"Read-only list/detail serializer — mirrors admin TaskListSerializer.","properties":{"id":{"type":"string","maxLength":36},"hashtag":{"type":"string","maxLength":75},"discord_link":{"type":"string","nullable":true,"maxLength":200},"title":{"type":"string","maxLength":75},"description":{"type":"string","nullable":true},"karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"channel":{"type":"string"},"type":{"type":"string"},"active":{"type":"boolean"},"variable_karma":{"type":"boolean"},"usage_count":{"type":"integer","maximum":2147483647,"minimum":-2147483648},"level":{"type":"string"},"org":{"type":"string"},"ig":{"type":"string"},"event":{"type":"string","nullable":true,"maxLength":50},"bonus_karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"bonus_time":{"type":"string","format":"date-time","nullable":true},"approval_status":{"enum":["approved","pending","rejected"],"type":"string","description":"* `approved` - Approved\n* `pending` - Pending\n* `rejected` - Rejected"},"rejection_reason":{"type":"string","nullable":true},"reviewed_at":{"type":"string","format":"date-time","nullable":true},"requested_by_name":{"type":"string"},"requested_at":{"type":"string","format":"date-time","nullable":true},"skills":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","hashtag","skills","title","type","updated_at"]}}},"paths":{"/api/v1/dashboard/mentor/tasks/{task_id}/":{"get":{"operationId":"dashboard_mentor_tasks_retrieve_2","description":"Retrieve the detail of a specific task submitted by the mentor.","parameters":[{"in":"path","name":"task_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/MentorTaskList"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PUT /api/v1/dashboard/mentor/tasks/{task\_id}/

> Update a task submitted by the mentor. Regardless of the current approval\_status, the task reverts to 'pending' and active=False after editing (triggering re-approval). If the task was previously approved, it is deactivated until re-approved. Accepts optional skill\_ids to replace the current skill links.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorTaskUpdate":{"type":"object","description":"Partial update serializer — same writable fields as create.\nThe view injects approval_status / active / review-reset fields via save().","properties":{"hashtag":{"type":"string","maxLength":75},"title":{"type":"string","maxLength":75},"karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"usage_count":{"type":"integer","maximum":2147483647,"minimum":-2147483648},"description":{"type":"string","nullable":true},"type":{"type":"string"},"level":{"type":"string","nullable":true},"ig":{"type":"string","nullable":true},"updated_by":{"type":"string"}},"required":["hashtag","title","type","updated_by"]}}},"paths":{"/api/v1/dashboard/mentor/tasks/{task_id}/":{"put":{"operationId":"dashboard_mentor_tasks_update","description":"Update a task submitted by the mentor. Regardless of the current approval_status, the task reverts to 'pending' and active=False after editing (triggering re-approval). If the task was previously approved, it is deactivated until re-approved. Accepts optional skill_ids to replace the current skill links.","parameters":[{"in":"path","name":"task_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentorTaskUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/MentorTaskUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/MentorTaskUpdate"}}},"required":true},"responses":{"200":{"description":"Task updated and re-submitted for approval."}}}}}}
```

## DELETE /api/v1/dashboard/mentor/tasks/{task\_id}/

> Delete a task submitted by the mentor. Only allowed when approval\_status is 'pending'. Approved or rejected tasks cannot be deleted.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/mentor/tasks/{task_id}/":{"delete":{"operationId":"dashboard_mentor_tasks_destroy","description":"Delete a task submitted by the mentor. Only allowed when approval_status is 'pending'. Approved or rejected tasks cannot be deleted.","parameters":[{"in":"path","name":"task_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"responses":{"200":{"description":"Task deleted successfully."}}}}}}
```

## GET /api/v1/dashboard/mentor/tasks/ig-dropdown/

> Returns only the Interest Groups the authenticated mentor belongs to (active MENTOR assignment). Use this list to populate the IG selector when creating a task.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MentorIGDropdownResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}}},"paths":{"/api/v1/dashboard/mentor/tasks/ig-dropdown/":{"get":{"operationId":"dashboard_mentor_tasks_ig_dropdown_list","description":"Returns only the Interest Groups the authenticated mentor belongs to (active MENTOR assignment). Use this list to populate the IG selector when creating a task.","tags":["Mentor"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/MentorIGDropdownResponse"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/mentor/verify/{mentor\_id}/

> Verify or reject a mentor application.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedMentorVerify":{"type":"object","properties":{"status":{"enum":["APPROVED","REJECTED"],"type":"string","description":"* `APPROVED` - APPROVED\n* `REJECTED` - REJECTED"},"verification_note":{"type":"string"}}}}},"paths":{"/api/v1/dashboard/mentor/verify/{mentor_id}/":{"patch":{"operationId":"dashboard_mentor_verify_partial_update","description":"Verify or reject a mentor application.","parameters":[{"in":"path","name":"mentor_id","schema":{"type":"string"},"required":true}],"tags":["Mentor"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedMentorVerify"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedMentorVerify"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedMentorVerify"}}}},"responses":{"200":{"description":"No response body"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mulearn.org/api-reference/mentor.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
