mirror of
https://github.com/catdevnull/preciazo.git
synced 2024-11-26 03:26:19 +00:00
importar banderas
This commit is contained in:
parent
a368f2e625
commit
b43c2aae6e
5 changed files with 606 additions and 6 deletions
|
@ -149,6 +149,18 @@ export const sucursales = pgTable(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export const banderas = pgTable("banderas", {
|
||||||
|
id_dataset: integer("id_dataset").references(() => datasets.id),
|
||||||
|
id_comercio: integer("id_comercio").notNull(),
|
||||||
|
id_bandera: integer("id_bandera").notNull(),
|
||||||
|
comercio_cuit: text("comercio_cuit").notNull(),
|
||||||
|
comercio_razon_social: text("comercio_razon_social"),
|
||||||
|
comercio_bandera_nombre: text("comercio_bandera_nombre"),
|
||||||
|
comercio_bandera_url: text("comercio_bandera_url"),
|
||||||
|
comercio_ultima_actualizacion: date("comercio_ultima_actualizacion"),
|
||||||
|
comercio_version_sepa: text("comercio_version_sepa"),
|
||||||
|
});
|
||||||
|
|
||||||
export const preciosRelations = relations(precios, ({ one }) => ({
|
export const preciosRelations = relations(precios, ({ one }) => ({
|
||||||
dataset: one(datasets, {
|
dataset: one(datasets, {
|
||||||
fields: [precios.id_dataset],
|
fields: [precios.id_dataset],
|
||||||
|
|
17
sepa/drizzle/0005_loud_warbound.sql
Normal file
17
sepa/drizzle/0005_loud_warbound.sql
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS "banderas" (
|
||||||
|
"id_dataset" integer,
|
||||||
|
"id_comercio" integer NOT NULL,
|
||||||
|
"id_bandera" integer NOT NULL,
|
||||||
|
"comercio_cuit" text NOT NULL,
|
||||||
|
"comercio_razon_social" text,
|
||||||
|
"comercio_bandera_nombre" text,
|
||||||
|
"comercio_bandera_url" text,
|
||||||
|
"comercio_ultima_actualizacion" date,
|
||||||
|
"comercio_version_sepa" text
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
DO $$ BEGIN
|
||||||
|
ALTER TABLE "banderas" ADD CONSTRAINT "banderas_id_dataset_datasets_id_fk" FOREIGN KEY ("id_dataset") REFERENCES "public"."datasets"("id") ON DELETE no action ON UPDATE no action;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN duplicate_object THEN null;
|
||||||
|
END $$;
|
524
sepa/drizzle/meta/0005_snapshot.json
Normal file
524
sepa/drizzle/meta/0005_snapshot.json
Normal file
|
@ -0,0 +1,524 @@
|
||||||
|
{
|
||||||
|
"id": "ddbdcb95-e97b-4983-b9bc-bce70d6b813a",
|
||||||
|
"prevId": "36a04e5e-b070-4b89-96ce-e9431c2f199b",
|
||||||
|
"version": "7",
|
||||||
|
"dialect": "postgresql",
|
||||||
|
"tables": {
|
||||||
|
"public.banderas": {
|
||||||
|
"name": "banderas",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"id_dataset": {
|
||||||
|
"name": "id_dataset",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_comercio": {
|
||||||
|
"name": "id_comercio",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"id_bandera": {
|
||||||
|
"name": "id_bandera",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"comercio_cuit": {
|
||||||
|
"name": "comercio_cuit",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"comercio_razon_social": {
|
||||||
|
"name": "comercio_razon_social",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"comercio_bandera_nombre": {
|
||||||
|
"name": "comercio_bandera_nombre",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"comercio_bandera_url": {
|
||||||
|
"name": "comercio_bandera_url",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"comercio_ultima_actualizacion": {
|
||||||
|
"name": "comercio_ultima_actualizacion",
|
||||||
|
"type": "date",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"comercio_version_sepa": {
|
||||||
|
"name": "comercio_version_sepa",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {},
|
||||||
|
"foreignKeys": {
|
||||||
|
"banderas_id_dataset_datasets_id_fk": {
|
||||||
|
"name": "banderas_id_dataset_datasets_id_fk",
|
||||||
|
"tableFrom": "banderas",
|
||||||
|
"tableTo": "datasets",
|
||||||
|
"columnsFrom": [
|
||||||
|
"id_dataset"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "no action",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {}
|
||||||
|
},
|
||||||
|
"public.datasets": {
|
||||||
|
"name": "datasets",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"id": {
|
||||||
|
"name": "id",
|
||||||
|
"type": "serial",
|
||||||
|
"primaryKey": true,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"name": "name",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"date": {
|
||||||
|
"name": "date",
|
||||||
|
"type": "date",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_comercio": {
|
||||||
|
"name": "id_comercio",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {},
|
||||||
|
"foreignKeys": {},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {
|
||||||
|
"datasets_name_key": {
|
||||||
|
"name": "datasets_name_key",
|
||||||
|
"nullsNotDistinct": false,
|
||||||
|
"columns": [
|
||||||
|
"name"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"public.precios": {
|
||||||
|
"name": "precios",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"id_dataset": {
|
||||||
|
"name": "id_dataset",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_comercio": {
|
||||||
|
"name": "id_comercio",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_bandera": {
|
||||||
|
"name": "id_bandera",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_sucursal": {
|
||||||
|
"name": "id_sucursal",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_producto": {
|
||||||
|
"name": "id_producto",
|
||||||
|
"type": "bigint",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_ean": {
|
||||||
|
"name": "productos_ean",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_descripcion": {
|
||||||
|
"name": "productos_descripcion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_cantidad_presentacion": {
|
||||||
|
"name": "productos_cantidad_presentacion",
|
||||||
|
"type": "numeric(10, 2)",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_unidad_medida_presentacion": {
|
||||||
|
"name": "productos_unidad_medida_presentacion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_marca": {
|
||||||
|
"name": "productos_marca",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_precio_lista": {
|
||||||
|
"name": "productos_precio_lista",
|
||||||
|
"type": "numeric(10, 2)",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_precio_referencia": {
|
||||||
|
"name": "productos_precio_referencia",
|
||||||
|
"type": "numeric(10, 2)",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_cantidad_referencia": {
|
||||||
|
"name": "productos_cantidad_referencia",
|
||||||
|
"type": "numeric(10, 2)",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_unidad_medida_referencia": {
|
||||||
|
"name": "productos_unidad_medida_referencia",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_precio_unitario_promo1": {
|
||||||
|
"name": "productos_precio_unitario_promo1",
|
||||||
|
"type": "numeric(10, 2)",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_leyenda_promo1": {
|
||||||
|
"name": "productos_leyenda_promo1",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_precio_unitario_promo2": {
|
||||||
|
"name": "productos_precio_unitario_promo2",
|
||||||
|
"type": "numeric(10, 2)",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_leyenda_promo2": {
|
||||||
|
"name": "productos_leyenda_promo2",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {
|
||||||
|
"idx_precios_id_producto": {
|
||||||
|
"name": "idx_precios_id_producto",
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"expression": "id_producto",
|
||||||
|
"isExpression": false,
|
||||||
|
"asc": true,
|
||||||
|
"nulls": "last"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": false,
|
||||||
|
"concurrently": false,
|
||||||
|
"method": "btree",
|
||||||
|
"with": {}
|
||||||
|
},
|
||||||
|
"idx_precios_id_producto_id_dataset": {
|
||||||
|
"name": "idx_precios_id_producto_id_dataset",
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"expression": "id_producto",
|
||||||
|
"isExpression": false,
|
||||||
|
"asc": true,
|
||||||
|
"nulls": "last"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"expression": "id_dataset",
|
||||||
|
"isExpression": false,
|
||||||
|
"asc": true,
|
||||||
|
"nulls": "last"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": false,
|
||||||
|
"concurrently": false,
|
||||||
|
"method": "btree",
|
||||||
|
"with": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"foreignKeys": {
|
||||||
|
"precios_id_dataset_datasets_id_fk": {
|
||||||
|
"name": "precios_id_dataset_datasets_id_fk",
|
||||||
|
"tableFrom": "precios",
|
||||||
|
"tableTo": "datasets",
|
||||||
|
"columnsFrom": [
|
||||||
|
"id_dataset"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "no action",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {}
|
||||||
|
},
|
||||||
|
"public.productos_descripcion_index": {
|
||||||
|
"name": "productos_descripcion_index",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"id_producto": {
|
||||||
|
"name": "id_producto",
|
||||||
|
"type": "bigint",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_descripcion": {
|
||||||
|
"name": "productos_descripcion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"productos_marca": {
|
||||||
|
"name": "productos_marca",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {
|
||||||
|
"productos_descripcion_index_search_descripcion": {
|
||||||
|
"name": "productos_descripcion_index_search_descripcion",
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"expression": "to_tsvector('spanish', \"productos_descripcion\")",
|
||||||
|
"asc": true,
|
||||||
|
"isExpression": true,
|
||||||
|
"nulls": "last"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": false,
|
||||||
|
"concurrently": false,
|
||||||
|
"method": "gin",
|
||||||
|
"with": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"foreignKeys": {},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {
|
||||||
|
"productos_descripcion_index_productos_descripcion_unique": {
|
||||||
|
"name": "productos_descripcion_index_productos_descripcion_unique",
|
||||||
|
"nullsNotDistinct": false,
|
||||||
|
"columns": [
|
||||||
|
"productos_descripcion"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"public.sucursales": {
|
||||||
|
"name": "sucursales",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"id_dataset": {
|
||||||
|
"name": "id_dataset",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_comercio": {
|
||||||
|
"name": "id_comercio",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_bandera": {
|
||||||
|
"name": "id_bandera",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"id_sucursal": {
|
||||||
|
"name": "id_sucursal",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_nombre": {
|
||||||
|
"name": "sucursales_nombre",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_tipo": {
|
||||||
|
"name": "sucursales_tipo",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_calle": {
|
||||||
|
"name": "sucursales_calle",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_numero": {
|
||||||
|
"name": "sucursales_numero",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_latitud": {
|
||||||
|
"name": "sucursales_latitud",
|
||||||
|
"type": "numeric",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_longitud": {
|
||||||
|
"name": "sucursales_longitud",
|
||||||
|
"type": "numeric",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_observaciones": {
|
||||||
|
"name": "sucursales_observaciones",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_barrio": {
|
||||||
|
"name": "sucursales_barrio",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_codigo_postal": {
|
||||||
|
"name": "sucursales_codigo_postal",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_localidad": {
|
||||||
|
"name": "sucursales_localidad",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_provincia": {
|
||||||
|
"name": "sucursales_provincia",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_lunes_horario_atencion": {
|
||||||
|
"name": "sucursales_lunes_horario_atencion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_martes_horario_atencion": {
|
||||||
|
"name": "sucursales_martes_horario_atencion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_miercoles_horario_atencion": {
|
||||||
|
"name": "sucursales_miercoles_horario_atencion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_jueves_horario_atencion": {
|
||||||
|
"name": "sucursales_jueves_horario_atencion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_viernes_horario_atencion": {
|
||||||
|
"name": "sucursales_viernes_horario_atencion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_sabado_horario_atencion": {
|
||||||
|
"name": "sucursales_sabado_horario_atencion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
},
|
||||||
|
"sucursales_domingo_horario_atencion": {
|
||||||
|
"name": "sucursales_domingo_horario_atencion",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {},
|
||||||
|
"foreignKeys": {
|
||||||
|
"sucursales_id_dataset_datasets_id_fk": {
|
||||||
|
"name": "sucursales_id_dataset_datasets_id_fk",
|
||||||
|
"tableFrom": "sucursales",
|
||||||
|
"tableTo": "datasets",
|
||||||
|
"columnsFrom": [
|
||||||
|
"id_dataset"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "no action",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {
|
||||||
|
"sucursales_id_dataset_id_comercio_id_bandera_id_sucursal_key": {
|
||||||
|
"name": "sucursales_id_dataset_id_comercio_id_bandera_id_sucursal_key",
|
||||||
|
"nullsNotDistinct": false,
|
||||||
|
"columns": [
|
||||||
|
"id_dataset",
|
||||||
|
"id_comercio",
|
||||||
|
"id_bandera",
|
||||||
|
"id_sucursal"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"enums": {},
|
||||||
|
"schemas": {},
|
||||||
|
"sequences": {},
|
||||||
|
"_meta": {
|
||||||
|
"columns": {},
|
||||||
|
"schemas": {},
|
||||||
|
"tables": {}
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,6 +36,13 @@
|
||||||
"when": 1726534597731,
|
"when": 1726534597731,
|
||||||
"tag": "0004_mushy_ultragirl",
|
"tag": "0004_mushy_ultragirl",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 5,
|
||||||
|
"version": "7",
|
||||||
|
"when": 1727015727177,
|
||||||
|
"tag": "0005_loud_warbound",
|
||||||
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -58,18 +58,57 @@ async function importSucursales(
|
||||||
await pipeline(lines, writable);
|
await pipeline(lines, writable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function importBanderas(
|
||||||
|
sql: postgres.Sql,
|
||||||
|
datasetId: number,
|
||||||
|
dir: string
|
||||||
|
) {
|
||||||
|
const banderas: Papa.ParseResult<any> = Papa.parse(
|
||||||
|
await readFile(join(dir, "comercio.csv")),
|
||||||
|
{ header: true }
|
||||||
|
);
|
||||||
|
const objs = banderas.data.map((data) => ({
|
||||||
|
id_dataset: datasetId,
|
||||||
|
...data,
|
||||||
|
}));
|
||||||
|
const keys = [
|
||||||
|
"id_dataset",
|
||||||
|
"id_comercio",
|
||||||
|
"id_bandera",
|
||||||
|
"comercio_cuit",
|
||||||
|
"comercio_razon_social",
|
||||||
|
"comercio_bandera_nombre",
|
||||||
|
"comercio_bandera_url",
|
||||||
|
"comercio_ultima_actualizacion",
|
||||||
|
"comercio_version_sepa",
|
||||||
|
];
|
||||||
|
const lines = Readable.from(
|
||||||
|
objs
|
||||||
|
.filter((data) => data.id_comercio && data.id_bandera)
|
||||||
|
.map(
|
||||||
|
(data) =>
|
||||||
|
keys
|
||||||
|
.map((key) => {
|
||||||
|
const value = (data as any)[key];
|
||||||
|
if (typeof value !== "string") {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
return value.replaceAll("\t", " ").trim();
|
||||||
|
})
|
||||||
|
.join("\t") + "\n"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
const writable =
|
||||||
|
await sql`copy banderas (${sql.unsafe(keys.join(", "))}) from stdin with CSV DELIMITER E'\t' QUOTE E'\b'`.writable();
|
||||||
|
await pipeline(lines, writable);
|
||||||
|
}
|
||||||
|
|
||||||
async function importDataset(dir: string) {
|
async function importDataset(dir: string) {
|
||||||
console.log(dir);
|
console.log(dir);
|
||||||
const date = basename(dir).match(/(\d{4}-\d{2}-\d{2})/)![1];
|
const date = basename(dir).match(/(\d{4}-\d{2}-\d{2})/)![1];
|
||||||
const id_comercio = basename(dir).match(/comercio-sepa-(\d+)/)![1];
|
const id_comercio = basename(dir).match(/comercio-sepa-(\d+)/)![1];
|
||||||
// TODO: parsear "Ultima actualizacion" al final del CSV y insertarlo en la tabla datasets
|
// TODO: parsear "Ultima actualizacion" al final del CSV y insertarlo en la tabla datasets
|
||||||
|
|
||||||
// {
|
|
||||||
// const res =
|
|
||||||
// await sql`select id from datasets where name = ${basename(dir)}`;
|
|
||||||
// await importSucursales(sql, res[0].id, dir);
|
|
||||||
// }
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await sql.begin(async (sql) => {
|
await sql.begin(async (sql) => {
|
||||||
let datasetId: number;
|
let datasetId: number;
|
||||||
|
@ -84,6 +123,7 @@ async function importDataset(dir: string) {
|
||||||
const comercioCuit = comercios.data[0].comercio_cuit;
|
const comercioCuit = comercios.data[0].comercio_cuit;
|
||||||
console.log(`dataset ${datasetId}, comercio ${comercioCuit}`);
|
console.log(`dataset ${datasetId}, comercio ${comercioCuit}`);
|
||||||
|
|
||||||
|
await importBanderas(sql, datasetId, dir);
|
||||||
await importSucursales(sql, datasetId, dir);
|
await importSucursales(sql, datasetId, dir);
|
||||||
|
|
||||||
let file = await readFile(join(dir, "productos.csv"));
|
let file = await readFile(join(dir, "productos.csv"));
|
||||||
|
|
Loading…
Reference in a new issue