- Standardizes listing/searching/creating/updating/deleting for profiles - Adds UI for assigning professionals - Integrates UI into patient listing (menu item) - Corrects hydration mismatch in ProtectedRoute
58 KiB
58 KiB
Listar atribuições de pacientes
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/patient_assignments:
get:
summary: Listar atribuições de pacientes
deprecated: false
description: ''
tags:
- Atribuições
- Atribuições
parameters:
- name: apikey
in: header
description: Chave da API Supabase
required: true
example: ''
schema:
type: string
responses:
'200':
description: Lista de atribuições
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PatientAssignment'
headers: {}
x-apidog-name: OK
security:
- bearer: []
x-apidog-folder: Atribuições
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940525-run
components:
schemas:
PatientAssignment:
type: object
properties:
id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
patient_id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
user_id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
role:
type: string
enum:
- medico
- enfermeiro
examples:
- medico
created_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
created_by:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
x-apidog-orders:
- id
- patient_id
- user_id
- role
- created_at
- created_by
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Criar nova atribuição
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/patient_assignments:
post:
summary: Criar nova atribuição
deprecated: false
description: ''
tags:
- Atribuições
- Atribuições
parameters:
- name: apikey
in: header
description: Chave da API Supabase
required: true
example: ''
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatientAssignmentInput'
responses:
'201':
description: Atribuição criada
content:
application/json:
schema:
$ref: '#/components/schemas/PatientAssignment'
headers: {}
x-apidog-name: Created
security:
- bearer: []
x-apidog-folder: Atribuições
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940526-run
components:
schemas:
PatientAssignmentInput:
type: object
required:
- patient_id
- user_id
- role
properties:
patient_id:
type: string
format: uuid
user_id:
type: string
format: uuid
role:
type: string
enum:
- medico
- enfermeiro
x-apidog-orders:
- patient_id
- user_id
- role
x-apidog-ignore-properties: []
x-apidog-folder: ''
PatientAssignment:
type: object
properties:
id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
patient_id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
user_id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
role:
type: string
enum:
- medico
- enfermeiro
examples:
- medico
created_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
created_by:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
x-apidog-orders:
- id
- patient_id
- user_id
- role
- created_at
- created_by
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Listar roles de usuários
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/user_roles:
get:
summary: Listar roles de usuários
deprecated: false
description: ''
tags:
- Usuários
- Usuários
parameters: []
responses:
'200':
description: Lista de roles
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserRole'
headers: {}
x-apidog-name: OK
security:
- bearer: []
x-apidog-folder: Usuários
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940524-run
components:
schemas:
UserRole:
type: object
properties:
id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
user_id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
role:
type: string
enum:
- admin
- gestor
- medico
examples:
- medico
created_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
x-apidog-orders:
- id
- user_id
- role
- created_at
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Obter informações completas do usuário
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/functions/v1/user-info:
get:
summary: Obter informações completas do usuário
deprecated: false
description: >-
Retorna dados consolidados do usuário autenticado, incluindo perfil e
roles para controle de permissões.
tags:
- Usuários
parameters: []
responses:
'200':
description: Informações do usuário retornadas com sucesso
content:
application/json:
schema:
$ref: '#/components/schemas/UserInfoResponse'
headers: {}
x-apidog-name: OK
'401':
description: Token inválido ou expirado
content:
application/json:
schema: &ref_0
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Unauthorized
'500':
description: Erro interno do servidor
content:
application/json:
schema: *ref_0
headers: {}
x-apidog-name: Internal Server Error
security: []
x-apidog-folder: Usuários
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21952675-run
components:
schemas:
UserInfoResponse:
type: object
properties:
user:
$ref: '#/components/schemas/User'
profile:
$ref: '#/components/schemas/Profile'
roles:
type: array
items:
type: string
enum:
- admin
- gestor
- medico
- secretaria
- user
examples:
- - medico
- admin
permissions:
$ref: '#/components/schemas/Permissions'
x-apidog-orders:
- user
- profile
- roles
- permissions
x-apidog-ignore-properties: []
x-apidog-folder: ''
Permissions:
type: object
properties:
isAdmin:
type: boolean
description: Se o usuário tem role de admin
examples:
- true
isManager:
type: boolean
description: Se o usuário tem role de gestor
examples:
- false
isDoctor:
type: boolean
description: Se o usuário tem role de médico
examples:
- true
isSecretary:
type: boolean
description: Se o usuário tem role de secretária
examples:
- false
isAdminOrManager:
type: boolean
description: Se o usuário é admin ou gestor (para controle de permissões)
examples:
- true
x-apidog-orders:
- isAdmin
- isManager
- isDoctor
- isSecretary
- isAdminOrManager
x-apidog-ignore-properties: []
x-apidog-folder: ''
Profile:
type: object
properties:
id:
type: string
format: uuid
full_name:
type: string
examples:
- Dr. João Silva
nullable: true
email:
type: string
format: email
nullable: true
phone:
type: string
examples:
- '+5511999999999'
nullable: true
avatar_url:
type: string
format: uri
nullable: true
disabled:
type: boolean
examples:
- false
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
x-apidog-orders:
- id
- full_name
- email
- phone
- avatar_url
- disabled
- created_at
- updated_at
x-apidog-ignore-properties: []
nullable: true
x-apidog-folder: ''
User:
type: object
properties:
id:
type: string
format: uuid
examples:
- 550e8400-e29b-41d4-a716-446655440000
email:
type: string
format: email
examples:
- usuario@exemplo.com
email_confirmed_at:
type: string
format: date-time
examples:
- '2024-01-01T10:00:00Z'
nullable: true
created_at:
type: string
format: date-time
examples:
- '2024-01-01T00:00:00Z'
last_sign_in_at:
type: string
format: date-time
examples:
- '2024-01-15T09:30:00Z'
nullable: true
x-apidog-orders:
- id
- email
- email_confirmed_at
- created_at
- last_sign_in_at
x-apidog-ignore-properties: []
x-apidog-folder: ''
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Criar novo usuário
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/functions/v1/create-user:
post:
summary: Criar novo usuário
deprecated: false
description: >-
Cria um novo usuário no sistema com papel específico. Apenas usuários
com papel de admin, gestor ou secretaria podem criar novos usuários.
operationId: createUser
tags:
- Usuários
- Usuários
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserRequest'
examples:
admin_user:
value:
email: admin@mediconnect.com
password: senha123!
full_name: João Silva
phone: (11) 99999-9999
role: admin
summary: Criar administrador
doctor_user:
value:
email: dr.maria@mediconnect.com
password: senha123!
full_name: Dra. Maria Santos
phone: (11) 98888-8888
role: medico
summary: Criar médico
secretary_user:
value:
email: secretaria@mediconnect.com
password: senha123!
full_name: Ana Costa
phone: (11) 97777-7777
role: secretaria
summary: Criar secretária
responses:
'200':
description: Usuário criado com sucesso
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserResponse'
example:
success: true
user:
id: 123e4567-e89b-12d3-a456-426614174000
email: novo.usuario@mediconnect.com
full_name: Novo Usuário
phone: (11) 99999-9999
role: medico
headers: {}
x-apidog-name: OK
'400':
description: Dados inválidos ou erro de validação
content:
application/json:
schema:
type: object
properties: {}
x-apidog-ignore-properties: []
x-apidog-orders: []
examples:
'2':
summary: Campos obrigatórios faltando
value:
error: 'Missing required fields: email, password, full_name, role'
'3':
summary: Papel inválido
value:
error: Invalid role
'4':
summary: Email já existe
value:
error: User with this email already registered
headers: {}
x-apidog-name: Bad Request
'401':
description: Token de autenticação inválido ou ausente
content:
application/json:
schema:
type: object
properties: {}
x-apidog-ignore-properties: []
x-apidog-orders: []
example:
error: Unauthorized
headers: {}
x-apidog-name: Unauthorized
'403':
description: Permissões insuficientes
content:
application/json:
schema:
type: object
properties: {}
x-apidog-ignore-properties: []
x-apidog-orders: []
example:
error: Insufficient permissions
headers: {}
x-apidog-name: Forbidden
'500':
description: Erro interno do servidor
content:
application/json:
schema:
type: object
properties: {}
x-apidog-ignore-properties: []
x-apidog-orders: []
example:
error: Internal server error
headers: {}
x-apidog-name: Internal Server Error
security: []
x-apidog-folder: Usuários
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21953135-run
components:
schemas:
CreateUserRequest:
type: object
required:
- email
- password
- full_name
- role
properties:
email:
type: string
format: email
description: Email do usuário (deve ser único)
examples:
- usuario@mediconnect.com
password:
type: string
minLength: 6
description: Senha temporária para o usuário
examples:
- senha123!
full_name:
type: string
minLength: 1
description: Nome completo do usuário
examples:
- João da Silva
phone:
type: string
description: Telefone do usuário (opcional)
examples:
- (11) 99999-9999
nullable: true
role:
type: string
enum:
- admin
- gestor
- medico
- secretaria
- user
description: Papel do usuário no sistema
examples:
- medico
x-apidog-orders:
- email
- password
- full_name
- phone
- role
x-apidog-ignore-properties: []
x-apidog-folder: ''
CreateUserResponse:
type: object
properties:
success:
type: boolean
description: Indica se a operação foi bem-sucedida
examples:
- true
user:
type: object
properties:
id:
type: string
format: uuid
description: ID único do usuário criado
examples:
- 123e4567-e89b-12d3-a456-426614174000
email:
type: string
format: email
description: Email do usuário
examples:
- usuario@mediconnect.com
full_name:
type: string
description: Nome completo do usuário
examples:
- João da Silva
phone:
type: string
description: Telefone do usuário
examples:
- (11) 99999-9999
nullable: true
role:
type: string
description: Papel atribuído ao usuário
examples:
- medico
x-apidog-orders:
- id
- email
- full_name
- phone
- role
x-apidog-ignore-properties: []
x-apidog-orders:
- success
- user
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Obter dados do usuário atual
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/auth/v1/user:
get:
summary: Obter dados do usuário atual
deprecated: false
description: Retorna informações do usuário autenticado
tags:
- Usuários
- Authentication
parameters: []
responses:
'200':
description: Dados do usuário
content:
application/json:
schema:
$ref: '#/components/schemas/User'
headers: {}
x-apidog-name: OK
'401':
description: Token inválido
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Unauthorized
security:
- bearer: []
x-apidog-folder: Usuários
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940512-run
components:
schemas:
User:
type: object
properties:
id:
type: string
format: uuid
examples:
- 550e8400-e29b-41d4-a716-446655440000
email:
type: string
format: email
examples:
- usuario@exemplo.com
email_confirmed_at:
type: string
format: date-time
examples:
- '2024-01-01T10:00:00Z'
nullable: true
created_at:
type: string
format: date-time
examples:
- '2024-01-01T00:00:00Z'
last_sign_in_at:
type: string
format: date-time
examples:
- '2024-01-15T09:30:00Z'
nullable: true
x-apidog-orders:
- id
- email
- email_confirmed_at
- created_at
- last_sign_in_at
x-apidog-ignore-properties: []
x-apidog-folder: ''
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Fazer login e obter token JWT
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/auth/v1/token:
post:
summary: Fazer login e obter token JWT
deprecated: false
description: >-
Autentica o usuário e retorna um token JWT para usar em outras
requisições.
tags:
- Authentication
parameters:
- name: grant_type
in: query
description: ''
required: true
schema:
type: string
enum:
- password
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LoginRequest'
examples: {}
responses:
'200':
description: Login realizado com sucesso
content:
application/json:
schema:
$ref: '#/components/schemas/LoginResponse'
headers: {}
x-apidog-name: OK
'400':
description: Credenciais inválidas
content:
application/json:
schema: &ref_0
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Bad Request
'401':
description: Email ou senha incorretos
content:
application/json:
schema: *ref_0
headers: {}
x-apidog-name: Unauthorized
security:
- bearer: []
x-apidog-folder: Authentication
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940510-run
components:
schemas:
LoginRequest:
type: object
required:
- email
- password
properties:
email:
type: string
format: email
examples:
- usuario@exemplo.com
password:
type: string
minLength: 6
examples:
- senha123
x-apidog-orders:
- email
- password
x-apidog-ignore-properties: []
x-apidog-folder: ''
LoginResponse:
type: object
properties:
access_token:
type: string
description: Token JWT para autenticação
examples:
- eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
token_type:
type: string
examples:
- bearer
expires_in:
type: integer
description: Tempo de expiração do token em segundos
examples:
- 3600
refresh_token:
type: string
description: Token para renovar o access_token
user:
$ref: '#/components/schemas/AuthUser'
x-apidog-orders:
- access_token
- token_type
- expires_in
- refresh_token
- user
x-apidog-ignore-properties: []
x-apidog-folder: ''
AuthUser:
type: object
properties:
id:
type: string
format: uuid
email:
type: string
format: email
email_confirmed_at:
type: string
format: date-time
nullable: true
created_at:
type: string
format: date-time
x-apidog-orders:
- id
- email
- email_confirmed_at
- created_at
x-apidog-ignore-properties: []
x-apidog-folder: ''
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Logout do usuário
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/auth/v1/logout:
post:
summary: Logout do usuário
deprecated: false
description: Encerrar sessão do usuário
tags:
- Authentication
- Authentication
parameters: []
responses:
'204':
description: Logout realizado com sucesso
headers: {}
x-apidog-name: No Content
'401':
description: Token inválido
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Unauthorized
security:
- bearer: []
x-apidog-folder: Authentication
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940511-run
components:
schemas:
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Listar perfis de usuários
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/profiles:
get:
summary: Listar perfis de usuários
deprecated: false
description: ''
tags:
- Perfis
- Perfis
parameters:
- name: apikey
in: header
description: Chave da API Supabase
required: true
example: ''
schema:
type: string
responses:
'200':
description: Lista de perfis
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Profile'
headers: {}
x-apidog-name: OK
security:
- bearer: []
x-apidog-folder: Perfis
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940522-run
components:
schemas:
Profile:
type: object
properties:
id:
type: string
format: uuid
full_name:
type: string
examples:
- Dr. João Silva
nullable: true
email:
type: string
format: email
nullable: true
phone:
type: string
examples:
- '+5511999999999'
nullable: true
avatar_url:
type: string
format: uri
nullable: true
disabled:
type: boolean
examples:
- false
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
x-apidog-orders:
- id
- full_name
- email
- phone
- avatar_url
- disabled
- created_at
- updated_at
x-apidog-ignore-properties: []
nullable: true
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Atualizar perfil do usuário
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/profiles:
patch:
summary: Atualizar perfil do usuário
deprecated: false
description: ''
tags:
- Perfis
- Perfis
parameters:
- name: apikey
in: header
description: Chave da API Supabase
required: true
example: ''
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProfileInput'
responses:
'200':
description: Perfil atualizado
content:
application/json:
schema:
$ref: '#/components/schemas/Profile'
headers: {}
x-apidog-name: OK
security:
- bearer: []
x-apidog-folder: Perfis
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940523-run
components:
schemas:
ProfileInput:
type: object
properties:
full_name:
type: string
avatar_url:
type: string
phone:
type: string
x-apidog-orders:
- full_name
- avatar_url
- phone
x-apidog-ignore-properties: []
x-apidog-folder: ''
Profile:
type: object
properties:
id:
type: string
format: uuid
full_name:
type: string
examples:
- Dr. João Silva
nullable: true
email:
type: string
format: email
nullable: true
phone:
type: string
examples:
- '+5511999999999'
nullable: true
avatar_url:
type: string
format: uri
nullable: true
disabled:
type: boolean
examples:
- false
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
x-apidog-orders:
- id
- full_name
- email
- phone
- avatar_url
- disabled
- created_at
- updated_at
x-apidog-ignore-properties: []
nullable: true
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Obter paciente por ID
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/patients/{id}:
get:
summary: Obter paciente por ID
deprecated: false
description: Retorna dados de um paciente específico
tags:
- Pacientes
- Pacientes
parameters:
- name: id
in: path
description: ID do paciente
required: true
example: ''
schema:
type: string
format: uuid
- name: apikey
in: header
description: Chave da API Supabase
required: true
example: ''
schema:
type: string
responses:
'200':
description: Dados do paciente
content:
application/json:
schema:
$ref: '#/components/schemas/Patient'
headers: {}
x-apidog-name: OK
'401':
description: Não autorizado
content:
application/json:
schema: &ref_0
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Unauthorized
'404':
description: Paciente não encontrado
content:
application/json:
schema: *ref_0
headers: {}
x-apidog-name: Not Found
security:
- bearer: []
x-apidog-folder: Pacientes
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940515-run
components:
schemas:
Patient:
type: object
properties:
id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
full_name:
type: string
examples:
- Maria Santos Silva
cpf:
type: string
examples:
- '12345678901'
email:
type: string
format: email
examples:
- maria@email.com
phone_mobile:
type: string
examples:
- (11) 99999-9999
birth_date:
type: string
format: date
examples:
- '1980-01-15'
social_name:
type: string
examples:
- Maria Santos
sex:
type: string
examples:
- F
blood_type:
type: string
examples:
- A+
weight_kg:
type: number
examples:
- 65.5
height_m:
type: number
examples:
- 1.65
bmi:
type: number
examples:
- 24.1
street:
type: string
examples:
- Rua das Flores, 123
number:
type: string
examples:
- '123'
complement:
type: string
examples:
- Apt 45
neighborhood:
type: string
examples:
- Centro
city:
type: string
examples:
- São Paulo
state:
type: string
examples:
- SP
cep:
type: string
examples:
- 01234-567
created_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
updated_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
created_by:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
x-apidog-orders:
- id
- full_name
- cpf
- email
- phone_mobile
- birth_date
- social_name
- sex
- blood_type
- weight_kg
- height_m
- bmi
- street
- number
- complement
- neighborhood
- city
- state
- cep
- created_at
- updated_at
- created_by
x-apidog-ignore-properties: []
x-apidog-folder: ''
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Atualizar paciente
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/patients/{id}:
patch:
summary: Atualizar paciente
deprecated: false
description: Atualizar dados de um paciente existente
tags:
- Pacientes
- Pacientes
parameters:
- name: id
in: path
description: ID do paciente
required: true
example: ''
schema:
type: string
format: uuid
- name: apikey
in: header
description: Chave da API Supabase
required: true
example: ''
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatientInput'
responses:
'200':
description: Paciente atualizado com sucesso
content:
application/json:
schema:
$ref: '#/components/schemas/Patient'
headers: {}
x-apidog-name: OK
'401':
description: Não autorizado
content:
application/json:
schema: &ref_0
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Unauthorized
'404':
description: Paciente não encontrado
content:
application/json:
schema: *ref_0
headers: {}
x-apidog-name: Not Found
security:
- bearer: []
x-apidog-folder: Pacientes
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940516-run
components:
schemas:
PatientInput:
type: object
required:
- full_name
- cpf
- email
- phone_mobile
properties:
full_name:
type: string
examples:
- Maria Santos Silva
cpf:
type: string
examples:
- '12345678901'
email:
type: string
format: email
examples:
- maria@email.com
phone_mobile:
type: string
examples:
- (11) 99999-9999
birth_date:
type: string
format: date
examples:
- '1980-01-15'
social_name:
type: string
sex:
type: string
examples:
- F
blood_type:
type: string
weight_kg:
type: number
height_m:
type: number
street:
type: string
number:
type: string
complement:
type: string
neighborhood:
type: string
city:
type: string
state:
type: string
cep:
type: string
x-apidog-orders:
- full_name
- cpf
- email
- phone_mobile
- birth_date
- social_name
- sex
- blood_type
- weight_kg
- height_m
- street
- number
- complement
- neighborhood
- city
- state
- cep
x-apidog-ignore-properties: []
x-apidog-folder: ''
Patient:
type: object
properties:
id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
full_name:
type: string
examples:
- Maria Santos Silva
cpf:
type: string
examples:
- '12345678901'
email:
type: string
format: email
examples:
- maria@email.com
phone_mobile:
type: string
examples:
- (11) 99999-9999
birth_date:
type: string
format: date
examples:
- '1980-01-15'
social_name:
type: string
examples:
- Maria Santos
sex:
type: string
examples:
- F
blood_type:
type: string
examples:
- A+
weight_kg:
type: number
examples:
- 65.5
height_m:
type: number
examples:
- 1.65
bmi:
type: number
examples:
- 24.1
street:
type: string
examples:
- Rua das Flores, 123
number:
type: string
examples:
- '123'
complement:
type: string
examples:
- Apt 45
neighborhood:
type: string
examples:
- Centro
city:
type: string
examples:
- São Paulo
state:
type: string
examples:
- SP
cep:
type: string
examples:
- 01234-567
created_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
updated_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
created_by:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
x-apidog-orders:
- id
- full_name
- cpf
- email
- phone_mobile
- birth_date
- social_name
- sex
- blood_type
- weight_kg
- height_m
- bmi
- street
- number
- complement
- neighborhood
- city
- state
- cep
- created_at
- updated_at
- created_by
x-apidog-ignore-properties: []
x-apidog-folder: ''
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Deletar paciente
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/patients/{id}:
delete:
summary: Deletar paciente
deprecated: false
description: Remover um paciente do sistema (apenas admins/gestores)
tags:
- Pacientes
- Pacientes
parameters:
- name: id
in: path
description: ID do paciente
required: true
example: ''
schema:
type: string
format: uuid
- name: apikey
in: header
description: Chave da API Supabase
required: true
example: ''
schema:
type: string
responses:
'204':
description: Paciente deletado com sucesso
headers: {}
x-apidog-name: No Content
'401':
description: Não autorizado
content:
application/json:
schema: &ref_0
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Unauthorized
'403':
description: Sem permissão
content:
application/json:
schema: *ref_0
headers: {}
x-apidog-name: Forbidden
'404':
description: Paciente não encontrado
content:
application/json:
schema: *ref_0
headers: {}
x-apidog-name: Not Found
security:
- bearer: []
x-apidog-folder: Pacientes
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940517-run
components:
schemas:
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Criar novo paciente
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/patients:
post:
summary: Criar novo paciente
deprecated: false
description: Cadastrar um novo paciente no sistema
tags:
- Pacientes
- Pacientes
parameters:
- name: apikey
in: header
description: Chave da API Supabase
required: true
example: '{{API_KEY}}'
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatientInput'
example:
full_name: Maria Santos
cpf: '12345678901'
email: maria@email.com
phone_mobile: (11) 99999-9999
birth_date: '1980-01-15'
responses:
'201':
description: Paciente criado com sucesso
content:
application/json:
schema:
$ref: '#/components/schemas/Patient'
headers: {}
x-apidog-name: Created
'400':
description: Dados inválidos
content:
application/json:
schema: &ref_0
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Bad Request
'401':
description: Não autorizado
content:
application/json:
schema: *ref_0
headers: {}
x-apidog-name: Unauthorized
security:
- bearer: []
x-apidog-folder: Pacientes
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940514-run
components:
schemas:
PatientInput:
type: object
required:
- full_name
- cpf
- email
- phone_mobile
properties:
full_name:
type: string
examples:
- Maria Santos Silva
cpf:
type: string
examples:
- '12345678901'
email:
type: string
format: email
examples:
- maria@email.com
phone_mobile:
type: string
examples:
- (11) 99999-9999
birth_date:
type: string
format: date
examples:
- '1980-01-15'
social_name:
type: string
sex:
type: string
examples:
- F
blood_type:
type: string
weight_kg:
type: number
height_m:
type: number
street:
type: string
number:
type: string
complement:
type: string
neighborhood:
type: string
city:
type: string
state:
type: string
cep:
type: string
x-apidog-orders:
- full_name
- cpf
- email
- phone_mobile
- birth_date
- social_name
- sex
- blood_type
- weight_kg
- height_m
- street
- number
- complement
- neighborhood
- city
- state
- cep
x-apidog-ignore-properties: []
x-apidog-folder: ''
Patient:
type: object
properties:
id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
full_name:
type: string
examples:
- Maria Santos Silva
cpf:
type: string
examples:
- '12345678901'
email:
type: string
format: email
examples:
- maria@email.com
phone_mobile:
type: string
examples:
- (11) 99999-9999
birth_date:
type: string
format: date
examples:
- '1980-01-15'
social_name:
type: string
examples:
- Maria Santos
sex:
type: string
examples:
- F
blood_type:
type: string
examples:
- A+
weight_kg:
type: number
examples:
- 65.5
height_m:
type: number
examples:
- 1.65
bmi:
type: number
examples:
- 24.1
street:
type: string
examples:
- Rua das Flores, 123
number:
type: string
examples:
- '123'
complement:
type: string
examples:
- Apt 45
neighborhood:
type: string
examples:
- Centro
city:
type: string
examples:
- São Paulo
state:
type: string
examples:
- SP
cep:
type: string
examples:
- 01234-567
created_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
updated_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
created_by:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
x-apidog-orders:
- id
- full_name
- cpf
- email
- phone_mobile
- birth_date
- social_name
- sex
- blood_type
- weight_kg
- height_m
- bmi
- street
- number
- complement
- neighborhood
- city
- state
- cep
- created_at
- updated_at
- created_by
x-apidog-ignore-properties: []
x-apidog-folder: ''
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []
Listar pacientes
OpenAPI Specification
openapi: 3.0.1
info:
title: ''
description: ''
version: 1.0.0
paths:
/rest/v1/patients:
get:
summary: Listar pacientes
deprecated: false
description: Retorna lista de pacientes com base nas permissões do usuário
tags:
- Pacientes
- Pacientes
parameters:
- name: apikey
in: header
description: ''
required: false
example: '{{apikey}}'
schema:
type: string
responses:
'200':
description: Lista de pacientes
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Patient'
headers: {}
x-apidog-name: OK
'401':
description: Não autorizado
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers: {}
x-apidog-name: Unauthorized
security:
- bearer: []
x-apidog-folder: Pacientes
x-apidog-status: released
x-run-in-apidog: https://app.apidog.com/web/project/1053378/apis/api-21940513-run
components:
schemas:
Patient:
type: object
properties:
id:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
full_name:
type: string
examples:
- Maria Santos Silva
cpf:
type: string
examples:
- '12345678901'
email:
type: string
format: email
examples:
- maria@email.com
phone_mobile:
type: string
examples:
- (11) 99999-9999
birth_date:
type: string
format: date
examples:
- '1980-01-15'
social_name:
type: string
examples:
- Maria Santos
sex:
type: string
examples:
- F
blood_type:
type: string
examples:
- A+
weight_kg:
type: number
examples:
- 65.5
height_m:
type: number
examples:
- 1.65
bmi:
type: number
examples:
- 24.1
street:
type: string
examples:
- Rua das Flores, 123
number:
type: string
examples:
- '123'
complement:
type: string
examples:
- Apt 45
neighborhood:
type: string
examples:
- Centro
city:
type: string
examples:
- São Paulo
state:
type: string
examples:
- SP
cep:
type: string
examples:
- 01234-567
created_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
updated_at:
type: string
format: date-time
examples:
- '2024-01-15T10:30:00Z'
created_by:
type: string
format: uuid
examples:
- 12345678-1234-1234-1234-123456789012
x-apidog-orders:
- id
- full_name
- cpf
- email
- phone_mobile
- birth_date
- social_name
- sex
- blood_type
- weight_kg
- height_m
- bmi
- street
- number
- complement
- neighborhood
- city
- state
- cep
- created_at
- updated_at
- created_by
x-apidog-ignore-properties: []
x-apidog-folder: ''
Error:
type: object
properties:
error:
type: string
message:
type: string
code:
type: string
x-apidog-orders:
- error
- message
- code
x-apidog-ignore-properties: []
x-apidog-folder: ''
securitySchemes:
bearerAuth:
type: jwt
scheme: bearer
bearerFormat: JWT
description: Token JWT obtido no login
bearer:
type: http
scheme: bearer
servers:
- url: https://yuanqfswhberkoevtmfr.supabase.co
description: Prod Env
- url: ''
description: Cloud Mock
security:
- bearer: []