actualizando bd
This commit is contained in:
3
Makefile
3
Makefile
@@ -1,6 +1,9 @@
|
|||||||
estructura:
|
estructura:
|
||||||
powershell -ExecutionPolicy Bypass -File ./dev/scripts/estructura.ps1
|
powershell -ExecutionPolicy Bypass -File ./dev/scripts/estructura.ps1
|
||||||
|
|
||||||
|
testdb:
|
||||||
|
docker compose -f api/dev/docker-compose.yml up -d
|
||||||
|
|
||||||
build:
|
build:
|
||||||
docker compose build
|
docker compose build
|
||||||
|
|
||||||
|
|||||||
8
api/.env.example
Normal file
8
api/.env.example
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Environment variables declared in this file are automatically made available to Prisma.
|
||||||
|
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
|
||||||
|
|
||||||
|
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQLite, SQL Server, MongoDB and CockroachDB.
|
||||||
|
# See the documentation for all the connection string options: https://pris.ly/d/connection-strings
|
||||||
|
|
||||||
|
DATABASE_URL=postgresql://planilla:planilla@localhost:5434/planilla_db?schema=public
|
||||||
|
|
||||||
1
api/.gitignore
vendored
1
api/.gitignore
vendored
@@ -1,4 +1,5 @@
|
|||||||
node_modules
|
node_modules
|
||||||
|
dev
|
||||||
# Keep environment variables out of version control
|
# Keep environment variables out of version control
|
||||||
.env
|
.env
|
||||||
prisma/generated
|
prisma/generated
|
||||||
84
api/prisma/migrations/20250515020056_init/migration.sql
Normal file
84
api/prisma/migrations/20250515020056_init/migration.sql
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Cliente" (
|
||||||
|
"id" BIGSERIAL NOT NULL,
|
||||||
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT (now() AT TIME ZONE 'utc'),
|
||||||
|
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT (now() AT TIME ZONE 'utc'),
|
||||||
|
"name" TEXT NOT NULL,
|
||||||
|
"cedula" BIGINT NOT NULL,
|
||||||
|
"ubicacion" TEXT NOT NULL DEFAULT '.',
|
||||||
|
"grupo_estudio" TEXT,
|
||||||
|
"empleado" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"avatar_url" TEXT,
|
||||||
|
"telefono" TEXT,
|
||||||
|
"idciat" TEXT,
|
||||||
|
|
||||||
|
CONSTRAINT "Cliente_pkey" PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Planilla" (
|
||||||
|
"id" BIGSERIAL NOT NULL,
|
||||||
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT (now() AT TIME ZONE 'utc'),
|
||||||
|
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT (now() AT TIME ZONE 'utc'),
|
||||||
|
"fecha_desde" TIMESTAMP(3) NOT NULL,
|
||||||
|
"fecha_hasta" TIMESTAMP(3) NOT NULL,
|
||||||
|
"titulo" TEXT NOT NULL,
|
||||||
|
"total" DECIMAL(65,30),
|
||||||
|
"estado" TEXT NOT NULL DEFAULT 'pagado',
|
||||||
|
"fecha_anulado" TIMESTAMP(3),
|
||||||
|
"empleado_id" BIGINT NOT NULL,
|
||||||
|
"creador_id" UUID,
|
||||||
|
"anulador_id" UUID,
|
||||||
|
|
||||||
|
CONSTRAINT "Planilla_pkey" PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "TareaRealizada" (
|
||||||
|
"id" BIGSERIAL NOT NULL,
|
||||||
|
"empleado_id" BIGINT NOT NULL,
|
||||||
|
"planilla_id" BIGINT,
|
||||||
|
"titulo" TEXT NOT NULL,
|
||||||
|
"precio" DOUBLE PRECISION,
|
||||||
|
"estado" TEXT NOT NULL DEFAULT 'pendiente',
|
||||||
|
"observacion" TEXT,
|
||||||
|
"fecha" TIMESTAMP(3) NOT NULL,
|
||||||
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT (now() AT TIME ZONE 'utc'),
|
||||||
|
"tipo" TEXT NOT NULL DEFAULT '',
|
||||||
|
"fecha_anulado" TIMESTAMP(3),
|
||||||
|
"creador_id" UUID NOT NULL,
|
||||||
|
"anulador_id" UUID,
|
||||||
|
|
||||||
|
CONSTRAINT "TareaRealizada_pkey" PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "Asistencia" (
|
||||||
|
"id" BIGSERIAL NOT NULL,
|
||||||
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT (now() AT TIME ZONE 'utc'),
|
||||||
|
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT (now() AT TIME ZONE 'utc'),
|
||||||
|
"entrada" TIMESTAMP(3) DEFAULT (now() AT TIME ZONE 'utc'),
|
||||||
|
"salida" TIMESTAMP(3),
|
||||||
|
"historial" JSONB,
|
||||||
|
"observacion" TEXT,
|
||||||
|
"estado" TEXT DEFAULT 'pendiente',
|
||||||
|
"fecha_anulado" TIMESTAMP(3),
|
||||||
|
"empleado_id" BIGINT NOT NULL,
|
||||||
|
"creador_id" UUID NOT NULL,
|
||||||
|
"modificado_id" UUID,
|
||||||
|
"anulador_id" UUID,
|
||||||
|
|
||||||
|
CONSTRAINT "Asistencia_pkey" PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "Cliente_cedula_key" ON "Cliente"("cedula");
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "Planilla" ADD CONSTRAINT "Planilla_empleado_id_fkey" FOREIGN KEY ("empleado_id") REFERENCES "Cliente"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "TareaRealizada" ADD CONSTRAINT "TareaRealizada_empleado_id_fkey" FOREIGN KEY ("empleado_id") REFERENCES "Cliente"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "Asistencia" ADD CONSTRAINT "Asistencia_empleado_id_fkey" FOREIGN KEY ("empleado_id") REFERENCES "Cliente"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
3
api/prisma/migrations/migration_lock.toml
Normal file
3
api/prisma/migrations/migration_lock.toml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Please do not edit this file manually
|
||||||
|
# It should be added in your version-control system (e.g., Git)
|
||||||
|
provider = "postgresql"
|
||||||
@@ -6,13 +6,12 @@ generator client {
|
|||||||
datasource db {
|
datasource db {
|
||||||
provider = "postgresql"
|
provider = "postgresql"
|
||||||
url = env("DATABASE_URL")
|
url = env("DATABASE_URL")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
model Cliente {
|
model Cliente {
|
||||||
id BigInt @id @default(autoincrement())
|
id BigInt @id @default(autoincrement())
|
||||||
created_at DateTime @default(dbgenerated("now() AT TIME ZONE 'utc'::text"))
|
created_at DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc')"))
|
||||||
updated_at DateTime @default(dbgenerated("now() AT TIME ZONE 'utc'::text"))
|
updated_at DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc')")) @updatedAt
|
||||||
name String
|
name String
|
||||||
cedula BigInt @unique
|
cedula BigInt @unique
|
||||||
ubicacion String @default(".")
|
ubicacion String @default(".")
|
||||||
@@ -28,15 +27,15 @@ model Cliente {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model Planilla {
|
model Planilla {
|
||||||
id BigInt @id @default(autoincrement())
|
id BigInt @id @default(autoincrement())
|
||||||
created_at DateTime @default(dbgenerated("now() AT TIME ZONE 'utc'::text"))
|
created_at DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc')"))
|
||||||
updated_at DateTime @default(dbgenerated("now() AT TIME ZONE 'utc'::text"))
|
updated_at DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc')")) @updatedAt
|
||||||
fecha_desde DateTime
|
fecha_desde DateTime
|
||||||
fecha_hasta DateTime
|
fecha_hasta DateTime
|
||||||
titulo String
|
titulo String
|
||||||
total Decimal?
|
total Decimal?
|
||||||
estado String @default("pagado")
|
estado String @default("pagado")
|
||||||
fecha_anulado DateTime?
|
fecha_anulado DateTime?
|
||||||
|
|
||||||
empleado_id BigInt
|
empleado_id BigInt
|
||||||
empleado Cliente @relation(fields: [empleado_id], references: [id])
|
empleado Cliente @relation(fields: [empleado_id], references: [id])
|
||||||
@@ -54,7 +53,7 @@ model TareaRealizada {
|
|||||||
estado String @default("pendiente")
|
estado String @default("pendiente")
|
||||||
observacion String?
|
observacion String?
|
||||||
fecha DateTime
|
fecha DateTime
|
||||||
created_at DateTime @default(dbgenerated("now() AT TIME ZONE 'utc'::text"))
|
created_at DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc')"))
|
||||||
tipo String @default("")
|
tipo String @default("")
|
||||||
fecha_anulado DateTime?
|
fecha_anulado DateTime?
|
||||||
|
|
||||||
@@ -66,9 +65,9 @@ model TareaRealizada {
|
|||||||
|
|
||||||
model Asistencia {
|
model Asistencia {
|
||||||
id BigInt @id @default(autoincrement())
|
id BigInt @id @default(autoincrement())
|
||||||
created_at DateTime @default(dbgenerated("now() AT TIME ZONE 'utc'::text"))
|
created_at DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc')"))
|
||||||
updated_at DateTime @default(dbgenerated("now() AT TIME ZONE 'utc'::text"))
|
updated_at DateTime @default(dbgenerated("(now() AT TIME ZONE 'utc')")) @updatedAt
|
||||||
entrada DateTime? @default(dbgenerated("now() AT TIME ZONE 'utc'::text"))
|
entrada DateTime? @default(dbgenerated("(now() AT TIME ZONE 'utc')"))
|
||||||
salida DateTime?
|
salida DateTime?
|
||||||
historial Json?
|
historial Json?
|
||||||
observacion String?
|
observacion String?
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
agent:
|
agent:
|
||||||
image: gitea.interno.com/nucleo000/planilla-agent:latest
|
image: gitea.interno.com/nucleo000/planilla-agent:latest
|
||||||
build: ./agent
|
build: ./agent
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
# volumes:
|
|
||||||
# - /srv/planilla/agent:/app
|
|
||||||
networks: [planilla]
|
networks: [planilla]
|
||||||
|
|
||||||
api:
|
api:
|
||||||
@@ -12,37 +12,29 @@ services:
|
|||||||
build: ./api
|
build: ./api
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- DATABASE_URL=postgresql://planilla:secret@db:5432/planilla_db
|
DATABASE_URL: "postgresql://planilla:secret@db:5432/planilla_db?schema=public"
|
||||||
|
depends_on:
|
||||||
depends_on: [db]
|
- db
|
||||||
ports: ["3009:4000"]
|
ports:
|
||||||
# volumes:
|
- "3009:4000"
|
||||||
# - /srv/planilla/api:/app
|
|
||||||
networks: [planilla]
|
networks: [planilla]
|
||||||
|
|
||||||
# mcp (comentado aún, por si lo activás después)
|
|
||||||
# mcp:
|
|
||||||
# image: gitea.interno.com/nucleo000/planilla-mcp:latest
|
|
||||||
# build: ./mcp
|
|
||||||
# volumes:
|
|
||||||
# - /srv/planilla/mcp:/app
|
|
||||||
# networks: [planilla]
|
|
||||||
|
|
||||||
ui:
|
ui:
|
||||||
image: gitea.interno.com/nucleo000/planilla-ui:latest
|
image: gitea.interno.com/nucleo000/planilla-ui:latest
|
||||||
build: ./ui
|
build: ./ui
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports: ["3008:80"]
|
ports:
|
||||||
# volumes:
|
- "3008:80"
|
||||||
# - /srv/planilla/ui:/app
|
|
||||||
networks: [planilla]
|
networks: [planilla]
|
||||||
|
|
||||||
worker:
|
worker:
|
||||||
image: gitea.interno.com/nucleo000/planilla-worker:latest
|
image: gitea.interno.com/nucleo000/planilla-worker:latest
|
||||||
build: ./worker
|
build: ./worker
|
||||||
depends_on: [db]
|
restart: unless-stopped
|
||||||
# volumes:
|
environment:
|
||||||
# - /srv/planilla/worker:/app
|
DATABASE_URL: "postgresql://planilla:secret@db:5432/planilla_db?schema=public"
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
networks: [planilla]
|
networks: [planilla]
|
||||||
|
|
||||||
db:
|
db:
|
||||||
@@ -66,7 +58,7 @@ services:
|
|||||||
- db
|
- db
|
||||||
volumes:
|
volumes:
|
||||||
- /srv/planilla/pgadmin:/var/lib/pgadmin
|
- /srv/planilla/pgadmin:/var/lib/pgadmin
|
||||||
user: "5050:5050" # ✅ necesario para evitar error de permisos
|
user: "5050:5050"
|
||||||
networks: [planilla]
|
networks: [planilla]
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ C:\no guardar\nucleo V3\planilla\agent\utils\decryptMediaContent.js
|
|||||||
C:\no guardar\nucleo V3\planilla\agent\utils\processMessage.js
|
C:\no guardar\nucleo V3\planilla\agent\utils\processMessage.js
|
||||||
C:\no guardar\nucleo V3\planilla\agent\utils\saveMedia.js
|
C:\no guardar\nucleo V3\planilla\agent\utils\saveMedia.js
|
||||||
C:\no guardar\nucleo V3\planilla\api\cron_jobs
|
C:\no guardar\nucleo V3\planilla\api\cron_jobs
|
||||||
|
C:\no guardar\nucleo V3\planilla\api\dev
|
||||||
C:\no guardar\nucleo V3\planilla\api\prisma
|
C:\no guardar\nucleo V3\planilla\api\prisma
|
||||||
C:\no guardar\nucleo V3\planilla\api\.env
|
C:\no guardar\nucleo V3\planilla\api\.env
|
||||||
C:\no guardar\nucleo V3\planilla\api\Dockerfile
|
C:\no guardar\nucleo V3\planilla\api\Dockerfile
|
||||||
@@ -39,6 +40,7 @@ C:\no guardar\nucleo V3\planilla\api\entrypoint.sh
|
|||||||
C:\no guardar\nucleo V3\planilla\api\package-lock.json
|
C:\no guardar\nucleo V3\planilla\api\package-lock.json
|
||||||
C:\no guardar\nucleo V3\planilla\api\package.json
|
C:\no guardar\nucleo V3\planilla\api\package.json
|
||||||
C:\no guardar\nucleo V3\planilla\api\server.js
|
C:\no guardar\nucleo V3\planilla\api\server.js
|
||||||
|
C:\no guardar\nucleo V3\planilla\api\dev\docker-compose.yml
|
||||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated
|
C:\no guardar\nucleo V3\planilla\api\prisma\generated
|
||||||
C:\no guardar\nucleo V3\planilla\api\prisma\schema.prisma
|
C:\no guardar\nucleo V3\planilla\api\prisma\schema.prisma
|
||||||
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client
|
C:\no guardar\nucleo V3\planilla\api\prisma\generated\client
|
||||||
|
|||||||
Reference in New Issue
Block a user