forked from Ruderverein-Donau-Linz/rowt
		
	create db tables for logbook
This commit is contained in:
		
							
								
								
									
										40
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								README.md
									
									
									
									
									
								
							@@ -6,47 +6,29 @@
 | 
			
		||||
### Logbuch
 | 
			
		||||
- Log with activities
 | 
			
		||||
 | 
			
		||||
#### Tables
 | 
			
		||||
- boats
 | 
			
		||||
	- id
 | 
			
		||||
	- name
 | 
			
		||||
	- amount_seats
 | 
			
		||||
- session
 | 
			
		||||
	- id
 | 
			
		||||
	- ship_master (Schiffsführer)
 | 
			
		||||
	- ship_master_only_steered (default: false)
 | 
			
		||||
	- departure (Datetime)
 | 
			
		||||
	- Option<arrival> (Datetime) // None -> on water
 | 
			
		||||
	- destination
 | 
			
		||||
	- Option<km> (prefilled from destination)
 | 
			
		||||
	- comments
 | 
			
		||||
	- type (normal, Wanderfahrt)
 | 
			
		||||
- rowers
 | 
			
		||||
	- session_id
 | 
			
		||||
	- user_id
 | 
			
		||||
- damages
 | 
			
		||||
	- boat_id
 | 
			
		||||
	- desc
 | 
			
		||||
	- user_id_created
 | 
			
		||||
	- created_at
 | 
			
		||||
	- user_id_fixed
 | 
			
		||||
	- fixed_at
 | 
			
		||||
	- lock_boat (default: false), if true: noone can use this boat
 | 
			
		||||
 | 
			
		||||
### Guest-Scheckbuch
 | 
			
		||||
- guest_trip
 | 
			
		||||
	- guest_user_id
 | 
			
		||||
	- amount_trips
 | 
			
		||||
	- paid_to_user_id
 | 
			
		||||
- guest_trip_session
 | 
			
		||||
- guest_trip_logbook
 | 
			
		||||
	- guest_trip_id
 | 
			
		||||
	- session_id
 | 
			
		||||
	- logbook_id 
 | 
			
		||||
 | 
			
		||||
### Bootsreservierungen
 | 
			
		||||
- Confirmation required?
 | 
			
		||||
- How long in advance is it possible?
 | 
			
		||||
- Default reservations for some regular events (A+F, USI, ...)?
 | 
			
		||||
 | 
			
		||||
### Notifications
 | 
			
		||||
- notifcations
 | 
			
		||||
	- id
 | 
			
		||||
	- message
 | 
			
		||||
	- category
 | 
			
		||||
	- created_at
 | 
			
		||||
	- read_at: Option<Datetime>
 | 
			
		||||
	- user_id
 | 
			
		||||
 | 
			
		||||
## Backlog (i.e. don't work on this now)
 | 
			
		||||
### Sync w/ nextcloud
 | 
			
		||||
- remove most fields (names, ...) from users and add uid
 | 
			
		||||
 
 | 
			
		||||
