77 lines
2.1 KiB
SQL
77 lines
2.1 KiB
SQL
-- name: CreateUser :one
|
|
INSERT INTO users (username, password_hash)
|
|
VALUES ($1, $2)
|
|
RETURNING *;
|
|
|
|
-- name: GetUserByUsername :one
|
|
SELECT * FROM users WHERE username = $1;
|
|
|
|
-- name: ResetLoginFailures :exec
|
|
UPDATE users
|
|
SET failed_login_attempts = 0,
|
|
locked_until = NULL
|
|
WHERE username = $1;
|
|
|
|
-- name: RecordFailedLogin :one
|
|
UPDATE users
|
|
SET failed_login_attempts = CASE
|
|
WHEN failed_login_attempts + 1 >= 3 THEN 3
|
|
ELSE failed_login_attempts + 1
|
|
END,
|
|
locked_until = CASE
|
|
WHEN failed_login_attempts + 1 >= 3 THEN NOW() + INTERVAL '5 minutes'
|
|
ELSE locked_until
|
|
END
|
|
WHERE username = $1
|
|
RETURNING failed_login_attempts, locked_until;
|
|
|
|
-- name: GetDeliveriesByDate :many
|
|
SELECT * FROM deliveries WHERE date = $1;
|
|
|
|
-- name: CreateDelivery :one
|
|
INSERT INTO deliveries (
|
|
date, pickup_location, pickup_location_2, warehouse_request_source, warehouse_request_source_2, product_name, product_name_2,
|
|
customer_name, address, street, house, apartment, entrance, floor,
|
|
phone, additional_phone, has_elevator, service_info, comment
|
|
)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19)
|
|
RETURNING *;
|
|
|
|
-- name: GetDeliveryByID :one
|
|
SELECT * FROM deliveries WHERE id = $1;
|
|
|
|
-- name: DeleteDelivery :exec
|
|
DELETE FROM deliveries WHERE id = $1;
|
|
|
|
-- name: UpdateDelivery :exec
|
|
UPDATE deliveries SET
|
|
date = $1,
|
|
pickup_location = $2,
|
|
pickup_location_2 = $3,
|
|
warehouse_request_source = $4,
|
|
warehouse_request_source_2 = $5,
|
|
product_name = $6,
|
|
product_name_2 = $7,
|
|
customer_name = $8,
|
|
address = $9,
|
|
street = $10,
|
|
house = $11,
|
|
apartment = $12,
|
|
entrance = $13,
|
|
floor = $14,
|
|
phone = $15,
|
|
additional_phone = $16,
|
|
has_elevator = $17,
|
|
service_info = $18,
|
|
comment = $19,
|
|
updated_at = NOW()
|
|
WHERE id = $20;
|
|
|
|
-- name: GetDeliveryCount :many
|
|
SELECT COUNT(*) as count, date FROM deliveries
|
|
WHERE date >= CURRENT_DATE AND date < CURRENT_DATE + INTERVAL '7 days'
|
|
GROUP BY date;
|
|
|
|
-- name: UpdateDeliveryStatus :exec
|
|
UPDATE deliveries SET status = $1, updated_at = NOW() WHERE id = $2;
|