{"openapi":"3.0.3","info":{"title":"Sistema de Monitoria API","description":"A comprehensive REST API for managing all endpoints of the sistema de monitoria. Built with tRPC and Next.js, providing full CRUD operations with type safety.","version":"1.0.0"},"servers":[{"url":"https://sistema-de-monitoria.app.ic.ufba.br/api/openapi"}],"tags":[{"name":"sistema-de-monitoria"}],"externalDocs":{"url":"https://sistema-de-monitoria.app.ic.ufba.br/docs"},"paths":{"/me":{"get":{"operationId":"me-getMe","summary":"Get me","description":"Retrieve the current user","tags":["me"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/disciplines/{id}/professor":{"get":{"operationId":"discipline-getDisciplineWithProfessor","summary":"Get discipline with responsible professor","description":"Get discipline details with responsible professor for current semester","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"disciplina":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string","minLength":1,"maxLength":255},"codigo":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true}},"required":["id","nome","codigo","departamentoId","createdAt"]},"professor":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"nomeCompleto":{"type":"string"},"nomeSocial":{"type":"string","nullable":true},"genero":{"type":"string","nullable":true,"enum":["MASCULINO","FEMININO","OUTRO",null]},"cpf":{"type":"string","nullable":true},"matriculaSiape":{"type":"string","nullable":true},"regime":{"type":"string","nullable":true,"enum":["20H","40H","DE",null]},"telefone":{"type":"string","nullable":true},"telefoneInstitucional":{"type":"string","nullable":true},"emailInstitucional":{"type":"string","nullable":true}},"required":["id","nomeCompleto","nomeSocial","genero","cpf","matriculaSiape","regime","telefone","telefoneInstitucional","emailInstitucional"]}},"required":["disciplina","professor"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/disciplines":{"get":{"operationId":"discipline-getDisciplines","summary":"Get disciplines","description":"Retrieve the disciplines","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string","minLength":1,"maxLength":255},"codigo":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true}},"required":["id","nome","codigo","departamentoId","createdAt"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"post":{"operationId":"discipline-create","summary":"Create discipline","description":"Create a new discipline","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nome":{"type":"string","minLength":1},"codigo":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"required":["nome","codigo","departamentoId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string","minLength":1,"maxLength":255},"codigo":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true}},"required":["id","nome","codigo","departamentoId","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/disciplines/{id}":{"get":{"operationId":"discipline-getDiscipline","summary":"Get discipline","description":"Retrieve the discipline","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string","minLength":1,"maxLength":255},"codigo":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true}},"required":["id","nome","codigo","departamentoId","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"put":{"operationId":"discipline-updateDiscipline","summary":"Update discipline","description":"Update the discipline","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nome":{"type":"string","minLength":1,"maxLength":255},"codigo":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string","minLength":1,"maxLength":255},"codigo":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true}},"required":["id","nome","codigo","departamentoId","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"delete":{"operationId":"discipline-deleteDiscipline","summary":"Delete discipline","description":"Delete the discipline and all its dependencies","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/disciplines/professor":{"get":{"operationId":"discipline-getProfessorDisciplines","summary":"Get professor disciplines","description":"Get disciplines taught by the current professor","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"codigo":{"type":"string"},"nome":{"type":"string"},"cargaHoraria":{"type":"number"},"projetosAtivos":{"type":"number"},"monitoresAtivos":{"type":"number"},"voluntariosAtivos":{"type":"number"}},"required":["id","codigo","nome","cargaHoraria","projetosAtivos","monitoresAtivos","voluntariosAtivos"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/disciplines/department":{"get":{"operationId":"discipline-getDepartmentDisciplines","summary":"Get department disciplines","description":"Get all disciplines from professor's department (or all disciplines if no department associated)","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"codigo":{"type":"string"},"nome":{"type":"string"},"departamentoId":{"type":"number"},"isAssociated":{"type":"boolean"},"ano":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]}},"required":["id","codigo","nome","departamentoId","isAssociated"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/disciplines/{id}/associate":{"post":{"operationId":"discipline-associateDiscipline","summary":"Associate professor with discipline","description":"Associate current professor with a discipline for a specific period","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ano":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]}},"required":["ano","semestre"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/disciplines/{id}/disassociate":{"delete":{"operationId":"discipline-disassociateDiscipline","summary":"Disassociate professor from discipline","description":"Remove association between professor and discipline for a specific period","tags":["disciplines"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true},{"in":"query","name":"ano","schema":{"type":"number"},"required":true},{"in":"query","name":"semestre","schema":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/files/upload":{"post":{"operationId":"file-uploadFile","summary":"Upload file","description":"Upload a file to MinIO storage","tags":["files"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileName":{"type":"string"},"fileData":{"type":"string"},"mimeType":{"type":"string"},"entityType":{"type":"string"},"entityId":{"type":"string"}},"required":["fileName","fileData","mimeType","entityType"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"fileSize":{"type":"number"},"objectName":{"type":"string"}},"required":["fileId","fileName","mimeType","fileSize","objectName"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/files/presigned-url":{"post":{"operationId":"file-getPresignedUrlMutation","summary":"Get presigned url","description":"Retrieve the presigned url","tags":["files"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string"},"action":{"type":"string","enum":["view","download"]}},"required":["fileId","action"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/files/{fileId}":{"delete":{"operationId":"file-deleteFileMutation","summary":"Delete file","description":"Delete a file","tags":["files"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"fileId","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"get":{"operationId":"file-getFileMetadataQuery","summary":"Get file metadata","description":"Get metadata for a specific file","tags":["files"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"fileId","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"objectName":{"type":"string"},"size":{"type":"number"},"lastModified":{"type":"string"},"metaData":{"type":"object","additionalProperties":{"type":"string"}},"originalFilename":{"type":"string"},"mimeType":{"type":"string"}},"required":["objectName","size","lastModified","metaData","originalFilename","mimeType"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/files/{fileId}/metadata":{"get":{"operationId":"file-getFileMetadataForUser","summary":"Get file metadata for current user","description":"Get metadata for a file owned by the current user","tags":["files"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"fileId","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"objectName":{"type":"string"},"size":{"type":"number"},"lastModified":{"type":"string"},"metaData":{"type":"object","additionalProperties":{"type":"string"}},"originalFilename":{"type":"string"},"mimeType":{"type":"string"}},"required":["objectName","size","lastModified","metaData","originalFilename","mimeType"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/files/projeto/{projetoId}":{"get":{"operationId":"file-getProjetoFiles","summary":"Get project files","description":"Get all files associated with a project","tags":["files"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"projetoId","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"objectName":{"type":"string"},"size":{"type":"number"},"lastModified":{"type":"string"},"metaData":{"type":"object","additionalProperties":{"type":"string"}},"originalFilename":{"type":"string"},"mimeType":{"type":"string"}},"required":["objectName","size","lastModified","metaData","originalFilename","mimeType"]}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/files/projeto-pdf":{"post":{"operationId":"file-getProjetoPdfUrl","summary":"Get project PDF URL","description":"Get presigned URL for project PDF document","tags":["files"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projetoId":{"type":"number"}},"required":["projetoId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/onboarding/status":{"get":{"operationId":"onboarding-getStatus","summary":"Get onboarding status","description":"Retrieve the onboarding status","tags":["onboarding"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"pending":{"type":"boolean"},"profile":{"type":"object","properties":{"exists":{"type":"boolean"},"complete":{"type":"boolean"},"type":{"type":"string","enum":["admin","professor","student"]}},"required":["exists","complete","type"]},"documents":{"type":"object","properties":{"required":{"type":"array","items":{"type":"string"}},"uploaded":{"type":"array","items":{"type":"string"}},"missing":{"type":"array","items":{"type":"string"}}},"required":["required","uploaded","missing"]},"signature":{"type":"object","properties":{"configured":{"type":"boolean"}},"required":["configured"]},"isInactive":{"type":"boolean"},"existingProfileData":{"type":"object","properties":{"nomeCompleto":{"type":"string"},"matricula":{"type":"string"},"matriculaSiape":{"type":"string"},"cpf":{"type":"string"},"cr":{"type":"number"},"cursoNome":{"type":"string"},"rg":{"type":"string"},"telefone":{"type":"string"},"telefoneInstitucional":{"type":"string"},"regime":{"type":"string","enum":["20H","40H","DE"]},"tipoProfessor":{"type":"string","enum":["SUBSTITUTO","EFETIVO"]},"departamentoId":{"type":"number"},"genero":{"type":"string","enum":["MASCULINO","FEMININO","OUTRO"]},"especificacaoGenero":{"type":"string"},"nomeSocial":{"type":"string"}}}},"required":["pending","profile","documents"]}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/onboarding/student-profile":{"post":{"operationId":"onboarding-createStudentProfile","summary":"Create student profile","description":"Create initial student profile during onboarding","tags":["onboarding"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nomeCompleto":{"type":"string","minLength":1},"matricula":{"type":"string","minLength":8},"cpf":{"type":"string","minLength":1},"cr":{"type":"number","minimum":0,"maximum":10},"cursoNome":{"type":"string","minLength":1},"telefone":{"type":"string"},"genero":{"type":"string","enum":["MASCULINO","FEMININO","OUTRO"]},"especificacaoGenero":{"type":"string"},"nomeSocial":{"type":"string"},"rg":{"type":"string"}},"required":["nomeCompleto","matricula","cpf","cr","cursoNome","genero"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"profileId":{"type":"number"}},"required":["success","profileId"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/onboarding/professor-profile":{"post":{"operationId":"onboarding-createProfessorProfile","summary":"Create professor profile","description":"Create initial professor profile during onboarding","tags":["onboarding"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nomeCompleto":{"type":"string","minLength":1},"matriculaSiape":{"type":"string","minLength":1},"cpf":{"type":"string","minLength":1},"telefone":{"type":"string"},"telefoneInstitucional":{"type":"string"},"regime":{"type":"string","enum":["20H","40H","DE"]},"tipoProfessor":{"type":"string","enum":["SUBSTITUTO","EFETIVO"]},"departamentoId":{"type":"number"},"genero":{"type":"string","enum":["MASCULINO","FEMININO","OUTRO"]},"especificacaoGenero":{"type":"string"},"nomeSocial":{"type":"string"}},"required":["nomeCompleto","matriculaSiape","cpf","regime","departamentoId","genero"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"profileId":{"type":"number"}},"required":["success","profileId"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/onboarding/document":{"put":{"operationId":"onboarding-updateDocument","summary":"Update document file","description":"Update document file ID in user profile","tags":["onboarding"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"documentType":{"type":"string","enum":["comprovante_matricula","historico_escolar","curriculum_vitae","comprovante_vinculo"]},"fileId":{"type":"string"}},"required":["documentType","fileId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/active-period":{"get":{"operationId":"edital-getActivePeriod","summary":"Get active enrollment period","description":"Get the currently active enrollment period","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"periodo":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"ano":{"type":"number"},"dataInicio":{"type":"string"},"dataFim":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"status":{"type":"string","enum":["ATIVO","FUTURO","FINALIZADO"]},"totalProjetos":{"type":"number","default":0},"totalInscricoes":{"type":"number","default":0},"numeroEditalPrograd":{"type":"string","nullable":true}},"required":["id","semestre","ano","dataInicio","dataFim","createdAt","updatedAt","status","totalProjetos","totalInscricoes"]},"edital":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt"]}},"required":["periodo","edital"]}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais":{"get":{"operationId":"edital-getEditais","summary":"List editais","description":"Retrieve all editais with their enrollment periods","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"periodoInscricao":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"ano":{"type":"number"},"dataInicio":{"type":"string"},"dataFim":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"status":{"type":"string","enum":["ATIVO","FUTURO","FINALIZADO"]},"totalProjetos":{"type":"number","default":0},"totalInscricoes":{"type":"number","default":0},"numeroEditalPrograd":{"type":"string","nullable":true}},"required":["id","semestre","ano","dataInicio","dataFim","createdAt","updatedAt","status","totalProjetos","totalInscricoes"]},"criadoPor":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"username":{"type":"string"},"email":{"type":"string"}},"required":["id","username","email"]}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt","periodoInscricao","criadoPor"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"post":{"operationId":"edital-createEdital","summary":"Create edital","description":"Create a new edital with its enrollment period","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string","minLength":1},"titulo":{"type":"string","minLength":1},"descricaoHtml":{"type":"string"},"valorBolsa":{"type":"string","default":"400.00"},"ano":{"type":"number","minimum":2000,"maximum":2050},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"dataInicioInscricao":{"type":"string"},"dataFimInscricao":{"type":"string"},"dataInicioSelecao":{"type":"string"},"dataFimSelecao":{"type":"string"},"horarioInicioSelecao":{"type":"string","minLength":1},"horarioFimSelecao":{"type":"string","minLength":1},"dataDivulgacaoResultado":{"type":"string"},"dataInicioAlteracao":{"type":"string"},"dataFimAlteracao":{"type":"string"},"fileIdPdfExterno":{"type":"string"},"datasProvasDisponiveis":{"type":"array","items":{"type":"object","properties":{"data":{"type":"string"},"horario":{"type":"string"}},"required":["data","horario"]}},"numeroEditalPrograd":{"type":"string"}},"required":["numeroEdital","titulo","ano","semestre","dataInicioInscricao","dataFimInscricao","dataInicioSelecao","dataFimSelecao","horarioInicioSelecao","horarioFimSelecao","dataDivulgacaoResultado","dataInicioAlteracao","dataFimAlteracao"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"periodoInscricao":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"ano":{"type":"number"},"dataInicio":{"type":"string"},"dataFim":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"status":{"type":"string","enum":["ATIVO","FUTURO","FINALIZADO"]},"totalProjetos":{"type":"number","default":0},"totalInscricoes":{"type":"number","default":0},"numeroEditalPrograd":{"type":"string","nullable":true}},"required":["id","semestre","ano","dataInicio","dataFim","createdAt","updatedAt","status","totalProjetos","totalInscricoes"]},"criadoPor":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"username":{"type":"string"},"email":{"type":"string"}},"required":["id","username","email"]}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt","periodoInscricao","criadoPor"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}":{"get":{"operationId":"edital-getEdital","summary":"Get edital","description":"Retrieve a specific edital","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"periodoInscricao":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"ano":{"type":"number"},"dataInicio":{"type":"string"},"dataFim":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"status":{"type":"string","enum":["ATIVO","FUTURO","FINALIZADO"]},"totalProjetos":{"type":"number","default":0},"totalInscricoes":{"type":"number","default":0},"numeroEditalPrograd":{"type":"string","nullable":true}},"required":["id","semestre","ano","dataInicio","dataFim","createdAt","updatedAt","status","totalProjetos","totalInscricoes"]},"criadoPor":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"username":{"type":"string"},"email":{"type":"string"}},"required":["id","username","email"]}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt","periodoInscricao","criadoPor"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"put":{"operationId":"edital-updateEdital","summary":"Update edital","description":"Update an existing edital and its enrollment period","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numeroEdital":{"type":"string"},"titulo":{"type":"string"},"descricaoHtml":{"type":"string"},"valorBolsa":{"type":"string"},"ano":{"type":"number","minimum":2000,"maximum":2050},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"dataInicioInscricao":{"type":"string"},"dataFimInscricao":{"type":"string"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"array","items":{"type":"object","properties":{"data":{"type":"string"},"horario":{"type":"string"}},"required":["data","horario"]}},"numeroEditalPrograd":{"type":"string"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"delete":{"operationId":"edital-deleteEdital","summary":"Delete edital","description":"Delete an edital and its associated enrollment period","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}/numero":{"patch":{"operationId":"edital-updateNumeroEdital","summary":"Update edital number","description":"Update only the edital number (e.g., 001/2024)","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numeroEdital":{"type":"string","minLength":1}},"required":["numeroEdital"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}/publish":{"post":{"operationId":"edital-publishEdital","summary":"Publish edital","description":"Publish an edital making it publicly available","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}/publish-and-notify":{"post":{"operationId":"edital-publishAndNotify","summary":"Publish edital and send notification emails","description":"Publish an edital and automatically send notification emails to students and professors","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emailLists":{"type":"array","items":{"type":"string","format":"email"}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"edital":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt"]},"emailsSent":{"type":"number"},"emailsUsados":{"type":"array","items":{"type":"string"}}},"required":["edital","emailsSent","emailsUsados"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}/upload-signed":{"post":{"operationId":"edital-uploadSignedEdital","summary":"Upload signed edital","description":"Upload a signed version of the edital PDF","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{"type":"string"}},"required":["fileId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/public/editais":{"get":{"operationId":"edital-getPublicEditais","summary":"Get public editais","description":"Retrieve all published editais","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"periodoInscricao":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"ano":{"type":"number"},"dataInicio":{"type":"string"},"dataFim":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"status":{"type":"string","enum":["ATIVO","FUTURO","FINALIZADO"]},"totalProjetos":{"type":"number","default":0},"totalInscricoes":{"type":"number","default":0},"numeroEditalPrograd":{"type":"string","nullable":true}},"required":["id","semestre","ano","dataInicio","dataFim","createdAt","updatedAt","status","totalProjetos","totalInscricoes"]},"criadoPor":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"username":{"type":"string"},"email":{"type":"string"}},"required":["id","username","email"]}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt","periodoInscricao","criadoPor"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}/pdf":{"post":{"operationId":"edital-generateEditalPdf","summary":"Generate edital PDF","description":"Generate PDF for edital interno using template","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}/exam-dates":{"post":{"operationId":"edital-setAvailableExamDates","summary":"Set available exam dates","description":"Admin defines available exam dates for internal DCC announcement","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"datasProvasDisponiveis":{"type":"array","items":{"type":"string"},"minItems":1},"dataDivulgacaoResultado":{"type":"string"}},"required":["datasProvasDisponiveis"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"get":{"operationId":"edital-getAvailableExamDates","summary":"Get available exam dates","description":"Get available exam dates and selection range for internal DCC announcement","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"datasProvasDisponiveis":{"type":"array","items":{"type":"object","properties":{"data":{"type":"string"},"horario":{"type":"string"}},"required":["data","horario"]}},"dataDivulgacaoResultado":{"type":"string","nullable":true},"rangeSelecao":{"type":"object","nullable":true,"properties":{"dataInicio":{"type":"string"},"dataFim":{"type":"string"},"horarioInicio":{"type":"string"},"horarioFim":{"type":"string"}},"required":["dataInicio","dataFim","horarioInicio","horarioFim"]}},"required":["datasProvasDisponiveis","dataDivulgacaoResultado","rangeSelecao"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}/request-chefe-signature":{"post":{"operationId":"edital-requestChefeSignature","summary":"Request chief signature","description":"Request department chief to sign the edital via email link","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chefeEmail":{"type":"string","format":"email"},"chefeNome":{"type":"string"}},"required":["chefeEmail"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"token":{"type":"string"},"link":{"type":"string"},"expiresAt":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/{id}/sign-as-chefe":{"post":{"operationId":"edital-signAsChefe","summary":"Sign as chief","description":"Sign the edital as department chief","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"assinatura":{"type":"string"}},"required":["assinatura"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/para-assinar":{"get":{"operationId":"edital-getEditaisParaAssinar","summary":"Get editais pending signature","description":"Get list of editais pending chief signature","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"periodoInscricaoId":{"type":"number"},"tipo":{"type":"string","enum":["DCC","DCI"],"default":"DCC"},"numeroEdital":{"type":"string"},"titulo":{"type":"string","default":"Edital Interno de Seleção de Monitores"},"descricaoHtml":{"type":"string","nullable":true},"fileIdAssinado":{"type":"string","nullable":true},"fileIdPdfExterno":{"type":"string","nullable":true},"dataPublicacao":{"type":"string","nullable":true},"publicado":{"type":"boolean"},"valorBolsa":{"type":"string","default":"400.00"},"dataInicioSelecao":{"type":"string","nullable":true},"dataFimSelecao":{"type":"string","nullable":true},"horarioInicioSelecao":{"type":"string","nullable":true},"horarioFimSelecao":{"type":"string","nullable":true},"datasProvasDisponiveis":{"type":"string","nullable":true},"dataDivulgacaoResultado":{"type":"string","nullable":true},"dataInicioAlteracao":{"type":"string","nullable":true},"dataFimAlteracao":{"type":"string","nullable":true},"linkFormularioInscricao":{"type":"string","nullable":true},"chefeAssinouEm":{"type":"string","nullable":true},"chefeAssinatura":{"type":"string","nullable":true},"chefeDepartamentoId":{"type":"number","nullable":true},"criadoPorUserId":{"type":"number"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"periodoInscricao":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"ano":{"type":"number"},"dataInicio":{"type":"string"},"dataFim":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"status":{"type":"string","enum":["ATIVO","FUTURO","FINALIZADO"]},"totalProjetos":{"type":"number","default":0},"totalInscricoes":{"type":"number","default":0},"numeroEditalPrograd":{"type":"string","nullable":true}},"required":["id","semestre","ano","dataInicio","dataFim","createdAt","updatedAt","status","totalProjetos","totalInscricoes"]},"criadoPor":{"type":"object","nullable":true,"properties":{"id":{"type":"number"},"username":{"type":"string"},"email":{"type":"string"}},"required":["id","username","email"]}},"required":["id","periodoInscricaoId","tipo","numeroEdital","titulo","descricaoHtml","fileIdAssinado","fileIdPdfExterno","dataPublicacao","publicado","valorBolsa","dataInicioSelecao","dataFimSelecao","datasProvasDisponiveis","dataDivulgacaoResultado","linkFormularioInscricao","chefeAssinouEm","chefeAssinatura","chefeDepartamentoId","criadoPorUserId","createdAt","updatedAt","periodoInscricao","criadoPor"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/by-token/{token}":{"get":{"operationId":"edital-getEditalByToken","summary":"Get edital by signature token","description":"Get edital details using a signature token (public endpoint for chefe)","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"token","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"object","properties":{"id":{"type":"number"},"editalId":{"type":"number"},"chefeEmail":{"type":"string"},"chefeNome":{"type":"string","nullable":true},"expiresAt":{"type":"string"}},"required":["id","editalId","chefeEmail","chefeNome","expiresAt"]},"edital":{"type":"object","properties":{"id":{"type":"number"},"numeroEdital":{"type":"string"},"titulo":{"type":"string"},"descricaoHtml":{"type":"string","nullable":true},"periodoInscricao":{"type":"object","nullable":true,"properties":{"ano":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"dataInicio":{"type":"string"},"dataFim":{"type":"string"}},"required":["ano","semestre","dataInicio","dataFim"]}},"required":["id","numeroEdital","titulo","descricaoHtml","periodoInscricao"]}},"required":["token","edital"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/editais/sign-by-token":{"post":{"operationId":"edital-signEditalByToken","summary":"Sign edital using token","description":"Sign edital as department chief using a signature token","tags":["editais"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"},"assinatura":{"type":"string","minLength":1},"chefeNome":{"type":"string","minLength":1}},"required":["token","assinatura","chefeNome"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/departamentos":{"get":{"operationId":"departamento-getDepartamentos","summary":"Get departamentos","description":"Retrieve all departamentos with statistics","tags":["departamentos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"query","name":"includeStats","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"unidadeUniversitaria":{"type":"string","minLength":1},"nome":{"type":"string","minLength":1,"maxLength":255},"sigla":{"type":"string","nullable":true},"coordenador":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"format":"email"},"telefone":{"type":"string","nullable":true},"descricao":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","unidadeUniversitaria","nome","createdAt"]}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"post":{"operationId":"departamento-createDepartamento","summary":"Create departamento","description":"Create a new departamento","tags":["departamentos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unidadeUniversitaria":{"type":"string","minLength":1},"nome":{"type":"string","minLength":1},"sigla":{"type":"string"},"coordenador":{"type":"string"},"email":{"type":"string","format":"email"},"telefone":{"type":"string"},"descricao":{"type":"string"}},"required":["unidadeUniversitaria","nome"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"unidadeUniversitaria":{"type":"string","minLength":1},"nome":{"type":"string","minLength":1,"maxLength":255},"sigla":{"type":"string","nullable":true},"coordenador":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"format":"email"},"telefone":{"type":"string","nullable":true},"descricao":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","unidadeUniversitaria","nome","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/departamentos/{id}":{"get":{"operationId":"departamento-getDepartamento","summary":"Get departamento","description":"Retrieve a specific departamento","tags":["departamentos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"unidadeUniversitaria":{"type":"string","minLength":1},"nome":{"type":"string","minLength":1,"maxLength":255},"sigla":{"type":"string","nullable":true},"coordenador":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"format":"email"},"telefone":{"type":"string","nullable":true},"descricao":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","unidadeUniversitaria","nome","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"put":{"operationId":"departamento-updateDepartamento","summary":"Update departamento","description":"Update an existing departamento","tags":["departamentos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unidadeUniversitaria":{"type":"string","minLength":1},"nome":{"type":"string","minLength":1,"maxLength":255},"sigla":{"type":"string","nullable":true},"coordenador":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"format":"email"},"telefone":{"type":"string","nullable":true},"descricao":{"type":"string","nullable":true}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"unidadeUniversitaria":{"type":"string","minLength":1},"nome":{"type":"string","minLength":1,"maxLength":255},"sigla":{"type":"string","nullable":true},"coordenador":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"format":"email"},"telefone":{"type":"string","nullable":true},"descricao":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true}},"required":["id","unidadeUniversitaria","nome","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"delete":{"operationId":"departamento-deleteDepartamento","summary":"Delete departamento","description":"Delete a departamento and all its dependencies","tags":["departamentos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"number"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos":{"get":{"operationId":"projeto-getProjetos","summary":"Get projetos","description":"Retrieve projetos based on user role","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string"},"departamentoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"departamentoNome":{"type":"string","nullable":true},"departamentoSigla":{"type":"string","nullable":true},"professorResponsavelId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"professorResponsavelNome":{"type":"string"},"status":{"type":"string"},"ano":{"type":"integer","minimum":2000,"maximum":2100},"semestre":{"type":"string"},"tipoProposicao":{"type":"string"},"bolsasSolicitadas":{"type":"integer","minimum":0},"voluntariosSolicitados":{"type":"integer","minimum":0},"bolsasDisponibilizadas":{"type":"integer","nullable":true,"minimum":0},"cargaHorariaSemana":{"type":"integer","minimum":0,"exclusiveMinimum":true},"numeroSemanas":{"type":"integer","minimum":0,"exclusiveMinimum":true},"publicoAlvo":{"type":"string"},"estimativaPessoasBenificiadas":{"type":"integer","nullable":true,"minimum":0},"descricao":{"type":"string"},"assinaturaProfessor":{"type":"string","nullable":true},"feedbackAdmin":{"type":"string","nullable":true},"mensagemRevisao":{"type":"string","nullable":true},"revisaoSolicitadaEm":{"type":"string","nullable":true},"editalInternoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"dadosEditalConfirmados":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true},"disciplinas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"codigo":{"type":"string"}},"required":["id","nome","codigo"]}},"totalInscritos":{"type":"number"},"inscritosBolsista":{"type":"number"},"inscritosVoluntario":{"type":"number"}},"required":["id","titulo","departamentoId","departamentoNome","professorResponsavelId","professorResponsavelNome","status","ano","semestre","tipoProposicao","bolsasSolicitadas","voluntariosSolicitados","cargaHorariaSemana","numeroSemanas","publicoAlvo","descricao","createdAt","disciplinas","totalInscritos","inscritosBolsista","inscritosVoluntario"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"post":{"operationId":"projeto-createProjeto","summary":"Create projeto","description":"Create a new projeto","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"titulo":{"type":"string","minLength":1},"descricao":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"ano":{"type":"integer","minimum":2000,"maximum":2100},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"tipoProposicao":{"type":"string","enum":["INDIVIDUAL","COLETIVA"]},"bolsasSolicitadas":{"type":"integer","minimum":0},"voluntariosSolicitados":{"type":"integer","minimum":0},"cargaHorariaSemana":{"type":"integer","minimum":0,"exclusiveMinimum":true},"numeroSemanas":{"type":"integer","minimum":0,"exclusiveMinimum":true},"publicoAlvo":{"type":"string","minLength":1},"estimativaPessoasBenificiadas":{"type":"integer","minimum":0},"disciplinas":{"type":"array","items":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"disciplinaIds":{"type":"array","items":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"professoresParticipantes":{"type":"string"},"atividades":{"type":"array","items":{"type":"string"}},"professorResponsavelId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"pontosProva":{"type":"string","minLength":1},"bibliografia":{"type":"string","minLength":1}},"required":["titulo","descricao","departamentoId","ano","semestre","tipoProposicao","bolsasSolicitadas","voluntariosSolicitados","cargaHorariaSemana","numeroSemanas","publicoAlvo","disciplinas","pontosProva","bibliografia"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string","minLength":1},"descricao":{"type":"string"},"departamentoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"ano":{"type":"integer","minimum":2000,"maximum":2100},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"tipoProposicao":{"type":"string","enum":["INDIVIDUAL","COLETIVA"]},"bolsasSolicitadas":{"type":"integer","minimum":0},"voluntariosSolicitados":{"type":"integer","minimum":0},"bolsasDisponibilizadas":{"type":"integer","nullable":true,"minimum":0},"cargaHorariaSemana":{"type":"integer","minimum":0,"exclusiveMinimum":true},"numeroSemanas":{"type":"integer","minimum":0,"exclusiveMinimum":true},"publicoAlvo":{"type":"string"},"estimativaPessoasBenificiadas":{"type":"integer","nullable":true,"minimum":0},"professorResponsavelId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"status":{"type":"string","enum":["DRAFT","SUBMITTED","APPROVED","REJECTED","PENDING_PROFESSOR_SIGNATURE","PENDING_REVISION"]},"editalNumero":{"type":"string","nullable":true},"assinaturaProfessor":{"type":"string","nullable":true},"feedbackAdmin":{"type":"string","nullable":true},"pontosProva":{"type":"string","nullable":true},"bibliografia":{"type":"string","nullable":true},"mensagemRevisao":{"type":"string","nullable":true},"revisaoSolicitadaEm":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true},"departamento":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"sigla":{"type":"string","nullable":true}},"required":["id","nome"]},"professorResponsavel":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string"},"nomeSocial":{"type":"string","nullable":true},"genero":{"type":"string","nullable":true,"enum":["MASCULINO","FEMININO","OUTRO",null]},"cpf":{"type":"string","nullable":true},"matriculaSiape":{"type":"string","nullable":true},"regime":{"type":"string","nullable":true,"enum":["20H","40H","DE",null]},"telefone":{"type":"string","nullable":true},"telefoneInstitucional":{"type":"string","nullable":true},"emailInstitucional":{"type":"string","nullable":true,"format":"email"}},"required":["id","nomeCompleto","nomeSocial","genero","cpf","matriculaSiape","regime","telefone","telefoneInstitucional","emailInstitucional"]},"disciplinas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"codigo":{"type":"string"}},"required":["id","nome","codigo"]}},"atividades":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"descricao":{"type":"string"},"projetoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"createdAt":{"type":"string"}},"required":["id","descricao","projetoId","createdAt"]}},"professoresParticipantes":{"type":"string","nullable":true}},"required":["id","titulo","descricao","departamentoId","ano","semestre","tipoProposicao","bolsasSolicitadas","voluntariosSolicitados","cargaHorariaSemana","numeroSemanas","publicoAlvo","professorResponsavelId","status","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/filtered":{"get":{"operationId":"projeto-getProjetosFiltered","summary":"Get projetos with filters","description":"Retrieve projetos with server-side filtering and pagination (admin only)","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"query","name":"ano","schema":{"type":"array","items":{"type":"number"}}},{"in":"query","name":"semestre","schema":{"type":"array","items":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]}}},{"in":"query","name":"status","schema":{"type":"array","items":{"type":"string","enum":["DRAFT","SUBMITTED","APPROVED","REJECTED","PENDING_PROFESSOR_SIGNATURE","PENDING_REVISION"]}}},{"in":"query","name":"disciplina","schema":{"type":"string"}},{"in":"query","name":"professorNome","schema":{"type":"string"}},{"in":"query","name":"departamentoId","schema":{"type":"array","items":{"type":"number"}}},{"in":"query","name":"limit","schema":{"type":"number","minimum":1,"maximum":100,"default":20}},{"in":"query","name":"offset","schema":{"type":"number","minimum":0,"default":0}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"projetos":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string"},"departamentoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"departamentoNome":{"type":"string","nullable":true},"departamentoSigla":{"type":"string","nullable":true},"professorResponsavelId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"professorResponsavelNome":{"type":"string"},"status":{"type":"string"},"ano":{"type":"integer","minimum":2000,"maximum":2100},"semestre":{"type":"string"},"tipoProposicao":{"type":"string"},"bolsasSolicitadas":{"type":"integer","minimum":0},"voluntariosSolicitados":{"type":"integer","minimum":0},"bolsasDisponibilizadas":{"type":"integer","nullable":true,"minimum":0},"cargaHorariaSemana":{"type":"integer","minimum":0,"exclusiveMinimum":true},"numeroSemanas":{"type":"integer","minimum":0,"exclusiveMinimum":true},"publicoAlvo":{"type":"string"},"estimativaPessoasBenificiadas":{"type":"integer","nullable":true,"minimum":0},"descricao":{"type":"string"},"assinaturaProfessor":{"type":"string","nullable":true},"feedbackAdmin":{"type":"string","nullable":true},"mensagemRevisao":{"type":"string","nullable":true},"revisaoSolicitadaEm":{"type":"string","nullable":true},"editalInternoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"dadosEditalConfirmados":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true},"disciplinas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"codigo":{"type":"string"}},"required":["id","nome","codigo"]}},"totalInscritos":{"type":"number"},"inscritosBolsista":{"type":"number"},"inscritosVoluntario":{"type":"number"},"editalNumero":{"type":"string","nullable":true},"editalPublicado":{"type":"boolean"}},"required":["id","titulo","departamentoId","departamentoNome","professorResponsavelId","professorResponsavelNome","status","ano","semestre","tipoProposicao","bolsasSolicitadas","voluntariosSolicitados","cargaHorariaSemana","numeroSemanas","publicoAlvo","descricao","createdAt","disciplinas","totalInscritos","inscritosBolsista","inscritosVoluntario","editalNumero","editalPublicado"]}},"total":{"type":"number"}},"required":["projetos","total"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{id}":{"get":{"operationId":"projeto-getProjeto","summary":"Get projeto","description":"Retrieve a specific projeto with full details","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string","minLength":1},"descricao":{"type":"string"},"departamentoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"ano":{"type":"integer","minimum":2000,"maximum":2100},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"tipoProposicao":{"type":"string","enum":["INDIVIDUAL","COLETIVA"]},"bolsasSolicitadas":{"type":"integer","minimum":0},"voluntariosSolicitados":{"type":"integer","minimum":0},"bolsasDisponibilizadas":{"type":"integer","nullable":true,"minimum":0},"cargaHorariaSemana":{"type":"integer","minimum":0,"exclusiveMinimum":true},"numeroSemanas":{"type":"integer","minimum":0,"exclusiveMinimum":true},"publicoAlvo":{"type":"string"},"estimativaPessoasBenificiadas":{"type":"integer","nullable":true,"minimum":0},"professorResponsavelId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"status":{"type":"string","enum":["DRAFT","SUBMITTED","APPROVED","REJECTED","PENDING_PROFESSOR_SIGNATURE","PENDING_REVISION"]},"editalNumero":{"type":"string","nullable":true},"assinaturaProfessor":{"type":"string","nullable":true},"feedbackAdmin":{"type":"string","nullable":true},"pontosProva":{"type":"string","nullable":true},"bibliografia":{"type":"string","nullable":true},"mensagemRevisao":{"type":"string","nullable":true},"revisaoSolicitadaEm":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true},"departamento":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"sigla":{"type":"string","nullable":true}},"required":["id","nome"]},"professorResponsavel":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string"},"nomeSocial":{"type":"string","nullable":true},"genero":{"type":"string","nullable":true,"enum":["MASCULINO","FEMININO","OUTRO",null]},"cpf":{"type":"string","nullable":true},"matriculaSiape":{"type":"string","nullable":true},"regime":{"type":"string","nullable":true,"enum":["20H","40H","DE",null]},"telefone":{"type":"string","nullable":true},"telefoneInstitucional":{"type":"string","nullable":true},"emailInstitucional":{"type":"string","nullable":true,"format":"email"}},"required":["id","nomeCompleto","nomeSocial","genero","cpf","matriculaSiape","regime","telefone","telefoneInstitucional","emailInstitucional"]},"disciplinas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"codigo":{"type":"string"}},"required":["id","nome","codigo"]}},"atividades":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"descricao":{"type":"string"},"projetoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"createdAt":{"type":"string"}},"required":["id","descricao","projetoId","createdAt"]}},"professoresParticipantes":{"type":"string","nullable":true}},"required":["id","titulo","descricao","departamentoId","ano","semestre","tipoProposicao","bolsasSolicitadas","voluntariosSolicitados","cargaHorariaSemana","numeroSemanas","publicoAlvo","professorResponsavelId","status","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"put":{"operationId":"projeto-updateProjeto","summary":"Update projeto","description":"Update an existing projeto","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"titulo":{"type":"string","minLength":1},"descricao":{"type":"string","minLength":1},"departamentoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"ano":{"type":"integer","minimum":2000,"maximum":2100},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"tipoProposicao":{"type":"string","enum":["INDIVIDUAL","COLETIVA"]},"bolsasSolicitadas":{"type":"integer","minimum":0},"voluntariosSolicitados":{"type":"integer","minimum":0},"cargaHorariaSemana":{"type":"integer","minimum":0,"exclusiveMinimum":true},"numeroSemanas":{"type":"integer","minimum":0,"exclusiveMinimum":true},"publicoAlvo":{"type":"string","minLength":1},"estimativaPessoasBenificiadas":{"type":"integer","minimum":0},"disciplinas":{"type":"array","items":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"disciplinaIds":{"type":"array","items":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"professoresParticipantes":{"type":"string"},"atividades":{"type":"array","items":{"type":"string"}},"professorResponsavelId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"pontosProva":{"type":"string","minLength":1},"bibliografia":{"type":"string","minLength":1}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string","minLength":1},"descricao":{"type":"string"},"departamentoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"ano":{"type":"integer","minimum":2000,"maximum":2100},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"tipoProposicao":{"type":"string","enum":["INDIVIDUAL","COLETIVA"]},"bolsasSolicitadas":{"type":"integer","minimum":0},"voluntariosSolicitados":{"type":"integer","minimum":0},"bolsasDisponibilizadas":{"type":"integer","nullable":true,"minimum":0},"cargaHorariaSemana":{"type":"integer","minimum":0,"exclusiveMinimum":true},"numeroSemanas":{"type":"integer","minimum":0,"exclusiveMinimum":true},"publicoAlvo":{"type":"string"},"estimativaPessoasBenificiadas":{"type":"integer","nullable":true,"minimum":0},"professorResponsavelId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"status":{"type":"string","enum":["DRAFT","SUBMITTED","APPROVED","REJECTED","PENDING_PROFESSOR_SIGNATURE","PENDING_REVISION"]},"editalNumero":{"type":"string","nullable":true},"assinaturaProfessor":{"type":"string","nullable":true},"feedbackAdmin":{"type":"string","nullable":true},"pontosProva":{"type":"string","nullable":true},"bibliografia":{"type":"string","nullable":true},"mensagemRevisao":{"type":"string","nullable":true},"revisaoSolicitadaEm":{"type":"string","nullable":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"deletedAt":{"type":"string","nullable":true},"departamento":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"sigla":{"type":"string","nullable":true}},"required":["id","nome"]},"professorResponsavel":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string"},"nomeSocial":{"type":"string","nullable":true},"genero":{"type":"string","nullable":true,"enum":["MASCULINO","FEMININO","OUTRO",null]},"cpf":{"type":"string","nullable":true},"matriculaSiape":{"type":"string","nullable":true},"regime":{"type":"string","nullable":true,"enum":["20H","40H","DE",null]},"telefone":{"type":"string","nullable":true},"telefoneInstitucional":{"type":"string","nullable":true},"emailInstitucional":{"type":"string","nullable":true,"format":"email"}},"required":["id","nomeCompleto","nomeSocial","genero","cpf","matriculaSiape","regime","telefone","telefoneInstitucional","emailInstitucional"]},"disciplinas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"codigo":{"type":"string"}},"required":["id","nome","codigo"]}},"atividades":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"descricao":{"type":"string"},"projetoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"createdAt":{"type":"string"}},"required":["id","descricao","projetoId","createdAt"]}},"professoresParticipantes":{"type":"string","nullable":true}},"required":["id","titulo","descricao","departamentoId","ano","semestre","tipoProposicao","bolsasSolicitadas","voluntariosSolicitados","cargaHorariaSemana","numeroSemanas","publicoAlvo","professorResponsavelId","status","createdAt"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"delete":{"operationId":"projeto-deleteProjeto","summary":"Delete projeto","description":"Soft delete a projeto","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{id}/submit":{"patch":{"operationId":"projeto-submitProjeto","summary":"Submit projeto","description":"Submit projeto for admin approval","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{id}/approve":{"post":{"operationId":"projeto-approveProjeto","summary":"Approve projeto","description":"Approve projeto and optionally set scholarship allocations","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bolsasDisponibilizadas":{"type":"number","minimum":0},"feedbackAdmin":{"type":"string"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{id}/reject":{"post":{"operationId":"projeto-rejectProjeto","summary":"Reject projeto","description":"Reject projeto with feedback","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"feedbackAdmin":{"type":"string","minLength":1}},"required":["feedbackAdmin"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{id}/request-revision":{"post":{"operationId":"projeto-requestRevision","summary":"Request revision","description":"Request revision from professor with a message","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mensagem":{"type":"string","minLength":10,"maxLength":2000}},"required":["mensagem"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{projetoId}/sign-professor":{"post":{"operationId":"projeto-signProfessor","summary":"Sign project as professor","description":"Add professor signature to project","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"projetoId","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signatureImage":{"type":"string","minLength":1}},"required":["signatureImage"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/available":{"get":{"operationId":"projeto-getAvailableProjects","summary":"Get available projects","description":"Get projects available for student applications","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string","minLength":1,"maxLength":255},"descricao":{"type":"string"},"departamentoNome":{"type":"string","minLength":1,"maxLength":255},"departamentoSigla":{"type":"string"},"professorResponsavelNome":{"type":"string","minLength":1,"maxLength":255},"ano":{"type":"number"},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"cargaHorariaSemana":{"type":"number"},"publicoAlvo":{"type":"string"},"disciplinas":{"type":"array","items":{"type":"object","properties":{"codigo":{"type":"string"},"nome":{"type":"string","minLength":1,"maxLength":255}},"required":["codigo","nome"]}},"bolsasDisponibilizadas":{"type":"number"},"voluntariosSolicitados":{"type":"number"},"totalInscritos":{"type":"number"},"inscricaoAberta":{"type":"boolean"},"jaInscrito":{"type":"boolean"},"selecao":{"type":"object","properties":{"datas":{"type":"array","items":{"type":"object","properties":{"data":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"horario":{"type":"string","minLength":1}},"required":["data","horario"]}},"local":{"type":"string","nullable":true}},"required":["datas","local"]}},"required":["id","titulo","descricao","departamentoNome","departamentoSigla","professorResponsavelNome","ano","semestre","cargaHorariaSemana","publicoAlvo","disciplinas","bolsasDisponibilizadas","voluntariosSolicitados","totalInscritos","inscricaoAberta","jaInscrito","selecao"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/volunteers":{"get":{"operationId":"projeto-getVolunteers","summary":"Get volunteers","description":"Get volunteers for professor projects","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"email":{"type":"string"},"telefone":{"type":"string"},"disciplina":{"type":"object","properties":{"codigo":{"type":"string"},"nome":{"type":"string","minLength":1,"maxLength":255}},"required":["codigo","nome"]},"projeto":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string","minLength":1,"maxLength":255}},"required":["id","titulo"]},"status":{"type":"string","enum":["ATIVO","INATIVO","PENDENTE"]},"dataInicio":{"type":"string"}},"required":["id","nomeCompleto","email","disciplina","projeto","status"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/volunteers/status":{"patch":{"operationId":"projeto-updateVolunteerStatus","summary":"Update volunteer status","description":"Update volunteer status","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"status":{"type":"string","enum":["ATIVO","INATIVO"]}},"required":["id","status"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{projetoId}/ata-selecao-data":{"get":{"operationId":"projeto-generateSelectionMinutesData","summary":"Get selection minutes data","description":"Get data for generating selection minutes PDF","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"projetoId","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"projeto":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string","minLength":1,"maxLength":255},"ano":{"type":"integer","minimum":2000,"maximum":2100},"semestre":{"type":"string"},"departamento":{"type":"object","properties":{"nome":{"type":"string","minLength":1,"maxLength":255},"sigla":{"type":"string","nullable":true}},"required":["nome","sigla"]},"professorResponsavel":{"type":"object","properties":{"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"matriculaSiape":{"type":"string","nullable":true}},"required":["nomeCompleto","matriculaSiape"]},"disciplinas":{"type":"array","items":{"type":"object","properties":{"codigo":{"type":"string"},"nome":{"type":"string","minLength":1,"maxLength":255}},"required":["codigo","nome"]}}},"required":["id","titulo","ano","semestre","departamento","professorResponsavel","disciplinas"]},"candidatos":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"aluno":{"type":"object","properties":{"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"matricula":{"type":"string","nullable":true},"cr":{"type":"number","nullable":true}},"required":["nomeCompleto","matricula","cr"]},"tipoVagaPretendida":{"type":"string","nullable":true},"notaDisciplina":{"type":"number","nullable":true},"notaSelecao":{"type":"number","nullable":true},"coeficienteRendimento":{"type":"number","nullable":true},"notaFinal":{"type":"number","nullable":true},"status":{"type":"string"},"observacoes":{"type":"string","nullable":true}},"required":["id","aluno","tipoVagaPretendida","notaDisciplina","notaSelecao","coeficienteRendimento","notaFinal","status","observacoes"]}},"ataInfo":{"type":"object","properties":{"dataSelecao":{"type":"string"},"localSelecao":{"type":"string","nullable":true},"observacoes":{"type":"string","nullable":true}},"required":["dataSelecao","localSelecao","observacoes"]}},"required":["projeto","candidatos","ataInfo"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{projetoId}/ata-selecao":{"post":{"operationId":"projeto-saveSelectionMinutes","summary":"Save selection minutes","description":"Save selection minutes to database and MinIO","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"projetoId","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"dataSelecao":{"type":"string"},"localSelecao":{"type":"string"},"observacoes":{"type":"string"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"ataId":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"required":["success","ataId"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/projetos/{projetoId}/notify-results":{"post":{"operationId":"projeto-notifySelectionResults","summary":"Notify selection results","description":"Send email notifications to candidates about selection results","tags":["projetos"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"projetoId","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mensagemPersonalizada":{"type":"string"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"notificationsCount":{"type":"number"}},"required":["success","notificationsCount"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricao/my-status":{"get":{"operationId":"inscricao-getMyStatus","summary":"Get student status","description":"Get current student status in monitoring program (students only)","tags":["inscricao"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"totalInscricoes":{"type":"number"},"totalAprovacoes":{"type":"number"},"monitoriaAtiva":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"projeto":{"type":"object","properties":{"titulo":{"type":"string"},"disciplinas":{"type":"array","items":{"type":"object","properties":{"codigo":{"type":"string"},"nome":{"type":"string"}},"required":["codigo","nome"]}},"professorResponsavelNome":{"type":"string"}},"required":["titulo","disciplinas","professorResponsavelNome"]},"status":{"type":"string"},"tipo":{"type":"string","enum":["BOLSISTA","VOLUNTARIO"]},"dataInicio":{"type":"string","nullable":true},"dataFim":{"type":"string","nullable":true},"cargaHorariaCumprida":{"type":"number"},"cargaHorariaPlanejada":{"type":"number"}},"required":["id","projeto","status","tipo","dataInicio","dataFim"]},"historicoAtividades":{"type":"array","items":{"type":"object","properties":{"tipo":{"type":"string"},"descricao":{"type":"string"},"data":{"type":"string"}},"required":["tipo","descricao","data"]}},"proximasAcoes":{"type":"array","items":{"type":"object","properties":{"titulo":{"type":"string"},"descricao":{"type":"string"},"prazo":{"type":"string"}},"required":["titulo","descricao"]}}},"required":["totalInscricoes","totalAprovacoes","monitoriaAtiva"]}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricao/my-results":{"get":{"operationId":"inscricao-getMyResults","summary":"Get student results","description":"Get all application results for current student (students only)","tags":["inscricao"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"projeto":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string"},"disciplinas":{"type":"array","items":{"type":"object","properties":{"codigo":{"type":"string"},"nome":{"type":"string"}},"required":["codigo","nome"]}},"professorResponsavelNome":{"type":"string"}},"required":["id","titulo","disciplinas","professorResponsavelNome"]},"tipoInscricao":{"type":"string","enum":["BOLSISTA","VOLUNTARIO"]},"status":{"type":"string","enum":["APROVADO","REPROVADO","EM_ANALISE","LISTA_ESPERA"]},"dataResultado":{"type":"string"},"posicaoLista":{"type":"number"},"observacoes":{"type":"string"}},"required":["id","projeto","tipoInscricao","status"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes/minhas":{"get":{"operationId":"inscricao-getMinhasInscricoes","summary":"Get my applications","description":"Get all applications for the authenticated student (students only)","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"projetoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"alunoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"tipoVagaPretendida":{"type":"string","nullable":true,"enum":["BOLSISTA","VOLUNTARIO","ANY",null]},"status":{"type":"string","enum":["SUBMITTED","SELECTED_BOLSISTA","SELECTED_VOLUNTARIO","CONFIRMED_INTEREST","ACCEPTED_BOLSISTA","ACCEPTED_VOLUNTARIO","REJECTED_BY_PROFESSOR","REJECTED_BY_STUDENT","WAITING_LIST"]},"notaDisciplina":{"type":"number","nullable":true,"minimum":0,"maximum":10},"notaSelecao":{"type":"number","nullable":true,"minimum":0,"maximum":10},"coeficienteRendimento":{"type":"number","nullable":true,"minimum":0,"maximum":10},"notaFinal":{"type":"number","nullable":true,"minimum":0,"maximum":10},"feedbackProfessor":{"type":"string","nullable":true},"historicoEscolarFileId":{"type":"string","nullable":true},"documentos":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"tipoDocumento":{"type":"string"}},"required":["fileId","tipoDocumento"]}},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"projeto":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string"},"descricao":{"type":"string"},"ano":{"type":"number"},"semestre":{"type":"string"},"status":{"type":"string"},"bolsasDisponibilizadas":{"type":"number","nullable":true},"voluntariosSolicitados":{"type":"number","nullable":true},"professorResponsavel":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string"},"emailInstitucional":{"type":"string","nullable":true,"format":"email"}},"required":["id","nomeCompleto","emailInstitucional"]},"departamento":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"}},"required":["id","nome"]},"disciplinas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"codigo":{"type":"string"}},"required":["id","nome","codigo"]}},"selecao":{"type":"object","properties":{"datas":{"type":"array","items":{"type":"object","properties":{"data":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"horario":{"type":"string","minLength":1}},"required":["data","horario"]}},"local":{"type":"string","nullable":true}},"required":["datas","local"]}},"required":["id","titulo","descricao","ano","semestre","status","professorResponsavel","departamento","disciplinas","selecao"]},"aluno":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string"},"matricula":{"type":"string","nullable":true},"cr":{"type":"number","nullable":true},"user":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"email":{"type":"string","format":"email"}},"required":["id","email"]}},"required":["id","nomeCompleto","matricula","cr","user"]},"bolsasPreenchidas":{"type":"boolean"}},"required":["id","projetoId","alunoId","status","createdAt","projeto","aluno"]}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes":{"post":{"operationId":"inscricao-criarInscricao","summary":"Create application","description":"Create a new project application (students only)","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"projetoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"tipoVagaPretendida":{"type":"string","enum":["BOLSISTA","VOLUNTARIO","ANY"]},"cursouComponente":{"type":"boolean"},"disciplinaEquivalenteId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"signatureDataUrl":{"type":"string","pattern":"^data:image/"},"localAssinatura":{"type":"string","minLength":1,"default":"Salvador"},"uploadedDocuments":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string","minLength":1},"tipoDocumento":{"type":"string","enum":["RG","CPF","HISTORICO_ESCOLAR","COMPROVANTE_MATRICULA","ANEXO_III_BOLSISTA","ANEXO_IV_VOLUNTARIO","ANEXO_I_TERMO_COMPROMISSO","COMPROVANTE_INSCRICAO_COMBINADO"]}},"required":["fileId","tipoDocumento"]},"default":[]},"profilePatch":{"type":"object","properties":{"nomeCompleto":{"type":"string","minLength":1},"nomeSocial":{"type":"string","nullable":true},"matricula":{"type":"string","minLength":8},"cpf":{"type":"string","minLength":1},"rg":{"type":"string","minLength":1},"dataNascimento":{"type":"string"},"genero":{"type":"string","enum":["MASCULINO","FEMININO","OUTRO"]},"telefone":{"type":"string","minLength":1},"telefoneFixo":{"type":"string","nullable":true},"cursoNome":{"type":"string","minLength":1},"endereco":{"type":"object","properties":{"rua":{"type":"string","minLength":1},"numero":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"bairro":{"type":"string","minLength":1},"cidade":{"type":"string","minLength":1},"estado":{"type":"string","minLength":1},"cep":{"type":"string","minLength":1},"complemento":{"type":"string","nullable":true}},"required":["rua","bairro","cidade","estado","cep"]},"banco":{"type":"string","nullable":true},"agencia":{"type":"string","nullable":true},"conta":{"type":"string","nullable":true},"digitoConta":{"type":"string","nullable":true}}}},"required":["projetoId","tipoVagaPretendida","cursouComponente","signatureDataUrl"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"message":{"type":"string"},"combinedPdfFileId":{"type":"string"}},"required":["id","message","combinedPdfFileId"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes/aceitar":{"post":{"operationId":"inscricao-aceitarInscricao","summary":"Accept application","description":"Student accepts a selected application (students only)","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inscricaoId":{"type":"integer","minimum":0,"exclusiveMinimum":true}},"required":["inscricaoId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes/recusar":{"post":{"operationId":"inscricao-recusarInscricao","summary":"Reject application","description":"Student rejects a selected application (students only)","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inscricaoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"feedbackProfessor":{"type":"string"}},"required":["inscricaoId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes/avaliar":{"post":{"operationId":"inscricao-avaliarCandidato","summary":"Grade candidate","description":"Professor grades a student application (professors only)","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"inscricaoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"notaDisciplina":{"type":"number","minimum":0,"maximum":10},"notaSelecao":{"type":"number","minimum":0,"maximum":10},"coeficienteRendimento":{"type":"number","minimum":0,"maximum":10},"feedbackProfessor":{"type":"string"}},"required":["inscricaoId","notaDisciplina","notaSelecao","coeficienteRendimento"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"notaFinal":{"type":"number"}},"required":["success","notaFinal"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes/projeto":{"get":{"operationId":"inscricao-getInscricoesProjeto","summary":"Get project applications","description":"Get all applications for a specific project (professors only)","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"query","name":"projetoId","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"projetoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"alunoId":{"type":"integer","minimum":0,"exclusiveMinimum":true},"tipoVagaPretendida":{"type":"string","nullable":true,"enum":["BOLSISTA","VOLUNTARIO","ANY",null]},"status":{"type":"string","enum":["SUBMITTED","SELECTED_BOLSISTA","SELECTED_VOLUNTARIO","CONFIRMED_INTEREST","ACCEPTED_BOLSISTA","ACCEPTED_VOLUNTARIO","REJECTED_BY_PROFESSOR","REJECTED_BY_STUDENT","WAITING_LIST"]},"notaDisciplina":{"type":"number","nullable":true,"minimum":0,"maximum":10},"notaSelecao":{"type":"number","nullable":true,"minimum":0,"maximum":10},"coeficienteRendimento":{"type":"number","nullable":true,"minimum":0,"maximum":10},"notaFinal":{"type":"number","nullable":true,"minimum":0,"maximum":10},"feedbackProfessor":{"type":"string","nullable":true},"historicoEscolarFileId":{"type":"string","nullable":true},"documentos":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"tipoDocumento":{"type":"string"}},"required":["fileId","tipoDocumento"]}},"createdAt":{"type":"string"},"updatedAt":{"type":"string","nullable":true},"projeto":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"titulo":{"type":"string"},"descricao":{"type":"string"},"ano":{"type":"number"},"semestre":{"type":"string"},"status":{"type":"string"},"bolsasDisponibilizadas":{"type":"number","nullable":true},"voluntariosSolicitados":{"type":"number","nullable":true},"professorResponsavel":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string"},"emailInstitucional":{"type":"string","nullable":true,"format":"email"}},"required":["id","nomeCompleto","emailInstitucional"]},"departamento":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"}},"required":["id","nome"]},"disciplinas":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nome":{"type":"string"},"codigo":{"type":"string"}},"required":["id","nome","codigo"]}},"selecao":{"type":"object","properties":{"datas":{"type":"array","items":{"type":"object","properties":{"data":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"horario":{"type":"string","minLength":1}},"required":["data","horario"]}},"local":{"type":"string","nullable":true}},"required":["datas","local"]}},"required":["id","titulo","descricao","ano","semestre","status","professorResponsavel","departamento","disciplinas","selecao"]},"aluno":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string"},"matricula":{"type":"string","nullable":true},"cr":{"type":"number","nullable":true},"user":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"email":{"type":"string","format":"email"}},"required":["id","email"]}},"required":["id","nomeCompleto","matricula","cr","user"]},"bolsasPreenchidas":{"type":"boolean"}},"required":["id","projetoId","alunoId","status","createdAt","projeto","aluno"]}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes/{inscricaoId}/accept":{"post":{"operationId":"inscricao-acceptPosition","summary":"Accept position","description":"Accept offered position (students only)","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"inscricaoId","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes/{inscricaoId}/reject":{"post":{"operationId":"inscricao-rejectPosition","summary":"Reject position","description":"Reject offered position (students only)","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"inscricaoId","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"motivo":{"type":"string"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/inscricoes/{inscricaoId}/termo-compromisso-data":{"get":{"operationId":"inscricao-generateCommitmentTermData","summary":"Get commitment term data","description":"Get data for generating commitment term PDF","tags":["inscricoes"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"inscricaoId","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"monitor":{"type":"object","properties":{"nome":{"type":"string"},"matricula":{"type":"string","nullable":true},"email":{"type":"string"},"telefone":{"type":"string"},"cr":{"type":"number","nullable":true},"rg":{"type":"string","nullable":true},"cpf":{"type":"string","nullable":true},"cursoNome":{"type":"string","nullable":true},"banco":{"type":"string","nullable":true},"agencia":{"type":"string","nullable":true},"conta":{"type":"string","nullable":true},"digitoConta":{"type":"string","nullable":true},"enderecoCompleto":{"type":"string","nullable":true},"assinaturaBase64":{"type":"string","nullable":true}},"required":["nome","matricula","email","cr"]},"professor":{"type":"object","properties":{"nome":{"type":"string"},"matriculaSiape":{"type":"string"},"email":{"type":"string","nullable":true},"departamento":{"type":"string"},"assinaturaBase64":{"type":"string","nullable":true}},"required":["nome","email","departamento"]},"projeto":{"type":"object","properties":{"titulo":{"type":"string"},"disciplinas":{"type":"array","items":{"type":"object","properties":{"codigo":{"type":"string"},"nome":{"type":"string"}},"required":["codigo","nome"]}},"ano":{"type":"number"},"semestre":{"type":"string"},"cargaHorariaSemana":{"type":"number"},"numeroSemanas":{"type":"number"}},"required":["titulo","disciplinas","ano","semestre","cargaHorariaSemana","numeroSemanas"]},"monitoria":{"type":"object","properties":{"tipo":{"type":"string","enum":["BOLSISTA","VOLUNTARIO"]},"dataInicio":{"type":"string"},"dataFim":{"type":"string"},"valorBolsa":{"type":"number"}},"required":["tipo","dataInicio","dataFim"]},"termo":{"type":"object","properties":{"numero":{"type":"string"},"dataGeracao":{"type":"string"}},"required":["numero","dataGeracao"]}},"required":["monitor","professor","projeto","monitoria","termo"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/signature/default":{"get":{"operationId":"signature-getDefaultSignature","summary":"Get user default signature","description":"Retrieve the user's default signature","tags":["signature"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","nullable":true,"properties":{"signatureData":{"type":"string"},"dataAssinatura":{"type":"string"}},"required":["signatureData","dataAssinatura"]}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"post":{"operationId":"signature-saveDefaultSignature","summary":"Save user default signature","description":"Save or update the user's default signature","tags":["signature"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signatureData":{"type":"string","minLength":1}},"required":["signatureData"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"delete":{"operationId":"signature-deleteDefaultSignature","summary":"Delete user default signature","description":"Remove the user's default signature","tags":["signature"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/users":{"get":{"operationId":"user-getUsers","summary":"List all users","description":"Retrieve all users with their profiles","tags":["users"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"query","name":"search","schema":{"type":"string"}},{"in":"query","name":"role","schema":{"type":"array","items":{"type":"string","enum":["admin","professor","student"]}}},{"in":"query","name":"nomeCompleto","schema":{"type":"string"}},{"in":"query","name":"emailInstitucional","schema":{"type":"string"}},{"in":"query","name":"departamentoId","schema":{"type":"array","items":{"type":"number"}}},{"in":"query","name":"cursoNome","schema":{"type":"string"}},{"in":"query","name":"regime","schema":{"type":"array","items":{"type":"string","enum":["20H","40H","DE"]}}},{"in":"query","name":"tipoProfessor","schema":{"type":"array","items":{"type":"string","enum":["SUBSTITUTO","EFETIVO"]}}},{"in":"query","name":"limit","schema":{"type":"number","minimum":1,"maximum":100,"default":20}},{"in":"query","name":"offset","schema":{"type":"number","minimum":0,"default":0}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"username":{"type":"string","minLength":3,"maxLength":50},"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","professor","student"]},"assinaturaDefault":{"type":"string","nullable":true},"dataAssinaturaDefault":{"type":"string","nullable":true},"professorProfile":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"cpf":{"type":"string","nullable":true},"telefone":{"type":"string","nullable":true},"telefoneInstitucional":{"type":"string","nullable":true},"emailInstitucional":{"type":"string","nullable":true,"format":"email"},"matriculaSiape":{"type":"string","nullable":true},"regime":{"type":"string","nullable":true,"enum":["20H","40H","DE",null]},"tipoProfessor":{"type":"string","nullable":true,"enum":["SUBSTITUTO","EFETIVO",null]},"departamentoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"curriculumVitaeFileId":{"type":"string","nullable":true},"comprovanteVinculoFileId":{"type":"string","nullable":true},"assinaturaDefault":{"type":"string","nullable":true},"dataAssinaturaDefault":{"type":"string","nullable":true},"accountStatus":{"type":"string","nullable":true,"enum":["PENDING","ACTIVE","INACTIVE",null]},"projetos":{"type":"number"},"projetosAtivos":{"type":"number"}},"required":["id","nomeCompleto","cpf","emailInstitucional","regime","departamentoId"]},"studentProfile":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"matricula":{"type":"string","nullable":true},"cpf":{"type":"string","nullable":true},"cr":{"type":"number","nullable":true,"minimum":0,"maximum":10},"cursoNome":{"type":"string","nullable":true},"telefone":{"type":"string","nullable":true},"emailInstitucional":{"type":"string","nullable":true,"format":"email"},"historicoEscolarFileId":{"type":"string","nullable":true},"comprovanteMatriculaFileId":{"type":"string","nullable":true},"banco":{"type":"string","nullable":true},"agencia":{"type":"string","nullable":true},"conta":{"type":"string","nullable":true},"digitoConta":{"type":"string","nullable":true},"inscricoes":{"type":"number"},"bolsasAtivas":{"type":"number"},"voluntariadosAtivos":{"type":"number"},"documentosValidados":{"type":"number"},"totalDocumentos":{"type":"number"}},"required":["id","nomeCompleto","matricula","cpf","cr","cursoNome","emailInstitucional"]},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","username","email","role"]}},"total":{"type":"number"}},"required":["users","total"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/users/profile":{"get":{"operationId":"user-getProfile","summary":"Get user profile","description":"Get current user's profile information","tags":["users"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"username":{"type":"string","minLength":3,"maxLength":50},"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","professor","student"]},"assinaturaDefault":{"type":"string","nullable":true},"dataAssinaturaDefault":{"type":"string","nullable":true},"professorProfile":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"cpf":{"type":"string","nullable":true},"telefone":{"type":"string","nullable":true},"telefoneInstitucional":{"type":"string","nullable":true},"emailInstitucional":{"type":"string","nullable":true,"format":"email"},"matriculaSiape":{"type":"string","nullable":true},"regime":{"type":"string","nullable":true,"enum":["20H","40H","DE",null]},"tipoProfessor":{"type":"string","nullable":true,"enum":["SUBSTITUTO","EFETIVO",null]},"departamentoId":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true},"curriculumVitaeFileId":{"type":"string","nullable":true},"comprovanteVinculoFileId":{"type":"string","nullable":true},"assinaturaDefault":{"type":"string","nullable":true},"dataAssinaturaDefault":{"type":"string","nullable":true},"accountStatus":{"type":"string","nullable":true,"enum":["PENDING","ACTIVE","INACTIVE",null]},"projetos":{"type":"number"},"projetosAtivos":{"type":"number"}},"required":["id","nomeCompleto","cpf","emailInstitucional","regime","departamentoId"]},"studentProfile":{"type":"object","nullable":true,"properties":{"id":{"type":"integer","minimum":0,"exclusiveMinimum":true},"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"matricula":{"type":"string","nullable":true},"cpf":{"type":"string","nullable":true},"cr":{"type":"number","nullable":true,"minimum":0,"maximum":10},"cursoNome":{"type":"string","nullable":true},"telefone":{"type":"string","nullable":true},"emailInstitucional":{"type":"string","nullable":true,"format":"email"},"historicoEscolarFileId":{"type":"string","nullable":true},"comprovanteMatriculaFileId":{"type":"string","nullable":true},"banco":{"type":"string","nullable":true},"agencia":{"type":"string","nullable":true},"conta":{"type":"string","nullable":true},"digitoConta":{"type":"string","nullable":true},"inscricoes":{"type":"number"},"bolsasAtivas":{"type":"number"},"voluntariadosAtivos":{"type":"number"},"documentosValidados":{"type":"number"},"totalDocumentos":{"type":"number"}},"required":["id","nomeCompleto","matricula","cpf","cr","cursoNome","emailInstitucional"]},"createdAt":{"type":"string","nullable":true},"updatedAt":{"type":"string","nullable":true}},"required":["id","username","email","role"]}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"put":{"operationId":"user-updateProfile","summary":"Update user profile","description":"Update current user's profile information","tags":["users"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":3,"maxLength":50},"professorData":{"type":"object","properties":{"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"cpf":{"type":"string","minLength":1},"telefone":{"type":"string"},"telefoneInstitucional":{"type":"string"},"regime":{"type":"string","enum":["20H","40H","DE"]},"tipoProfessor":{"type":"string","enum":["SUBSTITUTO","EFETIVO"]},"matriculaSiape":{"type":"string"}},"required":["nomeCompleto","cpf","regime"]},"studentData":{"type":"object","properties":{"nomeCompleto":{"type":"string","minLength":1,"maxLength":255},"matricula":{"type":"string","minLength":8},"cpf":{"type":"string","minLength":1},"cr":{"type":"number","minimum":0,"maximum":10},"cursoNome":{"type":"string"},"telefone":{"type":"string"},"banco":{"type":"string"},"agencia":{"type":"string"},"conta":{"type":"string"},"digitoConta":{"type":"string"}},"required":["nomeCompleto","matricula","cpf","cr"]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/users/{id}/professor-status":{"patch":{"operationId":"user-updateProfessorStatus","summary":"Update professor status","description":"Activate or deactivate a professor","tags":["users"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ATIVO","INATIVO"]}},"required":["status"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/users/{id}":{"delete":{"operationId":"user-deleteUser","summary":"Delete user","description":"Delete a user (professor or student)","tags":["users"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"path","name":"id","schema":{"type":"integer","minimum":0,"exclusiveMinimum":true},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/analytics/dashboard":{"get":{"operationId":"analytics-getDashboard","summary":"Get dashboard analytics","description":"Get comprehensive analytics data for admin dashboard","tags":["analytics"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"totalProfessores":{"type":"number"},"totalAlunos":{"type":"number"},"totalProjetos":{"type":"number"},"projetosAprovados":{"type":"number"},"projetosSubmetidos":{"type":"number"},"projetosRascunho":{"type":"number"},"totalInscricoes":{"type":"number"},"totalVagas":{"type":"number"},"totalBolsas":{"type":"number"},"totalVoluntarios":{"type":"number"},"periodosAtivos":{"type":"number"},"totalDepartamentos":{"type":"number"},"totalDisciplinas":{"type":"number"},"vagasOcupadas":{"type":"number"},"taxaAprovacao":{"type":"number"},"departamentos":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"nome":{"type":"string"},"projetos":{"type":"number"},"professores":{"type":"number"}},"required":["id","nome","projetos","professores"]}},"ultimosProjetosAprovados":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"titulo":{"type":"string"},"professorResponsavel":{"type":"string"},"departamento":{"type":"string"},"dataAprovacao":{"type":"string"}},"required":["id","titulo","professorResponsavel","departamento","dataAprovacao"]}},"projetosPorDepartamento":{"type":"array","items":{"type":"object","properties":{"departamento":{"type":"string"},"sigla":{"type":"string"},"total":{"type":"number"},"aprovados":{"type":"number"},"submetidos":{"type":"number"}},"required":["departamento","sigla","total","aprovados","submetidos"]}},"inscricoesPorPeriodo":{"type":"array","items":{"type":"object","properties":{"periodo":{"type":"string"},"ano":{"type":"number"},"semestre":{"type":"string"},"inscricoes":{"type":"number"},"projetos":{"type":"number"}},"required":["periodo","ano","semestre","inscricoes","projetos"]}},"professoresPorDepartamento":{"type":"array","items":{"type":"object","properties":{"departamento":{"type":"string"},"professores":{"type":"number"},"projetosAtivos":{"type":"number"}},"required":["departamento","professores","projetosAtivos"]}},"estatisticasVagas":{"type":"object","properties":{"bolsistas":{"type":"number"},"voluntarios":{"type":"number"},"totalDisponibilizadas":{"type":"number"},"ocupadas":{"type":"number"},"taxaOcupacao":{"type":"number"}},"required":["bolsistas","voluntarios","totalDisponibilizadas","ocupadas","taxaOcupacao"]},"alertas":{"type":"array","items":{"type":"object","properties":{"tipo":{"type":"string","enum":["warning","error","info"]},"titulo":{"type":"string"},"descricao":{"type":"string"},"link":{"type":"string"}},"required":["tipo","titulo","descricao"]}}},"required":["totalProfessores","totalAlunos","totalProjetos","projetosAprovados","projetosSubmetidos","projetosRascunho","totalInscricoes","totalVagas","totalBolsas","totalVoluntarios","periodosAtivos","totalDepartamentos","totalDisciplinas","vagasOcupadas","taxaAprovacao","departamentos","ultimosProjetosAprovados","projetosPorDepartamento","inscricoesPorPeriodo","professoresPorDepartamento","estatisticasVagas","alertas"]}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/analytics/planilha-prograd":{"get":{"operationId":"analytics-getProjetosAprovadosPROGRAD","summary":"Get approved projects for PROGRAD spreadsheet","description":"Get all approved projects for a specific semester to generate PROGRAD spreadsheet","tags":["analytics"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"parameters":[{"in":"query","name":"ano","schema":{"type":"number","minimum":2020,"maximum":2050},"required":true},{"in":"query","name":"semestre","schema":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]},"ano":{"type":"number"},"projetos":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number"},"codigo":{"type":"string"},"disciplinaNome":{"type":"string"},"professorNome":{"type":"string"},"professoresParticipantes":{"type":"string"},"departamentoNome":{"type":"string"},"tipoProposicao":{"type":"string"},"linkPDF":{"type":"string"}},"required":["id","codigo","disciplinaNome","professorNome","professoresParticipantes","departamentoNome","tipoProposicao","linkPDF"]}}},"required":["semestre","ano","projetos"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/analytics/send-planilha-prograd":{"post":{"operationId":"analytics-sendPlanilhaPROGRAD","summary":"Send PROGRAD spreadsheet via email","description":"Generate and send the PROGRAD spreadsheet PDF via email","tags":["analytics"],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ano":{"type":"number","minimum":2020,"maximum":2050},"semestre":{"type":"string","enum":["SEMESTRE_1","SEMESTRE_2"]}},"required":["ano","semestre"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"totalProjetos":{"type":"number"},"destinatarios":{"type":"array","items":{"type":"string"}}},"required":["success","message","totalProjetos","destinatarios"]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT token obtido via autenticação CAS da UFBA"},"apiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API Key para autenticação programática. Também aceita Authorization: Bearer <api-key>"}},"schemas":{"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Authorization not provided"},"code":{"type":"string","description":"The error code","example":"UNAUTHORIZED"},"issues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"description":"An array of issues that were responsible for the error","example":[]}},"required":["message","code"],"title":"Authorization not provided error (401)","description":"The error information","example":{"code":"UNAUTHORIZED","message":"Authorization not provided","issues":[]}},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Insufficient access"},"code":{"type":"string","description":"The error code","example":"FORBIDDEN"},"issues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"description":"An array of issues that were responsible for the error","example":[]}},"required":["message","code"],"title":"Insufficient access error (403)","description":"The error information","example":{"code":"FORBIDDEN","message":"Insufficient access","issues":[]}},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Internal server error"},"code":{"type":"string","description":"The error code","example":"INTERNAL_SERVER_ERROR"},"issues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"description":"An array of issues that were responsible for the error","example":[]}},"required":["message","code"],"title":"Internal server error error (500)","description":"The error information","example":{"code":"INTERNAL_SERVER_ERROR","message":"Internal server error","issues":[]}},"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Invalid input data"},"code":{"type":"string","description":"The error code","example":"BAD_REQUEST"},"issues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"description":"An array of issues that were responsible for the error","example":[]}},"required":["message","code"],"title":"Invalid input data error (400)","description":"The error information","example":{"code":"BAD_REQUEST","message":"Invalid input data","issues":[]}},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Not found"},"code":{"type":"string","description":"The error code","example":"NOT_FOUND"},"issues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"description":"An array of issues that were responsible for the error","example":[]}},"required":["message","code"],"title":"Not found error (404)","description":"The error information","example":{"code":"NOT_FOUND","message":"Not found","issues":[]}}}}}