Skip to content

feat(setup): scheduling base on local installs and a clear upload error without Cloudinary - #4

Merged
bpstack merged 3 commits into
mainfrom
claude/compassionate-planck-gh6aof
Oct 5, 2026
Merged

bpstack merged 3 commits into
mainfrom
claude/compassionate-planck-gh6aof

Conversation

@bpstack

@bpstack bpstack commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Cambios

  • Subidas sin Cloudinary: 503 STORAGE_NOT_CONFIGURED antes de las 6 rutas que suben a Cloudinary, con mensaje traducido en es/en.
  • pnpm setup:local carga la base de horarios ficticia de la demo (scheduling-seed.sql); pnpm seed:scheduling:export la regenera.
  • README: pasos de instalación local aclarados.

Por qué

Una instalación local no tenía empleados para probar horarios y una subida sin Cloudinary fallaba con un 500 técnico.

Probado en preview: demo, bloqueos de subida de la demo, subida como admin y reinicio de la demo.

- requireStorage answers 503 STORAGE_NOT_CONFIGURED before the six upload
  routes that store on Cloudinary (avatar, maintenance, checklist,
  blacklist, backoffice invoice PDF and assets); F&B is left out, it only
  reads its PDF.
- errorCodeMessage picks the text from messages/{es,en}/errors.json by the
  page language; apiClient uses it.
- Tests with a real Express server and multipart upload, and for both
  languages.
- TODO: the rest of the error codes are translated but unused.

Why: on a local install without Cloudinary an upload failed with a 500 and
a technical English message; the user now gets a clear one in es or en.
- db-mysql/scheduling-seed.sql: the demo's fictitious scheduling base
  (10 employees as users with an unknown random password, contracts,
  rules, shifts, configuration and Oct-Dec 2026 solved). References to
  other users point to the local admin; rows of people no longer in the
  grid are left out.
- setup:local loads it as step 4/5, before mock-data.sql.
- pnpm seed:scheduling:export rebuilds the file from the saved demo base
  (read-only SELECTs).
- SNAPSHOT_TABLES moves to services/demo/snapshot-tables.ts so scripts can
  import it without opening the app's pool.
- Test: the seed only carries example.com users and every grid row and
  assignment belongs to an employee it creates.

Why: a local install had no employees, so scheduling could not be tried;
now it starts from the same base as the public demo.
- Step 3 says what setup:local loads in fewer words.
- Step 5 runs in two terminals: dev:local keeps the first one busy.
- Without Cloudinary an upload now explains itself instead of failing.

Why: the steps read as one terminal, and the Cloudinary note predated the
new message.
@vercel

vercel Bot commented Oct 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
four-points Ready Ready Preview Oct 5, 2026 5:35pm UTC

@bpstack
bpstack merged commit 15a8531 into main Oct 5, 2026
6 checks passed
bpstack added a commit that referenced this pull request Oct 14, 2026
- SESSION: main now matches the branch (PR #29, merge 47f77b9), the
  OpenCode review is in main since PR #28, and the next steps start at
  the post-publication TODO list
- TODO: update the last merge into main, which still said PR #4

This branch was successfully deployed

1 active deployment
Preview — da7c6439 Deployed Oct 5, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant