40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
import sqlite from "better-sqlite3";
|
|
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
|
import { getLotFields } from "./getLotFields.js";
|
|
import { getLotComments } from "./getLotComments.js";
|
|
import { getLotOccupancies } from "./getLotOccupancies.js";
|
|
const baseSQL = `select l.lotId, l.lotTypeId, t.lotType, l.lotName, l.lotStatusId, s.lotStatus,
|
|
l.mapId, m.mapName, m.mapSVG, l.mapKey,
|
|
l.lotLatitude, l.lotLongitude
|
|
from Lots l
|
|
left join LotTypes t on l.lotTypeId = t.lotTypeId
|
|
left join LotStatuses s on l.lotStatusId = s.lotStatusId
|
|
left join Maps m on l.mapId = m.mapId
|
|
where l.recordDelete_timeMillis is null`;
|
|
function _getLot(sql, lotId_or_lotName) {
|
|
const database = sqlite(databasePath, {
|
|
readonly: true
|
|
});
|
|
const lot = database.prepare(sql).get(lotId_or_lotName);
|
|
if (lot) {
|
|
lot.lotOccupancies = getLotOccupancies({
|
|
lotId: lot.lotId
|
|
}, {
|
|
includeOccupants: true,
|
|
limit: -1,
|
|
offset: 0
|
|
}, database).lotOccupancies;
|
|
lot.lotFields = getLotFields(lot.lotId, database);
|
|
lot.lotComments = getLotComments(lot.lotId, database);
|
|
}
|
|
database.close();
|
|
return lot;
|
|
}
|
|
export function getLotByLotName(lotName) {
|
|
return _getLot(baseSQL + " and l.lotName = ?", lotName);
|
|
}
|
|
export function getLot(lotId) {
|
|
return _getLot(baseSQL + " and l.lotId = ?", lotId);
|
|
}
|
|
export default getLot;
|