This commit is contained in:
2025-09-09 00:10:53 +03:00
parent 38f2a05107
commit 204fc092d7
239 changed files with 22447 additions and 9536 deletions

View File

@@ -4,31 +4,210 @@ const path = require('path');
const dbPath = process.env.DATABASE_PATH || '../';
const db = new sqlite3.Database(path.join(dbPath, 'database.sqlite'));
// db.serialize(() => {
// db.run(`
// CREATE TABLE IF NOT EXISTS sheeps (
// id INTEGER PRIMARY KEY AUTOINCREMENT,
// uuid TEXT UNIQUE
// )
// `);
db.serialize(() => {
db.run(`
CREATE TABLE IF NOT EXISTS sheeps (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_id INTEGER,
name TEXT,
icon TEXT,
uuid TEXT,
uuid_manager TEXT,
appointment TEXT DEFAULT 'lamb',
mode INTEGER DEFAULT 0,
mode_title TEXT DEFAULT 'Користувач'
)
`);
// db.run(`
// CREATE TABLE IF NOT EXISTS administrators (
// sheep_id INTEGER PRIMARY KEY,
// can_view_sheeps INTEGER DEFAULT 0,
// FOREIGN KEY (sheep_id) REFERENCES sheeps(id)
// )
// `);
db.run(`
CREATE TABLE IF NOT EXISTS possibilities (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sheep_id INTEGER,
can_add_sheeps INTEGER DEFAULT 0,
can_view_sheeps INTEGER DEFAULT 0,
can_add_territory INTEGER DEFAULT 0,
can_view_territory INTEGER DEFAULT 0,
can_manager_territory INTEGER DEFAULT 0,
can_add_stand INTEGER DEFAULT 0,
can_view_stand INTEGER DEFAULT 0,
can_manager_stand INTEGER DEFAULT 0,
can_add_schedule INTEGER DEFAULT 0,
can_view_schedule INTEGER DEFAULT 0,
FOREIGN KEY (sheep_id) REFERENCES sheeps(id)
)
`);
// db.run(`
// CREATE TABLE IF NOT EXISTS sessions (
// session_id TEXT PRIMARY KEY,
// sheep_id INTEGER,
// role TEXT DEFAULT 'sheep',
// expires_at INTEGER,
// FOREIGN KEY (sheep_id) REFERENCES sheeps(id)
// )
// `);
// });
db.run(`
CREATE TABLE IF NOT EXISTS groups (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_number INTEGER,
share_hash TEXT
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS subscription (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sheep_id INTEGER,
token TEXT,
FOREIGN KEY (sheep_id) REFERENCES sheeps(id)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS badges (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sheep_id INTEGER,
quantity INTEGER,
FOREIGN KEY (sheep_id) REFERENCES sheeps(id)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS house (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_id INTEGER,
title TEXT,
number TEXT,
points TEXT DEFAULT '[]',
points_number TEXT DEFAULT '[]',
geo TEXT DEFAULT '[]',
osm_id TEXT DEFAULT '[]',
settlement TEXT,
description TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP,
FOREIGN KEY (group_id) REFERENCES groups(group_number)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS entrance (
id INTEGER PRIMARY KEY AUTOINCREMENT,
house_id INTEGER,
entrance_number INTEGER,
title TEXT,
points TEXT DEFAULT '[]',
points_number TEXT DEFAULT '[]',
floors_quantity TEXT,
apartments_quantity TEXT,
description TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP,
FOREIGN KEY (house_id) REFERENCES house(id)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS entrance_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
entrance_id INTEGER,
name TEXT,
date_start TIMESTAMP,
date_end TIMESTAMP,
group_id INTEGER,
sheep_id TEXT,
working INTEGER DEFAULT 0,
FOREIGN KEY (entrance_id) REFERENCES entrance(id)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS apartments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
entrance_id INTEGER,
apartment_number INTEGER,
title TEXT,
floors_number INTEGER,
status INTEGER,
description TEXT,
sheep_id TEXT,
updated_at TIMESTAMP,
FOREIGN KEY (entrance_id) REFERENCES entrance(id)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS apartments_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sheep_id TEXT,
apartments_id INTEGER,
status INTEGER,
description TEXT,
created_at TIMESTAMP,
FOREIGN KEY (apartments_id) REFERENCES apartments(id)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS homestead (
id INTEGER PRIMARY KEY AUTOINCREMENT,
group_id INTEGER,
title TEXT,
number TEXT,
points TEXT DEFAULT '[]',
point_icons TEXT DEFAULT '[]',
geo TEXT DEFAULT '[]',
osm_id TEXT DEFAULT '[]',
settlement TEXT,
description TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP,
FOREIGN KEY (group_id) REFERENCES groups(group_number)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS homestead_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
homestead_id INTEGER,
name TEXT,
date_start TIMESTAMP,
date_end TIMESTAMP,
group_id INTEGER,
sheep_id TEXT,
working INTEGER DEFAULT 0,
FOREIGN KEY (homestead_id) REFERENCES homestead(id)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS meetings_schedule (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TIMESTAMP,
type INTEGER,
name TEXT,
sheep_id TEXT,
title TEXT,
number TEXT,
FOREIGN KEY (sheep_id) REFERENCES sheeps(id)
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS stand_list (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
hour_start INTEGER DEFAULT 10,
hour_end INTEGER DEFAULT 16,
quantity_sheep INTEGER DEFAULT 2,
week_days TEXT DEFAULT '[0, 1, 2, 3, 4, 5, 6]'
)
`);
db.run(`
CREATE TABLE IF NOT EXISTS stand_schedule (
id INTEGER PRIMARY KEY AUTOINCREMENT,
stand INTEGER,
date TIMESTAMP,
hour INTEGER,
sheep_id TEXT,
number_sheep TEXT,
updated_at TIMESTAMP,
FOREIGN KEY (stand) REFERENCES stand_list(id),
FOREIGN KEY (sheep_id) REFERENCES sheeps(id)
)
`);
});
module.exports = db;