export function createBaseQuery<TSelection extends SelectedFields>(
selectedFields: TSelection,
filters: SQL[],
globalFilter: string,
) {
const baseQuery = db
.select(selectedFields)
.from(assetTable)
.innerJoin(locationTable, eq(assetTable.locationId, locationTable.id))
.innerJoin(assetStatusTable, eq(assetTable.statusId, assetStatusTable.id))
.innerJoin(modelTable, eq(assetTable.modelId, modelTable.id))
.innerJoin(clientTable, eq(assetTable.clientId, clientTable.id))
.innerJoin(
manufacturerTable,
eq(modelTable.manufacturerId, manufacturerTable.id),
)
.leftJoin(
modelImageTable,
eq(modelTable.defaultImageId, modelImageTable.id),
)
.where(
and(
...filters,
getGlobalFilters(globalFilter),
),
)
.$dynamic();
return baseQuery;
}
export function createBaseQuery<TSelection extends SelectedFields>(
selectedFields: TSelection,
filters: SQL[],
globalFilter: string,
) {
const baseQuery = db
.select(selectedFields)
.from(assetTable)
.innerJoin(locationTable, eq(assetTable.locationId, locationTable.id))
.innerJoin(assetStatusTable, eq(assetTable.statusId, assetStatusTable.id))
.innerJoin(modelTable, eq(assetTable.modelId, modelTable.id))
.innerJoin(clientTable, eq(assetTable.clientId, clientTable.id))
.innerJoin(
manufacturerTable,
eq(modelTable.manufacturerId, manufacturerTable.id),
)
.leftJoin(
modelImageTable,
eq(modelTable.defaultImageId, modelImageTable.id),
)
.where(
and(
...filters,
getGlobalFilters(globalFilter),
),
)
.$dynamic();
return baseQuery;
}