added admin options
This commit is contained in:
@@ -105,6 +105,83 @@ func (q *Queries) GetBooking(ctx context.Context, id int64) (GetBookingRow, erro
|
||||
return i, err
|
||||
}
|
||||
|
||||
const listAllBookingsWithDetails = `-- name: ListAllBookingsWithDetails :many
|
||||
SELECT
|
||||
b.id,
|
||||
b.user_id,
|
||||
b.service_id,
|
||||
b.event_date,
|
||||
b.address,
|
||||
b.notes,
|
||||
b.created_at,
|
||||
b.status,
|
||||
b.service_option,
|
||||
b.event_type,
|
||||
u.email as user_email,
|
||||
s.name as service_name,
|
||||
s.description as service_description,
|
||||
s.price_cents as service_price_cents
|
||||
FROM bookings b
|
||||
JOIN users u ON b.user_id = u.id
|
||||
JOIN services s ON b.service_id = s.id
|
||||
ORDER BY b.created_at DESC
|
||||
`
|
||||
|
||||
type ListAllBookingsWithDetailsRow struct {
|
||||
ID int64 `json:"id"`
|
||||
UserID sql.NullInt64 `json:"user_id"`
|
||||
ServiceID sql.NullInt64 `json:"service_id"`
|
||||
EventDate time.Time `json:"event_date"`
|
||||
Address sql.NullString `json:"address"`
|
||||
Notes sql.NullString `json:"notes"`
|
||||
CreatedAt sql.NullTime `json:"created_at"`
|
||||
Status sql.NullString `json:"status"`
|
||||
ServiceOption sql.NullString `json:"service_option"`
|
||||
EventType sql.NullString `json:"event_type"`
|
||||
UserEmail string `json:"user_email"`
|
||||
ServiceName string `json:"service_name"`
|
||||
ServiceDescription sql.NullString `json:"service_description"`
|
||||
ServicePriceCents int32 `json:"service_price_cents"`
|
||||
}
|
||||
|
||||
func (q *Queries) ListAllBookingsWithDetails(ctx context.Context) ([]ListAllBookingsWithDetailsRow, error) {
|
||||
rows, err := q.db.QueryContext(ctx, listAllBookingsWithDetails)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
items := []ListAllBookingsWithDetailsRow{}
|
||||
for rows.Next() {
|
||||
var i ListAllBookingsWithDetailsRow
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.UserID,
|
||||
&i.ServiceID,
|
||||
&i.EventDate,
|
||||
&i.Address,
|
||||
&i.Notes,
|
||||
&i.CreatedAt,
|
||||
&i.Status,
|
||||
&i.ServiceOption,
|
||||
&i.EventType,
|
||||
&i.UserEmail,
|
||||
&i.ServiceName,
|
||||
&i.ServiceDescription,
|
||||
&i.ServicePriceCents,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const listBookingsByUser = `-- name: ListBookingsByUser :many
|
||||
SELECT id, user_id, service_id, event_date, address, notes, created_at, status, service_option, event_type
|
||||
FROM bookings
|
||||
@@ -232,3 +309,19 @@ func (q *Queries) ListBookingsWithServiceByUser(ctx context.Context, userID sql.
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const updateBookingStatus = `-- name: UpdateBookingStatus :exec
|
||||
UPDATE bookings
|
||||
SET status = $2
|
||||
WHERE id = $1
|
||||
`
|
||||
|
||||
type UpdateBookingStatusParams struct {
|
||||
ID int64 `json:"id"`
|
||||
Status sql.NullString `json:"status"`
|
||||
}
|
||||
|
||||
func (q *Queries) UpdateBookingStatus(ctx context.Context, arg UpdateBookingStatusParams) error {
|
||||
_, err := q.db.ExecContext(ctx, updateBookingStatus, arg.ID, arg.Status)
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user