create event and reservation table

This commit is contained in:
Akulij 2025-04-07 22:36:12 +09:00
parent 18d7ae9ce7
commit 6e0a21f569
5 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,2 @@
DROP TABLE events;

View File

@ -0,0 +1,4 @@
CREATE TABLE events (
id SERIAL PRIMARY KEY,
time TIMESTAMP UNIQUE NOT NULL
);

View File

@ -0,0 +1,2 @@
DROP TABLE reservations;
DROP TYPE reservation_status;

View File

@ -0,0 +1,10 @@
CREATE TYPE reservation_status AS ENUM ('booked', 'paid');
CREATE TABLE reservations (
id SERIAL PRIMARY KEY,
user_id INTEGER REFERENCES users(id),
entered_name VARCHAR(255),
booked_time TIMESTAMP NOT NULL,
event_id INTEGER REFERENCES events(id),
status reservation_status NOT NULL
);

View File

@ -1,5 +1,18 @@
// @generated automatically by Diesel CLI. // @generated automatically by Diesel CLI.
pub mod sql_types {
#[derive(diesel::query_builder::QueryId, Clone, diesel::sql_types::SqlType)]
#[diesel(postgres_type(name = "reservation_status"))]
pub struct ReservationStatus;
}
diesel::table! {
events (id) {
id -> Int4,
time -> Timestamp,
}
}
diesel::table! { diesel::table! {
literals (id) { literals (id) {
id -> Int4, id -> Int4,
@ -19,6 +32,21 @@ diesel::table! {
} }
} }
diesel::table! {
use diesel::sql_types::*;
use super::sql_types::ReservationStatus;
reservations (id) {
id -> Int4,
user_id -> Nullable<Int4>,
#[max_length = 255]
entered_name -> Nullable<Varchar>,
booked_time -> Timestamp,
event_id -> Nullable<Int4>,
status -> ReservationStatus,
}
}
diesel::table! { diesel::table! {
teloxide_dialogues (chat_id) { teloxide_dialogues (chat_id) {
chat_id -> Int8, chat_id -> Int8,
@ -41,9 +69,14 @@ diesel::table! {
} }
} }
diesel::joinable!(reservations -> events (event_id));
diesel::joinable!(reservations -> users (user_id));
diesel::allow_tables_to_appear_in_same_query!( diesel::allow_tables_to_appear_in_same_query!(
events,
literals, literals,
messages, messages,
reservations,
teloxide_dialogues, teloxide_dialogues,
users, users,
); );