@@ -65,3 +65,57 @@ CREATE TABLE IF NOT EXISTS "log" (
 | 
			
		||||
	"created_at" text NOT NULL DEFAULT CURRENT_TIMESTAMP
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE IF NOT EXISTS "location" (
 | 
			
		||||
	"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
 | 
			
		||||
	"name" text NOT NULL
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE IF NOT EXISTS "boat" (
 | 
			
		||||
	"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
 | 
			
		||||
	"name" text NOT NULL UNIQUE,
 | 
			
		||||
	"amount_seats" integer NOT NULL,
 | 
			
		||||
	"location_id" INTEGER NOT NULL REFERENCES location(id),
 | 
			
		||||
	"owner" INTEGER REFERENCES user(id), -- null: club is owner
 | 
			
		||||
	"year_built" INTEGER,
 | 
			
		||||
	"boatbuilder" TEXT,
 | 
			
		||||
	"default_shipmaster_only_steering" boolean default false not null,
 | 
			
		||||
	"skull" boolean default true NOT NULL, -- false => riemen
 | 
			
		||||
	"external" boolean default false NOT NULL -- false => owned by different club
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE IF NOT EXISTS "logbook_type" (
 | 
			
		||||
	"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
 | 
			
		||||
	"name" text NOT NULL -- e.g. 'Wanderfahrt', 'Regatta'
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE IF NOT EXISTS "logbook" (
 | 
			
		||||
	"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
 | 
			
		||||
	"boat_id" INTEGER NOT NULL REFERENCES boat(id),
 | 
			
		||||
	"shipmaster" INTEGER NOT NULL REFERENCES user(id), -- null: club is owner
 | 
			
		||||
	"shipmaster_only_steering" boolean not null,
 | 
			
		||||
	"departure" text not null,
 | 
			
		||||
	"arrival" text, -- None -> ship is on water
 | 
			
		||||
	"destination" text,
 | 
			
		||||
	"distance_in_km" integer,
 | 
			
		||||
	"comments" text,
 | 
			
		||||
	"type" INTEGER REFERENCES logbook_type(id) 
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE IF NOT EXISTS "rower" (
 | 
			
		||||
	"logbook_id" INTEGER NOT NULL REFERENCES logbook(id),
 | 
			
		||||
	"rower_id" INTEGER NOT NULL REFERENCES user(id)
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
CREATE TABLE IF NOT EXISTS "boat_damage" (
 | 
			
		||||
	"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
 | 
			
		||||
	"boat_id" INTEGER NOT NULL REFERENCES boat(id), 
 | 
			
		||||
	"desc" text not null,
 | 
			
		||||
	"user_id_created" INTEGER NOT NULL REFERENCES user(id), 
 | 
			
		||||
	"created_at" text not null,
 | 
			
		||||
	"user_id_fixed" INTEGER REFERENCES user(id),  -- none: not fixed yet
 | 
			
		||||
	"fixed_at" text,
 | 
			
		||||
	"user_id_verified" INTEGER REFERENCES user(id), 
 | 
			
		||||
	"verified_at" text,
 | 
			
		||||
	"lock_boat" boolean not null default false -- if true: noone can use the boat 
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								seeds.sql
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								seeds.sql
									
									
									
									
									
								
							@@ -15,3 +15,16 @@ INSERT INTO "trip" (cox_id, trip_details_id) VALUES(4, 2);
 | 
			
		||||
INSERT INTO "trip_type" (name, desc, question, icon) VALUES ('Regatta', 'Regatta!', 'Kein normales Event. Das ist eine Regatta! Willst du wirklich teilnehmen?', '🏅');
 | 
			
		||||
INSERT INTO "trip_type" (name, desc, question, icon) VALUES ('Lange Ausfahrt', 'Lange Ausfahrt!', 'Das ist eine lange Ausfahrt! Willst du wirklich teilnehmen?', '💪');
 | 
			
		||||
INSERT INTO "trip_type" (name, desc, question, icon) VALUES ('Wanderfahrt', 'Wanderfahrt!', 'Kein normales Event. Das ist eine Wanderfahrt! Bitte überprüfe ob du alle Anforderungen erfüllst. Willst du wirklich teilnehmen?', '⛱');
 | 
			
		||||
INSERT INTO "location" (name) VALUES ('Linz');
 | 
			
		||||
INSERT INTO "location" (name) VALUES ('Ottensheim');
 | 
			
		||||
INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Haichenbach', 1, 1);
 | 
			
		||||
INSERT INTO "boat" (name, amount_seats, location_id, owner) VALUES ('private_boat_from_rower', 1, 1, 2);
 | 
			
		||||
INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Joe', 2, 1);
 | 
			
		||||
INSERT INTO "boat" (name, amount_seats, location_id) VALUES ('Kaputtes Boot :-(', 7, 1);
 | 
			
		||||
INSERT INTO "logbook_type" (name) VALUES ('Wanderfahrt');
 | 
			
		||||
INSERT INTO "logbook_type" (name) VALUES ('Regatta');
 | 
			
		||||
INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure) VALUES (2, 2, false, '2142-12-24 10:00');
 | 
			
		||||
INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km) VALUES (1, 4, false, '2141-12-24 10:00', '2141-12-24 15:00', 'Ottensheim', 25);
 | 
			
		||||
INSERT INTO "logbook" (boat_id, shipmaster, shipmaster_only_steering, departure, arrival, destination, distance_in_km) VALUES (3, 4, false, '2142-12-24 10:00', '2142-12-24 11:30', 'Ottensheim + Regattastrecke', 29);
 | 
			
		||||
INSERT INTO "rower" (logbook_id, rower_id) VALUES(3,3);
 | 
			
		||||
INSERT INTO "boat_damage" (boat_id, desc, user_id_created, created_at) VALUES(4,'Dolle bei Position 2 fehlt', 5, '2142-12-24 15:02');
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user