feat: split research workflows and results into dedicated workspaces
This commit is contained in:
@@ -66,7 +66,19 @@ async function executeSearchJobAtCoordinates(
|
||||
}
|
||||
|
||||
export async function runSearchForUser(db: Pool, userId: string, payload: RunSearchInput): Promise<RunSearchResult> {
|
||||
const job = await createSearchJob(db, userId, payload);
|
||||
const hasProvidedCoordinates = typeof payload.lat === 'number' && typeof payload.lng === 'number';
|
||||
const job = hasProvidedCoordinates
|
||||
? await createSearchJobForCoordinates(db, userId, {
|
||||
name: payload.name || `${payload.businessType} in ${payload.location}`,
|
||||
city: payload.location,
|
||||
address: payload.location,
|
||||
radiusKm: payload.radiusKm,
|
||||
businessType: payload.businessType,
|
||||
keywords: payload.keywords,
|
||||
lat: payload.lat!,
|
||||
lng: payload.lng!,
|
||||
})
|
||||
: await createSearchJob(db, userId, payload);
|
||||
const jobId = job.id;
|
||||
|
||||
try {
|
||||
@@ -75,14 +87,19 @@ export async function runSearchForUser(db: Pool, userId: string, payload: RunSea
|
||||
throw new Error('GOOGLE_MAPS_SERVER_KEY is required for running research.');
|
||||
}
|
||||
|
||||
const geocoded = await geocodeLocation(payload.location, env.GOOGLE_MAPS_SERVER_KEY);
|
||||
await updateSearchJobCenter(db, jobId, geocoded.lat, geocoded.lng);
|
||||
const resolvedCenter = hasProvidedCoordinates
|
||||
? { lat: payload.lat!, lng: payload.lng! }
|
||||
: await geocodeLocation(payload.location, env.GOOGLE_MAPS_SERVER_KEY);
|
||||
|
||||
if (!hasProvidedCoordinates) {
|
||||
await updateSearchJobCenter(db, jobId, resolvedCenter.lat, resolvedCenter.lng);
|
||||
}
|
||||
|
||||
const completedJob = await executeSearchJobAtCoordinates(db, {
|
||||
jobId,
|
||||
userId,
|
||||
lat: geocoded.lat,
|
||||
lng: geocoded.lng,
|
||||
lat: resolvedCenter.lat,
|
||||
lng: resolvedCenter.lng,
|
||||
radiusKm: payload.radiusKm,
|
||||
businessType: payload.businessType,
|
||||
keywords: payload.keywords,
|
||||
|
||||
Reference in New Issue
Block a user