Compare commits

...

4 commits

Author SHA1 Message Date
b46b087bc6 bonk 2024-10-15 09:10:53 -03:00
051b2524ab await 2024-10-15 09:07:47 -03:00
6cfe008b2b script para actualizar index 2024-10-15 09:06:44 -03:00
cdeb3c8d7d sepaaa 2024-10-11 19:02:05 -03:00
4 changed files with 48 additions and 24 deletions

Binary file not shown.

View file

@ -196,10 +196,7 @@ export const sucursalesRelations = relations(sucursales, ({ one }) => ({
}));
// para actualizar la tabla:
// insert into productos_descripcion_index
// select distinct id_producto, productos_descripcion, productos_marca from precios
// on conflict do nothing;
// probablemente se pueda poner un where en el select para solo seleccionar precios recientes (tipo id_dataset > X)
// bun run scripts/refresh-descripciones-index.ts
export const productos_descripcion_index = pgTable(
"productos_descripcion_index",
{

View file

@ -0,0 +1,27 @@
import { drizzle } from "drizzle-orm/postgres-js";
import postgres from "postgres";
import * as schema from "../db/schema";
import { formatISO, subDays } from "date-fns";
import { sql } from "drizzle-orm";
const db = drizzle(postgres(), {
schema,
logger: true,
});
const aWeekAgo = subDays(new Date(), 5);
await db.execute(sql`
insert into productos_descripcion_index
select distinct id_producto, productos_descripcion, productos_marca from precios
where id_dataset in (
SELECT d1.id FROM datasets d1
JOIN (
SELECT id_comercio, MAX(date) as max_date
FROM datasets
WHERE date > ${formatISO(aWeekAgo, { representation: "date" })}
GROUP BY id_comercio
) d2 ON d1.id_comercio = d2.id_comercio AND d1.date = d2.max_date
ORDER BY d1.id_comercio)
on conflict do nothing;
`);

View file

@ -15,37 +15,37 @@
"db:studio": "drizzle-kit studio"
},
"devDependencies": {
"@sveltejs/adapter-auto": "^3.0.0",
"@sveltejs/kit": "^2.0.0",
"@sveltejs/vite-plugin-svelte": "^4.0.0-next.6",
"@sveltejs/adapter-auto": "^3.2.5",
"@sveltejs/kit": "^2.5.28",
"@sveltejs/vite-plugin-svelte": "^4.0.0-next.7",
"@tailwindcss/typography": "^0.5.15",
"@types/d3-scale": "^4.0.8",
"@types/eslint": "^9.6.0",
"@types/eslint": "^9.6.1",
"@types/leaflet": "^1.9.12",
"@types/leaflet.markercluster": "^1.5.4",
"autoprefixer": "^10.4.20",
"drizzle-kit": "^0.24.2",
"eslint": "^9.0.0",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-svelte": "^2.36.0",
"globals": "^15.0.0",
"prettier": "^3.3.2",
"prettier-plugin-svelte": "^3.2.5",
"prettier-plugin-tailwindcss": "^0.6.5",
"svelte": "^5.0.0-next.1",
"eslint-plugin-svelte": "^2.44.0",
"globals": "^15.9.0",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.6",
"prettier-plugin-tailwindcss": "^0.6.6",
"svelte": "^5.0.0-next.258",
"svelte-adapter-bun": "^0.5.2",
"svelte-check": "^3.6.0",
"tailwindcss": "^3.4.9",
"typescript": "^5.0.0",
"typescript-eslint": "^8.0.0",
"vite": "^5.0.3"
"svelte-check": "^3.8.6",
"tailwindcss": "^3.4.13",
"typescript": "^5.6.2",
"typescript-eslint": "^8.7.0",
"vite": "^5.4.7"
},
"type": "module",
"dependencies": {
"@maplibre/maplibre-gl-leaflet": "^0.0.22",
"@sentry/sveltekit": "^8.30.0",
"@types/node": "^22.5.0",
"bits-ui": "^0.21.13",
"@sentry/sveltekit": "^8.31.0",
"@types/node": "^22.6.1",
"bits-ui": "^0.21.15",
"clsx": "^2.1.1",
"d3-array": "^3.2.4",
"d3-scale": "^4.0.2",
@ -55,7 +55,7 @@
"leaflet": "^1.9.4",
"leaflet.markercluster": "^1.5.3",
"lucide-svelte": "^0.441.0",
"maplibre-gl": "^4.7.0",
"maplibre-gl": "^4.7.1",
"postgres": "^3.4.4",
"tailwind-merge": "^2.5.2",
"tailwind-variants": "^0.2.1"