get_resource_schedule query
001_select_resources.sql
SQL種別
SELECT
SQLの概要
予約表の対象資源が存在することを確認するため、資源IDを取得する。
利用するテーブル
resources
引数
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
resources |
resource_id |
resource_id |
資源ID。 | VARCHAR(36) |
no |
戻り値
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
resources |
resource_id |
resource_id |
資源ID。 | VARCHAR(36) |
no |
条件
WHEREresources.resource_id = @resource_id
002_select_reservations.sql
SQL種別
SELECT
SQLの概要
指定日の予約表を返すため、日付範囲に重なる確定予約を開始日時とIDの順に取得する。
利用するテーブル
reservations
引数
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
reservations |
resource_id |
resource_id |
予約対象の資源ID。 | VARCHAR(36) |
no |
reservations |
start_at |
day_end |
予約開始日時。UTCで保存する。 | TIMESTAMPTZ |
no |
reservations |
end_at |
day_start |
予約終了日時。UTCで保存し、この時刻を含まない。 | TIMESTAMPTZ |
no |
- |
after_start_at |
after_start_at |
- | datetime | None |
yes |
- |
after_reservation_id |
after_reservation_id |
- | str | None |
yes |
- |
limit |
limit |
- | int |
no |
戻り値
| DDLテーブル | DDL項目 | SQL項目 | 日本語名 | 型 | nullable |
|---|---|---|---|---|---|
reservations |
reservation_id |
reservation_id |
予約ID。 | VARCHAR(36) |
no |
reservations |
resource_id |
resource_id |
予約対象の資源ID。 | VARCHAR(36) |
no |
reservations |
owner_principal_id |
owner_principal_id |
予約者の認証subject。 | VARCHAR(200) |
no |
reservations |
start_at |
start_at |
予約開始日時。UTCで保存する。 | TIMESTAMPTZ |
no |
reservations |
end_at |
end_at |
予約終了日時。UTCで保存し、この時刻を含まない。 | TIMESTAMPTZ |
no |
reservations |
purpose |
purpose |
予約目的。1〜200文字。本人と管理者だけに返す。 | VARCHAR(200) |
no |
reservations |
status |
status |
予約状態。confirmedまたはcancelled。 | VARCHAR(20) |
no |
reservations |
row_version |
row_version |
楽観ロック用の行バージョン。 | INT |
no |
条件
WHEREreservations.resource_id = @resource_idAND reservations.status = 'confirmed'AND reservations.start_at < @day_endAND reservations.end_at > @day_startAND (CAST(@after_start_at AS TIMESTAMPTZ) IS NULLOR CAST(@after_reservation_id AS VARCHAR) IS NULLOR (reservations.start_at, reservations.reservation_id) > (CAST(@after_start_at AS TIMESTAMPTZ), CAST(@after_reservation_id AS VARCHAR)))