]> ruin.nu Git - ndwebbie.git/blob - database/fleets.sql
intel role
[ndwebbie.git] / database / fleets.sql
1 CREATE TABLE intel (
2         id SERIAL PRIMARY KEY,
3         uid INTEGER NOT NULL REFERENCES users(uid),
4         sender INTEGER NOT NULL REFERENCES planets(id),
5         target INTEGER NOT NULL REFERENCES planets(id),
6         mission TEXT NOT NULL,
7         name TEXT NOT NULL,
8         amount INTEGER,
9         tick INTEGER NOT NULL,
10         eta INTEGER NOT NULL,
11         back INTEGER,
12         ingal BOOLEAN NOT NULL
13 );
14
15 INSERT INTO intel (id,uid,sender,target,mission,name,amount,tick,eta,back,ingal)
16         (SELECT id,uid,sender,target,mission,name,amount,tick,eta,back,ingal FROM fleets
17                 WHERE target IS NOT NULL);
18
19 ALTER TABLE fleets RENAME COLUMN id TO fid;
20 ALTER TABLE fleet_ships RENAME COLUMN id TO fid;
21 ALTER TABLE fleet_scans RENAME COLUMN id TO fid;
22 ALTER TABLE fleet_scans RENAME COLUMN scan TO id;
23
24 CREATE TABLE launch_confirmations (
25         fid INTEGER PRIMARY KEY REFERENCES fleets(fid),
26         uid INTEGER NOT NULL REFERENCES users(uid),
27         target INTEGER NOT NULL REFERENCES planets(id),
28         landing_tick INTEGER NOT NULL,
29         eta INTEGER NOT NULL,
30         back INTEGER NOT NULL
31 );
32
33 INSERT INTO launch_confirmations (fid,uid,target,eta,back,landing_tick) (
34         SELECT fid,uid,target,eta,back,tick AS landing_tick FROM fleets
35         WHERE fid IN (select fid FROM fleet_ships)
36                 AND uid <> -1 AND back IS NOT NULL AND target IS NOT NULL
37 );
38
39 CREATE TABLE full_fleets (
40         fid INTEGER PRIMARY KEY REFERENCES fleets(fid),
41         uid INTEGER NOT NULL REFERENCES users(uid)
42 );
43
44 INSERT INTO full_fleets (fid,uid) (
45         SELECT fid,uid FROM fleets WHERE fid IN (select fid FROM fleet_ships)
46                 AND uid <> -1 AND mission = 'Full fleet' AND name = 'Main'
47 );
48
49 ALTER TABLE fleets DROP COLUMN target;
50 ALTER TABLE fleets DROP COLUMN eta;
51 ALTER TABLE fleets DROP COLUMN back;
52 ALTER TABLE fleets DROP COLUMN ingal;
53 ALTER TABLE fleets DROP COLUMN uid;
54
55 ALTER TABLE fleets RENAME COLUMN sender TO planet;
56
57 CREATE TABLE intel_scans (
58         id INTEGER REFERENCES scans(id),
59         intel INTEGER REFERENCES intel(id),
60         PRIMARY KEY (id,intel)
61 );
62
63 INSERT INTO intel_scans (id,intel) (
64         SELECT id,fid FROM fleet_scans WHERE id IN (
65                 SELECT id from scans where type in ('News','Jumpgate')
66         )
67 );
68
69 DELETE FROM fleet_scans WHERE id IN (
70         SELECT id from scans where type in ('News','Jumpgate')
71 );
72
73 DELETE FROM fleets WHERE fid NOT IN (
74         SELECT fid FROM fleet_scans
75         UNION SELECT fid FROM full_fleets
76         UNION SELECT fid FROM launch_confirmations
77 );