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, lotIdOrLotName) {
    const database = sqlite(databasePath, {
        readonly: true
    });
    const lot = database.prepare(sql).get(lotIdOrLotName);
    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;
