Skip to content

Instantly share code, notes, and snippets.

@facundopareja
Created December 4, 2025 07:10
Show Gist options
  • Select an option

  • Save facundopareja/7385dc40855260202fc8031b5bef04ed to your computer and use it in GitHub Desktop.

Select an option

Save facundopareja/7385dc40855260202fc8031b5bef04ed to your computer and use it in GitHub Desktop.
API specification 4/12
{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/me/inscriptions/template":{"get":{"tags":["spreadsheet"],"summary":"Get Inscriptions Spreadsheet","description":"Retrieve the inscriptions template.","operationId":"get_inscriptions_spreadsheet_me_inscriptions_template_get","responses":{"200":{"description":"Inscription template succesfully ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EncodedFile"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Failed to generate inscriptions spreadsheet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/me/inscriptions/spreadsheet-validation":{"post":{"tags":["spreadsheet"],"summary":"Validate Spreadsheet Route","description":"Validate the inscriptions spreadsheet.","operationId":"validate_spreadsheet_route_me_inscriptions_spreadsheet_validation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EncodedFile"}}},"required":true},"responses":{"200":{"description":"Inscription template is valid","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SpreadsheetRow"},"type":"array","title":"Response Validate Spreadsheet Route Me Inscriptions Spreadsheet Validation Post"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Failed to process inscriptions spreadsheet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Invalid spreadsheet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/login":{"post":{"tags":["login"],"summary":"Login Route","description":"Return a JWT if login data is valid.","operationId":"login_route_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginData"}}},"required":true},"responses":{"200":{"description":"Login successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"401":{"description":"Invalid login data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me":{"get":{"tags":["users"],"summary":"Get User Details Route","description":"Return user profile details based on JWT token in request header.","operationId":"get_user_details_route_me_get","responses":{"200":{"description":"Details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDetails"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"patch":{"tags":["users"],"summary":"Update User Details Route","description":"Change user details based on JWT token in request header.","operationId":"update_user_details_route_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewUserDetails"}}},"required":true},"responses":{"200":{"description":"User details updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDetails"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/me/documents":{"get":{"tags":["users"],"summary":"Get User Documents Route","description":"Return user documents based on JWT token in request header.","operationId":"get_user_documents_route_me_documents_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":5,"title":"Limit"}}],"responses":{"200":{"description":"Documents retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Documents"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me/password":{"patch":{"tags":["users"],"summary":"Update User Password Route","description":"Change user details based on JWT token in request header.","operationId":"update_user_password_route_me_password_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewPassword"}}},"required":true},"responses":{"200":{"description":"User password succesfully updated","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/me/image":{"patch":{"tags":["users"],"summary":"Update User Image Route","description":"Change user details based on JWT token in request header.","operationId":"update_user_image_route_me_image_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewImage"}}},"required":true},"responses":{"200":{"description":"User profile image succesfully updated","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/institutes":{"get":{"tags":["users"],"summary":"Get Institutes Route","description":"Return all active institutes with specifie course_id. Admin-only.","operationId":"get_institutes_route_institutes_get","responses":{"200":{"description":"Succesfully retrieved institutes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Institutes"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/institutes/{institute_id}":{"get":{"tags":["users"],"summary":"Get Institute Route","description":"Return details for specified institute_id. Admin-only.","operationId":"get_institute_route_institutes__institute_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}}],"responses":{"200":{"description":"Succesfully retrieved institutes","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Institutes"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/discounts":{"get":{"tags":["courses"],"summary":"Get Discounts Route","description":"Return all discounts available in the system.","operationId":"get_discounts_route_discounts_get","responses":{"200":{"description":"Discounts retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscountsData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/me/courses":{"get":{"tags":["courses"],"summary":"Get Courses Route","description":"Return all courses for a given user.","operationId":"get_courses_route_me_courses_get","responses":{"200":{"description":"Courses retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoursesData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/periods/{period_id}/courses":{"get":{"tags":["courses"],"summary":"Get Courses Admin Route","description":"Return all courses. Admin-only.","operationId":"get_courses_admin_route_periods__period_id__courses_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Courses retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoursesData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/periods/{period_id}/courses":{"get":{"tags":["courses"],"summary":"Get Institute Courses Route","description":"Return all courses for a given user.","operationId":"get_institute_courses_route_institutes__institute_id__periods__period_id__courses_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Courses retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoursesData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me/courses/{course_id}/bibliography":{"get":{"tags":["courses"],"summary":"Get Bibliography Route","description":"Return bibliography for a given course.","operationId":"get_bibliography_route_me_courses__course_id__bibliography_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}}],"responses":{"200":{"description":"Bibliography retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoursebookData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Course not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/exams/types":{"get":{"tags":["exams"],"summary":"Get Exam Types Route","description":"Return all exam types available in the system.","operationId":"get_exam_types_route_exams_types_get","responses":{"200":{"description":"Exam types retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamTypesData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/institutes/{institute_id}/periods/{period_id}/oral-exams-sheet":{"get":{"tags":["exams"],"summary":"Get Oral Examination Sheet Route","description":"Return all exam types available in the system.","operationId":"get_oral_examination_sheet_route_institutes__institute_id__periods__period_id__oral_exams_sheet_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Oral sheet successfully generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamTypesData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/periods/{period_id}/attendance-sheet":{"get":{"tags":["exams"],"summary":"Get Attendance Sheet Route","description":"Return all exam types available in the system.","operationId":"get_attendance_sheet_route_institutes__institute_id__periods__period_id__attendance_sheet_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"compact","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Compact"}}],"responses":{"200":{"description":"Oral sheet successfully generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamTypesData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/courses/{course_id}/periods/{period_id}/inscriptions/sheet":{"get":{"tags":["exams"],"summary":"Get Course Sheet Route","description":"Generate and return course sheet.","operationId":"get_course_sheet_route_institutes__institute_id__courses__course_id__periods__period_id__inscriptions_sheet_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Course sheet successfully generated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamTypesData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/periods/{period_id}/exam-date":{"get":{"tags":["exams"],"summary":"Get Exam Date For Institute","description":"Return exam date for a specific institute.","operationId":"get_exam_date_for_institute_institutes__institute_id__periods__period_id__exam_date_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Exam date successfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamDate"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["exams"],"summary":"Update Exam Date Route","description":"Return exam date for a specific institute.","operationId":"update_exam_date_route_institutes__institute_id__periods__period_id__exam_date_put","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamDate"}}}},"responses":{"200":{"description":"Exam date successfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExamDate"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/backgrounds":{"post":{"tags":["background"],"summary":"Post Background Route","description":"Store the background image. Admin-only.","operationId":"post_background_route_backgrounds_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Background"}}},"required":true},"responses":{"200":{"description":"Background image stored successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Background"}}}},"401":{"description":"Token has no admin privileges","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Failed to store background image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/backgrounds/latest":{"get":{"tags":["background"],"summary":"Get Background Route","description":"Retrieve the background image.","operationId":"get_background_route_backgrounds_latest_get","responses":{"200":{"description":"Background image stored successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Background"}}}},"401":{"description":"Token has no admin privileges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Failed to retrieve background image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/me/inscriptions":{"get":{"tags":["inscriptions"],"summary":"Get User Inscriptions Route","description":"Return user inscriptions based on JWT token in request header.","operationId":"get_user_inscriptions_route_me_inscriptions_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"complete","in":"query","required":true,"schema":{"type":"boolean","title":"Complete"}}],"responses":{"200":{"description":"Inscriptions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InscriptionsData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/periods/{period_id}/summary":{"get":{"tags":["inscriptions"],"summary":"Get Student Details For Institute Route","description":"Return student details for a specific institute (all courses). Admin-only.","operationId":"get_student_details_for_institute_route_institutes__institute_id__periods__period_id__summary_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Students data succesfully retrieved","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AllInscriptionData"},"title":"Response Get Student Details For Institute Route Institutes Institute Id Periods Period Id Summary Get","$ref":"#/components/schemas/StudentsData"}}}},"401":{"description":"Token has no admin privileges","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/periods/{period_id}/inscriptions":{"get":{"tags":["inscriptions"],"summary":"Get All Inscriptions Route","description":"Return user inscriptions based on JWT token in request header.","operationId":"get_all_inscriptions_route_periods__period_id__inscriptions_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"complete","in":"query","required":true,"schema":{"type":"boolean","title":"Complete"}}],"responses":{"200":{"description":"Inscriptions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminInscriptionsData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me/courses/{course_id}/inscriptions":{"post":{"tags":["inscriptions"],"summary":"Post Student Signup Route","description":"Sign up user to specified course.","operationId":"post_student_signup_route_me_courses__course_id__inscriptions_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultipleInstituteSignUp"}}}},"responses":{"200":{"description":"New student inscription successful","content":{"application/json":{"schema":{}}}},"401":{"description":"Token has no admin privileges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Repeated DNI for student inscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Sign up in complete course","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["inscriptions"],"summary":"Get My Students Details Route","description":"Return student details for a specific token owner's course.","operationId":"get_my_students_details_route_me_courses__course_id__inscriptions_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}}],"responses":{"200":{"description":"Students data succesfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentsData"}}}},"404":{"description":"User or course not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/periods/{period_id}/inscriptions":{"get":{"tags":["inscriptions"],"summary":"Get Institute Inscriptions Route","description":"Return user inscriptions based institute_id path parameter.","operationId":"get_institute_inscriptions_route_institutes__institute_id__periods__period_id__inscriptions_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"complete","in":"query","required":true,"schema":{"type":"boolean","title":"Complete"}}],"responses":{"200":{"description":"Inscriptions retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InscriptionsData"}}}},"401":{"description":"Token has no admin privileges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/periods/{period_id}/inscriptions/{inscription_id}":{"get":{"tags":["inscriptions"],"summary":"Get Inscription Admin Route","description":"Return user inscriptions based institute_id path parameter.","operationId":"get_inscription_admin_route_periods__period_id__inscriptions__inscription_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"inscription_id","in":"path","required":true,"schema":{"type":"integer","title":"Inscription Id"}}],"responses":{"200":{"description":"Inscription retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentInscriptionData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Inscription not found for this user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["inscriptions"],"summary":"Update Inscription Admin Route","description":"Update student inscription details.","operationId":"update_inscription_admin_route_periods__period_id__inscriptions__inscription_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"inscription_id","in":"path","required":true,"schema":{"type":"integer","title":"Inscription Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentInscriptionUpdateData"}}}},"responses":{"200":{"description":"Inscription updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentInscriptionData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Inscription not found for this user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Repeated DNI for student inscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["inscriptions"],"summary":"Delete Inscription Admin Route","description":"Delete student inscription from selected inscriptions table.","operationId":"delete_inscription_admin_route_periods__period_id__inscriptions__inscription_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"inscription_id","in":"path","required":true,"schema":{"type":"integer","title":"Inscription Id"}}],"responses":{"200":{"description":"Succesful deletion attempt","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/inscriptions/{inscription_id}":{"get":{"tags":["inscriptions"],"summary":"Get Inscription User Route","description":"Return user inscriptions based institute_id path parameter.","operationId":"get_inscription_user_route_inscriptions__inscription_id__get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"inscription_id","in":"path","required":true,"schema":{"type":"integer","title":"Inscription Id"}}],"responses":{"200":{"description":"Inscription retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentInscriptionData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Inscription not found for this user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["inscriptions"],"summary":"Update Inscription User Route","description":"Update student inscription details.","operationId":"update_inscription_user_route_inscriptions__inscription_id__patch","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"inscription_id","in":"path","required":true,"schema":{"type":"integer","title":"Inscription Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentInscriptionUpdateData"}}}},"responses":{"200":{"description":"Inscription updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentInscriptionData"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Inscription not found for this user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Repeated DNI for student inscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["inscriptions"],"summary":"Delete Inscription User Route","description":"Delete student inscription from selected inscriptions table.","operationId":"delete_inscription_user_route_inscriptions__inscription_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"inscription_id","in":"path","required":true,"schema":{"type":"integer","title":"Inscription Id"}}],"responses":{"200":{"description":"Succesful deletion attempt","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/me/courses/{course_id}/inscriptions/complete":{"post":{"tags":["inscriptions"],"summary":"Change My Inscription Status Route","description":"Change inscription status for token owner's course to complete.","operationId":"change_my_inscription_status_route_me_courses__course_id__inscriptions_complete_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}}],"responses":{"200":{"description":"Inscription successfully set as complete","content":{"application/json":{"schema":{}}}},"401":{"description":"Token has no admin privileges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User or course not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/courses/{course_id}/periods/{period_id}/inscriptions/complete":{"post":{"tags":["inscriptions"],"summary":"Change Institute Inscription Status Route","description":"Change inscription status for institute/course to complete. Admin-only.","operationId":"change_institute_inscription_status_route_institutes__institute_id__courses__course_id__periods__period_id__inscriptions_complete_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Inscription successfully set as complete","content":{"application/json":{"schema":{}}}},"401":{"description":"Token has no admin privileges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User or course not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/courses/{course_id}/periods/{period_id}/inscriptions":{"get":{"tags":["inscriptions"],"summary":"Get Students Details Route","description":"Return student details for a specific institute/course. Admin-only.","operationId":"get_students_details_route_institutes__institute_id__courses__course_id__periods__period_id__inscriptions_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Students data succesfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudentsData"}}}},"401":{"description":"Token has no admin privileges.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["inscriptions"],"summary":"Post Student Signup Admin Route","description":"Sign up user to specified course in specified institute. Admin only.","operationId":"post_student_signup_admin_route_institutes__institute_id__courses__course_id__periods__period_id__inscriptions_post","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultipleInstituteSignUp"}}}},"responses":{"200":{"description":"New student inscription successful","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User, institute or course not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Repeated DNI for student inscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/periods":{"get":{"tags":["periods"],"summary":"Get Inscription Periods Route","description":"Return details for all inscription periods.","operationId":"get_inscription_periods_route_periods_get","responses":{"200":{"description":"Inscription period details successfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InscriptionPeriodsData"}}}},"401":{"description":"Invalid or non-admin token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]},"post":{"tags":["periods"],"summary":"Create Inscription Period Route","description":"Create inscription period and return all inscription periods.","operationId":"create_inscription_period_route_periods_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewPeriod"}}},"required":true},"responses":{"200":{"description":"Inscription period successfully created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InscriptionPeriodsData"}}}},"401":{"description":"Invalid or non-admin token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/periods/{period_id}":{"delete":{"tags":["periods"],"summary":"Delete Inscription Period Route","description":"Delete inscription period and return remaining inscription periods.","operationId":"delete_inscription_period_route_periods__period_id__delete","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}}],"responses":{"200":{"description":"Inscription period successfully deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InscriptionPeriodsData"}}}},"401":{"description":"Invalid or non-admin token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/teachers":{"get":{"tags":["teachers"],"summary":"Get Teachers Route","description":"Return all teachers available in the system.","operationId":"get_teachers_route_teachers_get","responses":{"200":{"description":"Teachers retrieved successfully","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Teacher"},"type":"array","title":"Response 200 Get Teachers Route Teachers Get"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"OAuth2PasswordBearer":[]}]}},"/institutes/{institute_id}/courses/{course_id}/periods/{period_id}/teacher-assignment":{"get":{"tags":["teachers"],"summary":"Get Assigned Teachers Route","description":"Return teachers assigned to that institute's course in a specific period.","operationId":"get_assigned_teachers_route_institutes__institute_id__courses__course_id__periods__period_id__teacher_assignment_get","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}}],"responses":{"200":{"description":"Teachers retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeacherAssignment"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/courses/{course_id}/periods/{period_id}/main-teacher":{"put":{"tags":["teachers"],"summary":"Set Main Teacher Route","description":"Assigned teachers to an institute's course in a specific period.","operationId":"set_main_teacher_route_institutes__institute_id__courses__course_id__periods__period_id__main_teacher_put","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Teacher"}}}},"responses":{"200":{"description":"Teachers successfully assigned","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/institutes/{institute_id}/courses/{course_id}/periods/{period_id}/auxiliary-teacher":{"put":{"tags":["teachers"],"summary":"Set Auxiliary Teacher Route","description":"Assigned teachers to an institute's course in a specific period.","operationId":"set_auxiliary_teacher_route_institutes__institute_id__courses__course_id__periods__period_id__auxiliary_teacher_put","security":[{"OAuth2PasswordBearer":[]}],"parameters":[{"name":"institute_id","in":"path","required":true,"schema":{"type":"integer","title":"Institute Id"}},{"name":"period_id","in":"path","required":true,"schema":{"type":"integer","title":"Period Id"}},{"name":"course_id","in":"path","required":true,"schema":{"type":"integer","title":"Course Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Teacher"}}}},"responses":{"200":{"description":"Teachers successfully assigned","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AdminInscriptionData":{"properties":{"institute_name":{"type":"string","title":"Institute Name"},"institute_id":{"type":"integer","title":"Institute Id"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["institute_name","institute_id","total"],"title":"AdminInscriptionData","description":"Inscription data for admin."},"AdminInscriptionsData":{"properties":{"current_inscription":{"type":"string","title":"Current Inscription"},"inscriptions":{"items":{"$ref":"#/components/schemas/AdminInscriptionData"},"type":"array","title":"Inscriptions"}},"type":"object","required":["current_inscription","inscriptions"],"title":"AdminInscriptionsData","description":"Inscriptions data for admin."},"AllInscriptionData":{"properties":{"course":{"$ref":"#/components/schemas/CourseData"},"students":{"$ref":"#/components/schemas/StudentsData"},"main_teacher":{"anyOf":[{"$ref":"#/components/schemas/Teacher"},{"type":"null"}]},"auxiliary_teacher":{"anyOf":[{"$ref":"#/components/schemas/Teacher"},{"type":"null"}]}},"type":"object","required":["course","students","main_teacher","auxiliary_teacher"],"title":"AllInscriptionData","description":"All inscription data for an institute."},"Background":{"properties":{"data_uri":{"type":"string","title":"Data Uri"}},"type":"object","required":["data_uri"],"title":"Background","description":"Background image schema."},"CourseData":{"properties":{"course_id":{"type":"integer","title":"Course Id"},"course_name":{"type":"string","title":"Course Name"},"course_complete":{"type":"boolean","title":"Course Complete"}},"type":"object","required":["course_id","course_name","course_complete"],"title":"CourseData","description":"Course data."},"CoursebookData":{"properties":{"bibliography_id":{"type":"integer","title":"Bibliography Id"},"bibliography_name":{"type":"string","title":"Bibliography Name"}},"type":"object","required":["bibliography_id","bibliography_name"],"title":"CoursebookData","description":"Coursebook data."},"CoursesData":{"properties":{"courses":{"items":{"$ref":"#/components/schemas/CourseData"},"type":"array","title":"Courses"}},"type":"object","required":["courses"],"title":"CoursesData","description":"Courses data."},"DiscountData":{"properties":{"discount_type":{"type":"integer","title":"Discount Type"},"discount_name":{"type":"string","title":"Discount Name"}},"type":"object","required":["discount_type","discount_name"],"title":"DiscountData","description":"Discount data."},"DiscountsData":{"properties":{"discounts":{"items":{"$ref":"#/components/schemas/DiscountData"},"type":"array","title":"Discounts"}},"type":"object","required":["discounts"],"title":"DiscountsData","description":"Discounts data."},"Document":{"properties":{"id":{"type":"integer","title":"Id"},"file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File"},"owner":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Owner"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"},"read":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Read"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","required":["id"],"title":"Document","description":"User document model."},"Documents":{"properties":{"documents":{"items":{"$ref":"#/components/schemas/Document"},"type":"array","title":"Documents"}},"type":"object","required":["documents"],"title":"Documents","description":"User documents model."},"EncodedFile":{"properties":{"data_uri":{"type":"string","title":"Data Uri"}},"type":"object","required":["data_uri"],"title":"EncodedFile","description":"Base64 encoded class for general use."},"ErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"ErrorResponse","description":"Response model for errors."},"ExamDate":{"properties":{"exam_date":{"type":"string","title":"Exam Date"}},"type":"object","required":["exam_date"],"title":"ExamDate","description":"Exam date."},"ExamTypeData":{"properties":{"exam_type":{"type":"integer","title":"Exam Type"},"exam_name":{"type":"string","title":"Exam Name"}},"type":"object","required":["exam_type","exam_name"],"title":"ExamTypeData","description":"Exam type data."},"ExamTypesData":{"properties":{"exam_types":{"items":{"$ref":"#/components/schemas/ExamTypeData"},"type":"array","title":"Exam Types"}},"type":"object","required":["exam_types"],"title":"ExamTypesData","description":"Exam types data."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IndividualInstituteSignUp":{"properties":{"student_name":{"type":"string","title":"Student Name"},"student_lastname":{"type":"string","title":"Student Lastname"},"student_dni":{"type":"string","title":"Student Dni"},"discount_type":{"type":"integer","title":"Discount Type"},"exam_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Type"}},"type":"object","required":["student_name","student_lastname","student_dni","discount_type","exam_type"],"title":"IndividualInstituteSignUp","description":"Data form to sign up individual students to a specific course."},"Inscription":{"properties":{"student_name":{"type":"string","title":"Student Name"},"student_lastname":{"type":"string","title":"Student Lastname"},"student_dni":{"type":"string","title":"Student Dni"},"discount_type":{"type":"integer","title":"Discount Type"},"exam_type":{"type":"integer","title":"Exam Type"},"inscription_id":{"type":"integer","title":"Inscription Id"}},"type":"object","required":["student_name","student_lastname","student_dni","discount_type","exam_type","inscription_id"],"title":"Inscription","description":"Student inscription data."},"InscriptionData":{"properties":{"course_id":{"type":"integer","title":"Course Id"},"course_name":{"type":"string","title":"Course Name"},"bibliography":{"$ref":"#/components/schemas/CoursebookData"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["course_id","course_name","bibliography","total"],"title":"InscriptionData","description":"Inscription data."},"InscriptionPeriodData":{"properties":{"period_id":{"type":"integer","title":"Period Id"},"period_name":{"type":"string","title":"Period Name"}},"type":"object","required":["period_id","period_name"],"title":"InscriptionPeriodData","description":"Inscription period data."},"InscriptionPeriodsData":{"properties":{"periods":{"items":{"$ref":"#/components/schemas/InscriptionPeriodData"},"type":"array","title":"Periods"}},"type":"object","required":["periods"],"title":"InscriptionPeriodsData","description":"Inscription periods data."},"InscriptionsData":{"properties":{"current_inscription":{"type":"string","title":"Current Inscription"},"inscriptions":{"items":{"$ref":"#/components/schemas/InscriptionData"},"type":"array","title":"Inscriptions"}},"type":"object","required":["current_inscription","inscriptions"],"title":"InscriptionsData","description":"Inscriptions data."},"Institute":{"properties":{"institute_id":{"type":"integer","title":"Institute Id"},"institute_name":{"type":"string","title":"Institute Name"}},"type":"object","required":["institute_id","institute_name"],"title":"Institute","description":"Institute model."},"Institutes":{"properties":{"institutes":{"items":{"$ref":"#/components/schemas/Institute"},"type":"array","title":"Institutes"}},"type":"object","required":["institutes"],"title":"Institutes","description":"Institutes model."},"LoginData":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginData","description":"Login data."},"LoginResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type"},"is_admin":{"type":"boolean","title":"Is Admin"}},"type":"object","required":["access_token","token_type","is_admin"],"title":"LoginResponse","description":"Login response."},"MultipleInstituteSignUp":{"properties":{"students":{"items":{"$ref":"#/components/schemas/IndividualInstituteSignUp"},"type":"array","title":"Students"}},"type":"object","required":["students"],"title":"MultipleInstituteSignUp","description":"Data form to sign up multiple students to a specific course."},"NewImage":{"properties":{"data_uri":{"type":"string","title":"Data Uri"}},"type":"object","required":["data_uri"],"title":"NewImage","description":"Profile image change model."},"NewPassword":{"properties":{"password":{"type":"string","title":"Password"}},"type":"object","required":["password"],"title":"NewPassword","description":"Password change model."},"NewPeriod":{"properties":{"period_type":{"type":"integer","title":"Period Type"}},"type":"object","required":["period_type"],"title":"NewPeriod","description":"Model for new period creation."},"NewUserDetails":{"properties":{"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"lastname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastname"},"cuil":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cuil"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},"type":"object","title":"NewUserDetails","description":"New user details."},"SpreadsheetRow":{"properties":{"errors":{"items":{"type":"string"},"type":"array","title":"Errors"},"student":{"anyOf":[{"$ref":"#/components/schemas/StudentData"},{"type":"null"}]},"course_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Course Id"}},"type":"object","required":["errors","student","course_id"],"title":"SpreadsheetRow","description":"Data returned after spreadsheet validation."},"StudentData":{"properties":{"student_name":{"type":"string","title":"Student Name"},"student_lastname":{"type":"string","title":"Student Lastname"},"student_dni":{"type":"string","title":"Student Dni"},"discount_type":{"type":"integer","title":"Discount Type"},"exam_type":{"type":"integer","title":"Exam Type"}},"type":"object","required":["student_name","student_lastname","student_dni","discount_type","exam_type"],"title":"StudentData","description":"Student data."},"StudentInscriptionData":{"properties":{"student_name":{"type":"string","title":"Student Name"},"student_lastname":{"type":"string","title":"Student Lastname"},"student_dni":{"type":"string","title":"Student Dni"},"discount_type":{"type":"integer","title":"Discount Type"},"exam_type":{"type":"integer","title":"Exam Type"},"inscription_id":{"type":"integer","title":"Inscription Id"},"bibliography_id":{"type":"integer","title":"Bibliography Id"},"course_id":{"type":"integer","title":"Course Id"},"complete":{"type":"boolean","title":"Complete"}},"type":"object","required":["student_name","student_lastname","student_dni","discount_type","exam_type","inscription_id","bibliography_id","course_id","complete"],"title":"StudentInscriptionData","description":"Student inscription data."},"StudentInscriptionUpdateData":{"properties":{"student_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Student Name"},"student_lastname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Student Lastname"},"student_dni":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Student Dni"},"discount_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Discount Type"},"exam_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exam Type"},"bibliography_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bibliography Id"},"course_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Course Id"}},"type":"object","title":"StudentInscriptionUpdateData","description":"Student inscription update data."},"StudentsData":{"properties":{"students":{"items":{"$ref":"#/components/schemas/Inscription"},"type":"array","title":"Students"},"complete":{"type":"boolean","title":"Complete"}},"type":"object","required":["students","complete"],"title":"StudentsData","description":"Students data."},"Teacher":{"properties":{"teacher_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Teacher Id"},"teacher_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Teacher Full Name"}},"type":"object","required":["teacher_id","teacher_full_name"],"title":"Teacher","description":"Teacher information."},"TeacherAssignment":{"properties":{"main_teacher":{"anyOf":[{"$ref":"#/components/schemas/Teacher"},{"type":"null"}]},"auxiliary_teacher":{"anyOf":[{"$ref":"#/components/schemas/Teacher"},{"type":"null"}]}},"type":"object","required":["main_teacher","auxiliary_teacher"],"title":"TeacherAssignment","description":"Teacher assignment information."},"UserDetails":{"properties":{"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"lastname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastname"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image"},"timezone":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timezone"},"cuil":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cuil"},"leg":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Leg"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"}},"type":"object","title":"UserDetails","description":"User details."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"OAuth2PasswordBearer":{"type":"oauth2","flows":{"password":{"scopes":{},"tokenUrl":"/login"}}}}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment