photum/backend/internal/db/generated/availability.sql.go
NANDO9322 434548c158 feat(staffing): implementa sistema de disponibilidade e escalonamento
- Adiciona tabela `disponibilidade_profissionais` no schema
- Adiciona coluna `posicao` para mapa de profissionais no evento
- Implementa Service e Handler para gerenciar Disponibilidade (Set/Get)
- Implementa lógica de Escalonamento: listar disponíveis e atribuir posição
- Atualiza rotas da API e serviço do frontend

feat(frontend): implementa modal de detalhes e updates otimistas na equipe

- Adiciona componente ProfessionalDetailsModal para exibir dados completos do profissional
- Implementa update otimista em DataContext para adição/removação instantânea da equipe
- Corrige bug crítico de sintaxe e estrutura na Dashboard.tsx
- Adiciona badges de status (Pendente/Confirmado/Rejeitado) na listagem de equipe
- Corrige erro de referência de variável (professionalId) no fluxo de atribuição
2025-12-23 17:29:40 -03:00

117 lines
3.1 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.30.0
// source: availability.sql
package generated
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const createDisponibilidade = `-- name: CreateDisponibilidade :one
INSERT INTO disponibilidade_profissionais (usuario_id, data, status)
VALUES ($1, $2, $3)
ON CONFLICT (usuario_id, data) DO UPDATE
SET status = EXCLUDED.status, criado_em = NOW()
RETURNING id, usuario_id, data, status, criado_em
`
type CreateDisponibilidadeParams struct {
UsuarioID pgtype.UUID `json:"usuario_id"`
Data pgtype.Date `json:"data"`
Status string `json:"status"`
}
func (q *Queries) CreateDisponibilidade(ctx context.Context, arg CreateDisponibilidadeParams) (DisponibilidadeProfissionai, error) {
row := q.db.QueryRow(ctx, createDisponibilidade, arg.UsuarioID, arg.Data, arg.Status)
var i DisponibilidadeProfissionai
err := row.Scan(
&i.ID,
&i.UsuarioID,
&i.Data,
&i.Status,
&i.CriadoEm,
)
return i, err
}
const deleteDisponibilidade = `-- name: DeleteDisponibilidade :exec
DELETE FROM disponibilidade_profissionais
WHERE usuario_id = $1 AND data = $2
`
type DeleteDisponibilidadeParams struct {
UsuarioID pgtype.UUID `json:"usuario_id"`
Data pgtype.Date `json:"data"`
}
func (q *Queries) DeleteDisponibilidade(ctx context.Context, arg DeleteDisponibilidadeParams) error {
_, err := q.db.Exec(ctx, deleteDisponibilidade, arg.UsuarioID, arg.Data)
return err
}
const getDisponibilidadeByDate = `-- name: GetDisponibilidadeByDate :one
SELECT id, usuario_id, data, status, criado_em FROM disponibilidade_profissionais
WHERE usuario_id = $1 AND data = $2
`
type GetDisponibilidadeByDateParams struct {
UsuarioID pgtype.UUID `json:"usuario_id"`
Data pgtype.Date `json:"data"`
}
func (q *Queries) GetDisponibilidadeByDate(ctx context.Context, arg GetDisponibilidadeByDateParams) (DisponibilidadeProfissionai, error) {
row := q.db.QueryRow(ctx, getDisponibilidadeByDate, arg.UsuarioID, arg.Data)
var i DisponibilidadeProfissionai
err := row.Scan(
&i.ID,
&i.UsuarioID,
&i.Data,
&i.Status,
&i.CriadoEm,
)
return i, err
}
const listDisponibilidadeByPeriod = `-- name: ListDisponibilidadeByPeriod :many
SELECT id, usuario_id, data, status, criado_em FROM disponibilidade_profissionais
WHERE usuario_id = $1
AND data >= $2
AND data <= $3
ORDER BY data
`
type ListDisponibilidadeByPeriodParams struct {
UsuarioID pgtype.UUID `json:"usuario_id"`
Data pgtype.Date `json:"data"`
Data_2 pgtype.Date `json:"data_2"`
}
func (q *Queries) ListDisponibilidadeByPeriod(ctx context.Context, arg ListDisponibilidadeByPeriodParams) ([]DisponibilidadeProfissionai, error) {
rows, err := q.db.Query(ctx, listDisponibilidadeByPeriod, arg.UsuarioID, arg.Data, arg.Data_2)
if err != nil {
return nil, err
}
defer rows.Close()
var items []DisponibilidadeProfissionai
for rows.Next() {
var i DisponibilidadeProfissionai
if err := rows.Scan(
&i.ID,
&i.UsuarioID,
&i.Data,
&i.Status,
&i.CriadoEm,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}