diff --git a/geneit_backend/migrations/2024-05-23-163128_accommodation_module/down.sql b/geneit_backend/migrations/2024-05-23-163128_accommodation_module/down.sql new file mode 100644 index 0000000..d6be2c6 --- /dev/null +++ b/geneit_backend/migrations/2024-05-23-163128_accommodation_module/down.sql @@ -0,0 +1,2 @@ +DROP TABLE IF EXISTS accomodations_reservations; +DROP TABLE IF EXISTS accomodations_list; \ No newline at end of file diff --git a/geneit_backend/migrations/2024-05-23-163128_accommodation_module/up.sql b/geneit_backend/migrations/2024-05-23-163128_accommodation_module/up.sql new file mode 100644 index 0000000..e1456f7 --- /dev/null +++ b/geneit_backend/migrations/2024-05-23-163128_accommodation_module/up.sql @@ -0,0 +1,24 @@ +-- Create tables +CREATE TABLE IF NOT EXISTS accommodations_list +( + id SERIAL PRIMARY KEY, + family_id integer NOT NULL REFERENCES families, + time_create BIGINT NOT NULL, + time_update BIGINT NOT NULL, + need_validation BOOLEAN, + description text NULL, + open_to_reservation BOOLEAN +); + +CREATE TABLE IF NOT EXISTS accommodations_reservations +( + id SERIAL PRIMARY KEY, + family_id integer NOT NULL REFERENCES families ON DELETE CASCADE, + accommodation_id integer NOT NULL REFERENCES accommodations_list ON DELETE CASCADE, + user_id INTEGER NOT NULL REFERENCES users ON DELETE CASCADE, + time_create BIGINT NOT NULL, + time_update BIGINT NOT NULL, + reservation_start BIGINT NOT NULL, + reservation_end BIGINT NOT NULL, + validated BOOLEAN +); \ No newline at end of file diff --git a/geneit_backend/src/schema.rs b/geneit_backend/src/schema.rs index f681f84..4ab6a0f 100644 --- a/geneit_backend/src/schema.rs +++ b/geneit_backend/src/schema.rs @@ -1,5 +1,31 @@ // @generated automatically by Diesel CLI. +diesel::table! { + accommodations_list (id) { + id -> Int4, + family_id -> Int4, + time_create -> Int8, + time_update -> Int8, + need_validation -> Nullable, + description -> Nullable, + open_to_reservation -> Nullable, + } +} + +diesel::table! { + accommodations_reservations (id) { + id -> Int4, + family_id -> Int4, + accommodation_id -> Int4, + user_id -> Int4, + time_create -> Int8, + time_update -> Int8, + reservation_start -> Int8, + reservation_end -> Int8, + validated -> Nullable, + } +} + diesel::table! { couples (id) { id -> Int4, @@ -119,6 +145,10 @@ diesel::table! { } } +diesel::joinable!(accommodations_list -> families (family_id)); +diesel::joinable!(accommodations_reservations -> accommodations_list (accommodation_id)); +diesel::joinable!(accommodations_reservations -> families (family_id)); +diesel::joinable!(accommodations_reservations -> users (user_id)); diesel::joinable!(couples -> families (family_id)); diesel::joinable!(couples -> photos (photo_id)); diesel::joinable!(members -> families (family_id)); @@ -127,6 +157,8 @@ diesel::joinable!(memberships -> families (family_id)); diesel::joinable!(memberships -> users (user_id)); diesel::allow_tables_to_appear_in_same_query!( + accommodations_list, + accommodations_reservations, couples, families, members,