Intiial commit
This commit is contained in:
51
src/lib/db/route.ts
Normal file
51
src/lib/db/route.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import type { Database } from 'bun:sqlite';
|
||||
import { dynamicInsert, dynamicUpdate, remove, select, type QueryOptions } from '@star-kitten/util/sqlite.js';
|
||||
import type { Route } from './types/routes';
|
||||
|
||||
const TABLE_NAME = 'routes';
|
||||
|
||||
export default {
|
||||
createTable: (db: Database) => {
|
||||
db.run(
|
||||
`CREATE TABLE IF NOT EXISTS ${TABLE_NAME} (
|
||||
route_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
start_location_id INTEGER NOT NULL,
|
||||
end_location_id INTEGER NOT NULL,
|
||||
isk_per_m3 INTEGER NOT NULL,
|
||||
collat_pct REAL NOT NULL,
|
||||
max_volume INTEGER NOT NULL,
|
||||
min_reward INTEGER NOT NULL,
|
||||
expiration INTEGER NOT NULL,
|
||||
completion INTEGER NOT NULL,
|
||||
max_collateral INTEGER
|
||||
)
|
||||
`,
|
||||
);
|
||||
},
|
||||
|
||||
dropTable: (db: Database) => {
|
||||
db.run(`DROP TABLE IF EXISTS ${TABLE_NAME}`);
|
||||
},
|
||||
};
|
||||
|
||||
export function addRoute(db: Database, route: Omit<Route, 'route_id'>) {
|
||||
return dynamicInsert(db, TABLE_NAME, route);
|
||||
}
|
||||
|
||||
export function updateLocation(db: Database, location: Route) {
|
||||
const id = location.route_id;
|
||||
delete location.route_id;
|
||||
return dynamicUpdate(db, TABLE_NAME, location, 'route_id', id);
|
||||
}
|
||||
|
||||
export function getRoutes(db: Database, options?: QueryOptions<Route>) {
|
||||
return select<Route>(db, TABLE_NAME, options);
|
||||
}
|
||||
|
||||
export function getRoute(db: Database, route_id: number) {
|
||||
return select<Route>(db, TABLE_NAME, {}, '*', { route_id })?.[0];
|
||||
}
|
||||
|
||||
export function removeRoute(db: Database, route_id: number) {
|
||||
return remove<Route>(db, TABLE_NAME, { route_id });
|
||||
}
|
||||
Reference in New Issue
Block a user