mirror of
https://github.com/complexcaresolutions/cms.c2sgmbh.git
synced 2026-03-17 20:54:11 +00:00
fix: resolve multiple admin panel bugs
- Update Payload CMS 3.68.4 → 3.69.0 to fix login redirect loop (formatAdminURL no longer generates absolute URLs for currentRoute) - Add explicit access control to Users collection for account updates (multi-tenant plugin was blocking save button) - Add read/update access controls to SEOSettings global (settings group was hidden due to missing permissions) - Regenerate importMap after Payload update - Remove unused files: custom login page, cache-keys, my-route, migrations_backup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
ade2d09748
commit
3e08521426
30 changed files with 180 additions and 68899 deletions
25
package.json
25
package.json
|
|
@ -27,25 +27,24 @@
|
||||||
"prepare": "test -d .git && (ln -sf ../../scripts/detect-secrets.sh .git/hooks/pre-commit 2>/dev/null || true) || true"
|
"prepare": "test -d .git && (ln -sf ../../scripts/detect-secrets.sh .git/hooks/pre-commit 2>/dev/null || true) || true"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@payloadcms/db-postgres": "3.68.4",
|
"@payloadcms/db-postgres": "3.69.0",
|
||||||
"@payloadcms/next": "3.68.4",
|
"@payloadcms/next": "3.69.0",
|
||||||
"@payloadcms/plugin-form-builder": "3.68.4",
|
"@payloadcms/plugin-form-builder": "3.69.0",
|
||||||
"@payloadcms/plugin-multi-tenant": "3.68.4",
|
"@payloadcms/plugin-multi-tenant": "3.69.0",
|
||||||
"@payloadcms/plugin-nested-docs": "3.68.4",
|
"@payloadcms/plugin-nested-docs": "3.69.0",
|
||||||
"@payloadcms/plugin-redirects": "3.68.4",
|
"@payloadcms/plugin-redirects": "3.69.0",
|
||||||
"@payloadcms/plugin-seo": "3.68.4",
|
"@payloadcms/plugin-seo": "3.69.0",
|
||||||
"@payloadcms/richtext-lexical": "3.68.4",
|
"@payloadcms/richtext-lexical": "3.69.0",
|
||||||
"@payloadcms/translations": "3.68.4",
|
"@payloadcms/translations": "3.69.0",
|
||||||
"@payloadcms/ui": "3.68.4",
|
"@payloadcms/ui": "3.69.0",
|
||||||
"bullmq": "^5.65.1",
|
"bullmq": "^5.65.1",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"dotenv": "16.4.7",
|
"dotenv": "16.4.7",
|
||||||
"graphql": "^16.8.1",
|
|
||||||
"ioredis": "^5.8.2",
|
"ioredis": "^5.8.2",
|
||||||
"next": "15.5.9",
|
"next": "15.5.9",
|
||||||
"node-cron": "^4.2.1",
|
"node-cron": "^4.2.1",
|
||||||
"nodemailer": "^7.0.11",
|
"nodemailer": "^7.0.11",
|
||||||
"payload": "3.68.4",
|
"payload": "3.69.0",
|
||||||
"payload-oapi": "^0.2.5",
|
"payload-oapi": "^0.2.5",
|
||||||
"react": "19.2.3",
|
"react": "19.2.3",
|
||||||
"react-dom": "19.2.3",
|
"react-dom": "19.2.3",
|
||||||
|
|
@ -54,7 +53,6 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3.3.3",
|
"@eslint/eslintrc": "^3.3.3",
|
||||||
"@playwright/test": "1.57.0",
|
"@playwright/test": "1.57.0",
|
||||||
"@testing-library/react": "16.3.0",
|
|
||||||
"@types/node": "^22.10.2",
|
"@types/node": "^22.10.2",
|
||||||
"@types/node-cron": "^3.0.11",
|
"@types/node-cron": "^3.0.11",
|
||||||
"@types/nodemailer": "^7.0.4",
|
"@types/nodemailer": "^7.0.4",
|
||||||
|
|
@ -67,7 +65,6 @@
|
||||||
"eslint-config-next": "15.5.9",
|
"eslint-config-next": "15.5.9",
|
||||||
"jsdom": "26.1.0",
|
"jsdom": "26.1.0",
|
||||||
"playwright": "1.57.0",
|
"playwright": "1.57.0",
|
||||||
"playwright-core": "1.57.0",
|
|
||||||
"prettier": "^3.7.4",
|
"prettier": "^3.7.4",
|
||||||
"typescript": "5.9.3",
|
"typescript": "5.9.3",
|
||||||
"vite-tsconfig-paths": "6.0.0",
|
"vite-tsconfig-paths": "6.0.0",
|
||||||
|
|
|
||||||
359
pnpm-lock.yaml
359
pnpm-lock.yaml
|
|
@ -9,35 +9,35 @@ importers:
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@payloadcms/db-postgres':
|
'@payloadcms/db-postgres':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))
|
version: 3.69.0(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))
|
||||||
'@payloadcms/next':
|
'@payloadcms/next':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
version: 3.69.0(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
'@payloadcms/plugin-form-builder':
|
'@payloadcms/plugin-form-builder':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
version: 3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
'@payloadcms/plugin-multi-tenant':
|
'@payloadcms/plugin-multi-tenant':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(@payloadcms/ui@3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))
|
version: 3.69.0(@payloadcms/ui@3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))
|
||||||
'@payloadcms/plugin-nested-docs':
|
'@payloadcms/plugin-nested-docs':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))
|
version: 3.69.0(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))
|
||||||
'@payloadcms/plugin-redirects':
|
'@payloadcms/plugin-redirects':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))
|
version: 3.69.0(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))
|
||||||
'@payloadcms/plugin-seo':
|
'@payloadcms/plugin-seo':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
version: 3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
'@payloadcms/richtext-lexical':
|
'@payloadcms/richtext-lexical':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(@faceless-ui/modal@3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@payloadcms/next@3.68.4(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(yjs@13.6.27)
|
version: 3.69.0(@faceless-ui/modal@3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@payloadcms/next@3.69.0(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(yjs@13.6.27)
|
||||||
'@payloadcms/translations':
|
'@payloadcms/translations':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4
|
version: 3.69.0
|
||||||
'@payloadcms/ui':
|
'@payloadcms/ui':
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
version: 3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
bullmq:
|
bullmq:
|
||||||
specifier: ^5.65.1
|
specifier: ^5.65.1
|
||||||
version: 5.65.1
|
version: 5.65.1
|
||||||
|
|
@ -47,9 +47,6 @@ importers:
|
||||||
dotenv:
|
dotenv:
|
||||||
specifier: 16.4.7
|
specifier: 16.4.7
|
||||||
version: 16.4.7
|
version: 16.4.7
|
||||||
graphql:
|
|
||||||
specifier: ^16.8.1
|
|
||||||
version: 16.12.0
|
|
||||||
ioredis:
|
ioredis:
|
||||||
specifier: ^5.8.2
|
specifier: ^5.8.2
|
||||||
version: 5.8.2
|
version: 5.8.2
|
||||||
|
|
@ -63,11 +60,11 @@ importers:
|
||||||
specifier: ^7.0.11
|
specifier: ^7.0.11
|
||||||
version: 7.0.11
|
version: 7.0.11
|
||||||
payload:
|
payload:
|
||||||
specifier: 3.68.4
|
specifier: 3.69.0
|
||||||
version: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
version: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
payload-oapi:
|
payload-oapi:
|
||||||
specifier: ^0.2.5
|
specifier: ^0.2.5
|
||||||
version: 0.2.5(@types/json-schema@7.0.15)(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))
|
version: 0.2.5(@types/json-schema@7.0.15)(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))
|
||||||
react:
|
react:
|
||||||
specifier: 19.2.3
|
specifier: 19.2.3
|
||||||
version: 19.2.3
|
version: 19.2.3
|
||||||
|
|
@ -84,9 +81,6 @@ importers:
|
||||||
'@playwright/test':
|
'@playwright/test':
|
||||||
specifier: 1.57.0
|
specifier: 1.57.0
|
||||||
version: 1.57.0
|
version: 1.57.0
|
||||||
'@testing-library/react':
|
|
||||||
specifier: 16.3.0
|
|
||||||
version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^22.10.2
|
specifier: ^22.10.2
|
||||||
version: 22.19.1
|
version: 22.19.1
|
||||||
|
|
@ -123,9 +117,6 @@ importers:
|
||||||
playwright:
|
playwright:
|
||||||
specifier: 1.57.0
|
specifier: 1.57.0
|
||||||
version: 1.57.0
|
version: 1.57.0
|
||||||
playwright-core:
|
|
||||||
specifier: 1.57.0
|
|
||||||
version: 1.57.0
|
|
||||||
prettier:
|
prettier:
|
||||||
specifier: ^3.7.4
|
specifier: ^3.7.4
|
||||||
version: 3.7.4
|
version: 3.7.4
|
||||||
|
|
@ -419,6 +410,12 @@ packages:
|
||||||
react: '>=16.8.0'
|
react: '>=16.8.0'
|
||||||
react-dom: '>=16.8.0'
|
react-dom: '>=16.8.0'
|
||||||
|
|
||||||
|
'@dnd-kit/modifiers@9.0.0':
|
||||||
|
resolution: {integrity: sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==}
|
||||||
|
peerDependencies:
|
||||||
|
'@dnd-kit/core': ^6.3.0
|
||||||
|
react: '>=16.8.0'
|
||||||
|
|
||||||
'@dnd-kit/sortable@7.0.2':
|
'@dnd-kit/sortable@7.0.2':
|
||||||
resolution: {integrity: sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==}
|
resolution: {integrity: sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -1225,81 +1222,81 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
openapi-types: '*'
|
openapi-types: '*'
|
||||||
|
|
||||||
'@payloadcms/db-postgres@3.68.4':
|
'@payloadcms/db-postgres@3.69.0':
|
||||||
resolution: {integrity: sha512-MZxocw87eC9Z7IwXPkzlJW4DPexx8ohVYwtTyHyIceoLydH1FcSEPOcmbHLEUo+nT5L7T/D3DyGN3ogkkaUchw==}
|
resolution: {integrity: sha512-Fz/hjP0z88zrsYz1UzaqnoM3L+yHymH+yWUIJnIf7jMCtnfi/ws5XBX/0DHILvxoVsCNc5XSx3fTjcBCJoYylw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
|
|
||||||
'@payloadcms/drizzle@3.68.4':
|
'@payloadcms/drizzle@3.69.0':
|
||||||
resolution: {integrity: sha512-i3zAnHTAOW5Qnw61IbBCGCgPkNokOuTSrqeQQomQj1gS/FfJ/Xx9DGgPZAH7QpKZXes+R47/XYlSr6cYxvAxbw==}
|
resolution: {integrity: sha512-Fsvij6ruoN7S7q1OfGYs/SSLy3s7wFd4E/efXHmRLjw53xtlRiGXIejmhiUEdNK4d5RHi0yjIblQsbTKnBvirw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
|
|
||||||
'@payloadcms/graphql@3.68.4':
|
'@payloadcms/graphql@3.69.0':
|
||||||
resolution: {integrity: sha512-EE4zWGMqCxYHd/J8nSAhtsFPndNRzYiXlLlx3zqRgi5Hhq96z4aYwcxHnk//syQKn3tKBCVjDvP41t0mTSBUaw==}
|
resolution: {integrity: sha512-VRFacg4EneV7U9jqerQfNVL/O788WlZbdnMGSwds0mVwC5qPW3sktZhHxJCAksvAFJ+XXtx4GCMv/YK8DgEfxw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
graphql: ^16.8.1
|
graphql: ^16.8.1
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
|
|
||||||
'@payloadcms/next@3.68.4':
|
'@payloadcms/next@3.69.0':
|
||||||
resolution: {integrity: sha512-UXBR7iVrC+ilj6UZ8M/+CF655Y5gZSokVFCz4sNrpIJX84K5MUaTGCuz1WTCoTj3Xbap5OlZVlGEZaO63cqVuw==}
|
resolution: {integrity: sha512-rkj/wvTDcbOkb8+v4jkZVdoJm2tvPUQL62CWoGnysy/ST+ZUwMr/70veLB7Ztr3uj6HKi6dU+31H+gG94UaMZg==}
|
||||||
engines: {node: ^18.20.2 || >=20.9.0}
|
engines: {node: ^18.20.2 || >=20.9.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
graphql: ^16.8.1
|
graphql: ^16.8.1
|
||||||
next: ^15.4.10
|
next: ^15.4.10
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
|
|
||||||
'@payloadcms/plugin-form-builder@3.68.4':
|
'@payloadcms/plugin-form-builder@3.69.0':
|
||||||
resolution: {integrity: sha512-Xc+MsB4kmneEe/KdIwZj4Ev1p3kiIiWL5FxosYtPY+4OYW8gCeHTRNf8kdDVBqaX24pwsyjHdz7x9BM+2rVMCg==}
|
resolution: {integrity: sha512-4ezzO6+pnQBqTx9TPr3Aer3Tnnpkv8+wB2hZqgAohdByTaejf7+N0JIIwTiZSS+FPf8itrjkEPjJ6e/h2RXfdQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
react: ^19.0.1 || ^19.1.2 || ^19.2.1
|
react: ^19.0.1 || ^19.1.2 || ^19.2.1
|
||||||
react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1
|
react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1
|
||||||
|
|
||||||
'@payloadcms/plugin-multi-tenant@3.68.4':
|
'@payloadcms/plugin-multi-tenant@3.69.0':
|
||||||
resolution: {integrity: sha512-4EuNmf6Sql1mkv8mS1yWSUKjt3uAWWuF+aoBok2AOcy09UPwt0AspL/GHsMjBCkYNmojwsnjSGRtfEeYLg+jIg==}
|
resolution: {integrity: sha512-0uoOmmfMfr9xOMn94Xh1osmSeaYaLzmkUbtx2uNxT+IZqSX4xi9YMq8Qrag5j738294H6MlDYW3LjHFmYDSFXw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@payloadcms/ui': 3.68.4
|
'@payloadcms/ui': 3.69.0
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
|
|
||||||
'@payloadcms/plugin-nested-docs@3.68.4':
|
'@payloadcms/plugin-nested-docs@3.69.0':
|
||||||
resolution: {integrity: sha512-QEZ1mvhT2G5gCIoREaMIxoMKZuNR9y6iEUeQxc8w7OIvV8DuxZkgBBNlh3k46qMSqY6rrcQAHVL2Q2M71uIsug==}
|
resolution: {integrity: sha512-Ch6OBcS+hUen9Q6cMxpI7aOueJdwv/bFDZOh/0DyoY4jLcCjIG2n+ZNslZ6gzA4CtKJAGziif4iyPD5iAaRFPA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
|
|
||||||
'@payloadcms/plugin-redirects@3.68.4':
|
'@payloadcms/plugin-redirects@3.69.0':
|
||||||
resolution: {integrity: sha512-rnZFbYwRll7+IpUIeQc1nDhzFk7M/ksTWyO9YU2sQV3F/SLZVZ8AN15vOypoh0byRAkXDfepq7ADcVGWkRolaw==}
|
resolution: {integrity: sha512-cBTyVCatT+ejDGsdTz04mLiolM54UHlRqBQ8nGoSmeMDSP987pqR84FeLiStj+IKFW5GMHFDY9ueD5yN30BSIQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
|
|
||||||
'@payloadcms/plugin-seo@3.68.4':
|
'@payloadcms/plugin-seo@3.69.0':
|
||||||
resolution: {integrity: sha512-VsJarN426yQtCoqHoHGnsKWFQIx2CtOlG2ZkikbtxMjD1JKb/e3ryxvH9bUMMI0ekfzPyJg54LW1iihP2UumRw==}
|
resolution: {integrity: sha512-jbcbXx4PdV/psZZsOiVqfbDb15jGnCy/LuVBlO/DsMhe2/1DiMO2PfWNGBhFIAn94mB9UjnNoi0P+JBtuEYNhw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
react: ^19.0.1 || ^19.1.2 || ^19.2.1
|
react: ^19.0.1 || ^19.1.2 || ^19.2.1
|
||||||
react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1
|
react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1
|
||||||
|
|
||||||
'@payloadcms/richtext-lexical@3.68.4':
|
'@payloadcms/richtext-lexical@3.69.0':
|
||||||
resolution: {integrity: sha512-HA9F1QrIUeWN/dCkhwF5pSXJDdFVbSr0N8iUkJk/WpqCTJiTTeIGR/BsQXkQ9V1AHSQAOv8kNWF8DzsOp1XFrw==}
|
resolution: {integrity: sha512-NwyTN3GY1FOFTP0V3gm+M0FxK4GDWL2R0p2DrirIi7nZOH2rw6P+FfvMvzobT/nxUsQYntBnjoGDWhqN+uq3lg==}
|
||||||
engines: {node: ^18.20.2 || >=20.9.0}
|
engines: {node: ^18.20.2 || >=20.9.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@faceless-ui/modal': 3.0.0
|
'@faceless-ui/modal': 3.0.0
|
||||||
'@faceless-ui/scroll-info': 2.0.0
|
'@faceless-ui/scroll-info': 2.0.0
|
||||||
'@payloadcms/next': 3.68.4
|
'@payloadcms/next': 3.69.0
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
react: ^19.0.1 || ^19.1.2 || ^19.2.1
|
react: ^19.0.1 || ^19.1.2 || ^19.2.1
|
||||||
react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1
|
react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1
|
||||||
|
|
||||||
'@payloadcms/translations@3.68.4':
|
'@payloadcms/translations@3.69.0':
|
||||||
resolution: {integrity: sha512-1LbClkAlvWKWVD8a8RuNYS109Ga/RwSA5X5nohmBNNAp10E4auM2PhQXcSHh5gvVDUuA1puVJUL9cEVwY0E0gg==}
|
resolution: {integrity: sha512-/27JphlweOy0FhkH9H5dRHpi6bHjqdKFkLciURsxyEXJFLsd9w/07e6clD48Lvr8SPdCmr09KLJKdXTjjT1ypQ==}
|
||||||
|
|
||||||
'@payloadcms/ui@3.68.4':
|
'@payloadcms/ui@3.69.0':
|
||||||
resolution: {integrity: sha512-RLbCFsKzmAwV5QNb+RxQU1CI2XaGYLh6KeLqOzGfkC/bsdZoTl4FKX702e6DLFRfmYLG8Jf7Vkdk4E4ZMeQsew==}
|
resolution: {integrity: sha512-R/CFV9IF3LTHwBm+gFESpSYYqLejJgRijJarGFot5I1Kxa18mwNp+xUYHVUcJgGZ1xQ1iYzGuElEJwy1cJhMxg==}
|
||||||
engines: {node: ^18.20.2 || >=20.9.0}
|
engines: {node: ^18.20.2 || >=20.9.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
next: ^15.2.8 || ^15.3.8 || ^15.4.10 || ^15.5.9
|
next: ^15.2.8 || ^15.3.8 || ^15.4.10 || ^15.5.9
|
||||||
payload: 3.68.4
|
payload: 3.69.0
|
||||||
react: ^19.0.1 || ^19.1.2 || ^19.2.1
|
react: ^19.0.1 || ^19.1.2 || ^19.2.1
|
||||||
react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1
|
react-dom: ^19.0.1 || ^19.1.2 || ^19.2.1
|
||||||
|
|
||||||
|
|
@ -1608,25 +1605,6 @@ packages:
|
||||||
'@swc/helpers@0.5.15':
|
'@swc/helpers@0.5.15':
|
||||||
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
|
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
|
||||||
|
|
||||||
'@testing-library/dom@10.4.1':
|
|
||||||
resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
|
|
||||||
'@testing-library/react@16.3.0':
|
|
||||||
resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==}
|
|
||||||
engines: {node: '>=18'}
|
|
||||||
peerDependencies:
|
|
||||||
'@testing-library/dom': ^10.0.0
|
|
||||||
'@types/react': ^18.0.0 || ^19.0.0
|
|
||||||
'@types/react-dom': ^18.0.0 || ^19.0.0
|
|
||||||
react: ^18.0.0 || ^19.0.0
|
|
||||||
react-dom: ^18.0.0 || ^19.0.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/react':
|
|
||||||
optional: true
|
|
||||||
'@types/react-dom':
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
'@tokenizer/token@0.3.0':
|
'@tokenizer/token@0.3.0':
|
||||||
resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
|
resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
|
||||||
|
|
||||||
|
|
@ -1636,9 +1614,6 @@ packages:
|
||||||
'@types/acorn@4.0.6':
|
'@types/acorn@4.0.6':
|
||||||
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
|
resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
|
||||||
|
|
||||||
'@types/aria-query@5.0.4':
|
|
||||||
resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
|
|
||||||
|
|
||||||
'@types/babel__core@7.20.5':
|
'@types/babel__core@7.20.5':
|
||||||
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
|
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
|
||||||
|
|
||||||
|
|
@ -1950,10 +1925,6 @@ packages:
|
||||||
ajv@8.17.1:
|
ajv@8.17.1:
|
||||||
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
|
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
|
||||||
|
|
||||||
ansi-regex@5.0.1:
|
|
||||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
|
||||||
engines: {node: '>=8'}
|
|
||||||
|
|
||||||
ansi-regex@6.2.2:
|
ansi-regex@6.2.2:
|
||||||
resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
|
resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
@ -1962,10 +1933,6 @@ packages:
|
||||||
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
|
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
ansi-styles@5.2.0:
|
|
||||||
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
|
|
||||||
ansi-styles@6.2.3:
|
ansi-styles@6.2.3:
|
||||||
resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
|
resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
@ -1977,9 +1944,6 @@ packages:
|
||||||
argparse@2.0.1:
|
argparse@2.0.1:
|
||||||
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
||||||
|
|
||||||
aria-query@5.3.0:
|
|
||||||
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
|
|
||||||
|
|
||||||
aria-query@5.3.2:
|
aria-query@5.3.2:
|
||||||
resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
|
resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
|
|
@ -2313,9 +2277,6 @@ packages:
|
||||||
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
|
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
dom-accessibility-api@0.5.16:
|
|
||||||
resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
|
|
||||||
|
|
||||||
dom-helpers@5.2.1:
|
dom-helpers@5.2.1:
|
||||||
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
|
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
|
||||||
|
|
||||||
|
|
@ -3158,8 +3119,8 @@ packages:
|
||||||
lexical@0.35.0:
|
lexical@0.35.0:
|
||||||
resolution: {integrity: sha512-3VuV8xXhh5xJA6tzvfDvE0YBCMkIZUmxtRilJQDDdCgJCc+eut6qAv2qbN+pbqvarqcQqPN1UF+8YvsjmyOZpw==}
|
resolution: {integrity: sha512-3VuV8xXhh5xJA6tzvfDvE0YBCMkIZUmxtRilJQDDdCgJCc+eut6qAv2qbN+pbqvarqcQqPN1UF+8YvsjmyOZpw==}
|
||||||
|
|
||||||
lib0@0.2.114:
|
lib0@0.2.116:
|
||||||
resolution: {integrity: sha512-gcxmNFzA4hv8UYi8j43uPlQ7CGcyMJ2KQb5kZASw6SnAKAf10hK12i2fjrS3Cl/ugZa5Ui6WwIu1/6MIXiHttQ==}
|
resolution: {integrity: sha512-4zsosjzmt33rx5XjmFVYUAeLNh+BTeDTiwGdLt4muxiir2btsc60Nal0EvkvDRizg+pnlK1q+BtYi7M+d4eStw==}
|
||||||
engines: {node: '>=16'}
|
engines: {node: '>=16'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
|
@ -3199,10 +3160,6 @@ packages:
|
||||||
resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==}
|
resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
lz-string@1.5.0:
|
|
||||||
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
magic-string@0.30.21:
|
magic-string@0.30.21:
|
||||||
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
|
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
|
||||||
|
|
||||||
|
|
@ -3516,8 +3473,8 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
payload: ^3.0.0
|
payload: ^3.0.0
|
||||||
|
|
||||||
payload@3.68.4:
|
payload@3.69.0:
|
||||||
resolution: {integrity: sha512-4iqHkyCm6oYxGVG399Qt2BhE96/304rok47GIPIhbuaXz2RDdN+lXo8yroWb0TOcr+bXdp2ga7IHgviIRgIpvw==}
|
resolution: {integrity: sha512-LiIybFUjAYYVYN2kSaieqDyQDglGeYuyPtP0xqkvIF5EOAGdNMMLSPmGHquV1kPeeUvzgv/CVoNIMEOuRF9wmg==}
|
||||||
engines: {node: ^18.20.2 || >=20.9.0}
|
engines: {node: ^18.20.2 || >=20.9.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -3628,8 +3585,8 @@ packages:
|
||||||
resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==}
|
resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
postgres-bytea@1.0.0:
|
postgres-bytea@1.0.1:
|
||||||
resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
|
resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
postgres-bytea@3.0.0:
|
postgres-bytea@3.0.0:
|
||||||
|
|
@ -3664,10 +3621,6 @@ packages:
|
||||||
engines: {node: '>=14'}
|
engines: {node: '>=14'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
pretty-format@27.5.1:
|
|
||||||
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
|
|
||||||
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
|
|
||||||
|
|
||||||
prismjs@1.30.0:
|
prismjs@1.30.0:
|
||||||
resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
|
resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
@ -3699,6 +3652,10 @@ packages:
|
||||||
quick-format-unescaped@4.0.4:
|
quick-format-unescaped@4.0.4:
|
||||||
resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
|
resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
|
||||||
|
|
||||||
|
range-parser@1.2.1:
|
||||||
|
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
||||||
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
react-datepicker@7.6.0:
|
react-datepicker@7.6.0:
|
||||||
resolution: {integrity: sha512-9cQH6Z/qa4LrGhzdc3XoHbhrxNcMi9MKjZmYgF/1MNNaJwvdSjv3Xd+jjvrEEbKEf71ZgCA3n7fQbdwd70qCRw==}
|
resolution: {integrity: sha512-9cQH6Z/qa4LrGhzdc3XoHbhrxNcMi9MKjZmYgF/1MNNaJwvdSjv3Xd+jjvrEEbKEf71ZgCA3n7fQbdwd70qCRw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -3729,9 +3686,6 @@ packages:
|
||||||
react-is@16.13.1:
|
react-is@16.13.1:
|
||||||
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
|
||||||
|
|
||||||
react-is@17.0.2:
|
|
||||||
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
|
|
||||||
|
|
||||||
react-refresh@0.17.0:
|
react-refresh@0.17.0:
|
||||||
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
|
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
@ -5011,6 +4965,13 @@ snapshots:
|
||||||
react-dom: 19.2.3(react@19.2.3)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
|
'@dnd-kit/modifiers@9.0.0(@dnd-kit/core@6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)':
|
||||||
|
dependencies:
|
||||||
|
'@dnd-kit/core': 6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
|
'@dnd-kit/utilities': 3.2.2(react@19.2.3)
|
||||||
|
react: 19.2.3
|
||||||
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@dnd-kit/sortable@7.0.2(@dnd-kit/core@6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)':
|
'@dnd-kit/sortable@7.0.2(@dnd-kit/core@6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@dnd-kit/core': 6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@dnd-kit/core': 6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
|
|
@ -5717,14 +5678,14 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/json-schema'
|
- '@types/json-schema'
|
||||||
|
|
||||||
'@payloadcms/db-postgres@3.68.4(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))':
|
'@payloadcms/db-postgres@3.69.0(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@payloadcms/drizzle': 3.68.4(@types/pg@8.10.2)(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3)
|
'@payloadcms/drizzle': 3.69.0(@types/pg@8.10.2)(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3)
|
||||||
'@types/pg': 8.10.2
|
'@types/pg': 8.10.2
|
||||||
console-table-printer: 2.12.1
|
console-table-printer: 2.12.1
|
||||||
drizzle-kit: 0.31.7
|
drizzle-kit: 0.31.7
|
||||||
drizzle-orm: 0.44.7(@types/pg@8.10.2)(pg@8.16.3)
|
drizzle-orm: 0.44.7(@types/pg@8.10.2)(pg@8.16.3)
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
pg: 8.16.3
|
pg: 8.16.3
|
||||||
prompts: 2.4.2
|
prompts: 2.4.2
|
||||||
to-snake-case: 1.0.0
|
to-snake-case: 1.0.0
|
||||||
|
|
@ -5760,12 +5721,12 @@ snapshots:
|
||||||
- sqlite3
|
- sqlite3
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@payloadcms/drizzle@3.68.4(@types/pg@8.10.2)(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3)':
|
'@payloadcms/drizzle@3.69.0(@types/pg@8.10.2)(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(pg@8.16.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
console-table-printer: 2.12.1
|
console-table-printer: 2.12.1
|
||||||
dequal: 2.0.3
|
dequal: 2.0.3
|
||||||
drizzle-orm: 0.44.7(@types/pg@8.10.2)(pg@8.16.3)
|
drizzle-orm: 0.44.7(@types/pg@8.10.2)(pg@8.16.3)
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
prompts: 2.4.2
|
prompts: 2.4.2
|
||||||
to-snake-case: 1.0.0
|
to-snake-case: 1.0.0
|
||||||
uuid: 9.0.0
|
uuid: 9.0.0
|
||||||
|
|
@ -5800,23 +5761,25 @@ snapshots:
|
||||||
- sql.js
|
- sql.js
|
||||||
- sqlite3
|
- sqlite3
|
||||||
|
|
||||||
'@payloadcms/graphql@3.68.4(graphql@16.12.0)(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3)':
|
'@payloadcms/graphql@3.69.0(graphql@16.12.0)(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
graphql: 16.12.0
|
graphql: 16.12.0
|
||||||
graphql-scalars: 1.22.2(graphql@16.12.0)
|
graphql-scalars: 1.22.2(graphql@16.12.0)
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
pluralize: 8.0.0
|
pluralize: 8.0.0
|
||||||
ts-essentials: 10.0.3(typescript@5.9.3)
|
ts-essentials: 10.0.3(typescript@5.9.3)
|
||||||
tsx: 4.20.6
|
tsx: 4.20.6
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@payloadcms/next@3.68.4(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)':
|
'@payloadcms/next@3.69.0(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@dnd-kit/core': 6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@dnd-kit/core': 6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
'@payloadcms/graphql': 3.68.4(graphql@16.12.0)(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3)
|
'@dnd-kit/modifiers': 9.0.0(@dnd-kit/core@6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)
|
||||||
'@payloadcms/translations': 3.68.4
|
'@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)
|
||||||
'@payloadcms/ui': 3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
'@payloadcms/graphql': 3.69.0(graphql@16.12.0)(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(typescript@5.9.3)
|
||||||
|
'@payloadcms/translations': 3.69.0
|
||||||
|
'@payloadcms/ui': 3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
busboy: 1.6.0
|
busboy: 1.6.0
|
||||||
dequal: 2.0.3
|
dequal: 2.0.3
|
||||||
file-type: 19.3.0
|
file-type: 19.3.0
|
||||||
|
|
@ -5826,7 +5789,7 @@ snapshots:
|
||||||
http-status: 2.1.0
|
http-status: 2.1.0
|
||||||
next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4)
|
next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4)
|
||||||
path-to-regexp: 6.3.0
|
path-to-regexp: 6.3.0
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
qs-esm: 7.0.2
|
qs-esm: 7.0.2
|
||||||
sass: 1.77.4
|
sass: 1.77.4
|
||||||
uuid: 10.0.0
|
uuid: 10.0.0
|
||||||
|
|
@ -5838,11 +5801,11 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@payloadcms/plugin-form-builder@3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)':
|
'@payloadcms/plugin-form-builder@3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@payloadcms/ui': 3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
'@payloadcms/ui': 3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
escape-html: 1.0.3
|
escape-html: 1.0.3
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
react: 19.2.3
|
react: 19.2.3
|
||||||
react-dom: 19.2.3(react@19.2.3)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -5852,25 +5815,25 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@payloadcms/plugin-multi-tenant@3.68.4(@payloadcms/ui@3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))':
|
'@payloadcms/plugin-multi-tenant@3.69.0(@payloadcms/ui@3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@payloadcms/ui': 3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
'@payloadcms/ui': 3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
|
|
||||||
'@payloadcms/plugin-nested-docs@3.68.4(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))':
|
'@payloadcms/plugin-nested-docs@3.69.0(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
|
|
||||||
'@payloadcms/plugin-redirects@3.68.4(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))':
|
'@payloadcms/plugin-redirects@3.69.0(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@payloadcms/translations': 3.68.4
|
'@payloadcms/translations': 3.69.0
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
|
|
||||||
'@payloadcms/plugin-seo@3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)':
|
'@payloadcms/plugin-seo@3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@payloadcms/translations': 3.68.4
|
'@payloadcms/translations': 3.69.0
|
||||||
'@payloadcms/ui': 3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
'@payloadcms/ui': 3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
react: 19.2.3
|
react: 19.2.3
|
||||||
react-dom: 19.2.3(react@19.2.3)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -5880,7 +5843,7 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@payloadcms/richtext-lexical@3.68.4(@faceless-ui/modal@3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@payloadcms/next@3.68.4(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(yjs@13.6.27)':
|
'@payloadcms/richtext-lexical@3.69.0(@faceless-ui/modal@3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@faceless-ui/scroll-info@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@payloadcms/next@3.69.0(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)(yjs@13.6.27)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@faceless-ui/modal': 3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@faceless-ui/modal': 3.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
'@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
|
|
@ -5895,9 +5858,9 @@ snapshots:
|
||||||
'@lexical/selection': 0.35.0
|
'@lexical/selection': 0.35.0
|
||||||
'@lexical/table': 0.35.0
|
'@lexical/table': 0.35.0
|
||||||
'@lexical/utils': 0.35.0
|
'@lexical/utils': 0.35.0
|
||||||
'@payloadcms/next': 3.68.4(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
'@payloadcms/next': 3.69.0(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
'@payloadcms/translations': 3.68.4
|
'@payloadcms/translations': 3.69.0
|
||||||
'@payloadcms/ui': 3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
'@payloadcms/ui': 3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)
|
||||||
'@types/uuid': 10.0.0
|
'@types/uuid': 10.0.0
|
||||||
acorn: 8.12.1
|
acorn: 8.12.1
|
||||||
bson-objectid: 2.0.4
|
bson-objectid: 2.0.4
|
||||||
|
|
@ -5909,7 +5872,7 @@ snapshots:
|
||||||
mdast-util-from-markdown: 2.0.2
|
mdast-util-from-markdown: 2.0.2
|
||||||
mdast-util-mdx-jsx: 3.1.3
|
mdast-util-mdx-jsx: 3.1.3
|
||||||
micromark-extension-mdx-jsx: 3.0.1
|
micromark-extension-mdx-jsx: 3.0.1
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
qs-esm: 7.0.2
|
qs-esm: 7.0.2
|
||||||
react: 19.2.3
|
react: 19.2.3
|
||||||
react-dom: 19.2.3(react@19.2.3)
|
react-dom: 19.2.3(react@19.2.3)
|
||||||
|
|
@ -5924,11 +5887,11 @@ snapshots:
|
||||||
- typescript
|
- typescript
|
||||||
- yjs
|
- yjs
|
||||||
|
|
||||||
'@payloadcms/translations@3.68.4':
|
'@payloadcms/translations@3.69.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
date-fns: 4.1.0
|
date-fns: 4.1.0
|
||||||
|
|
||||||
'@payloadcms/ui@3.68.4(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)':
|
'@payloadcms/ui@3.69.0(@types/react@19.2.7)(monaco-editor@0.55.1)(next@15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@date-fns/tz': 1.2.0
|
'@date-fns/tz': 1.2.0
|
||||||
'@dnd-kit/core': 6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@dnd-kit/core': 6.0.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
|
|
@ -5938,14 +5901,14 @@ snapshots:
|
||||||
'@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@faceless-ui/scroll-info': 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
'@faceless-ui/window-info': 3.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@faceless-ui/window-info': 3.0.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
'@monaco-editor/react': 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@monaco-editor/react': 4.7.0(monaco-editor@0.55.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
'@payloadcms/translations': 3.68.4
|
'@payloadcms/translations': 3.69.0
|
||||||
bson-objectid: 2.0.4
|
bson-objectid: 2.0.4
|
||||||
date-fns: 4.1.0
|
date-fns: 4.1.0
|
||||||
dequal: 2.0.3
|
dequal: 2.0.3
|
||||||
md5: 2.3.0
|
md5: 2.3.0
|
||||||
next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4)
|
next: 15.5.9(@babel/core@7.28.5)(@playwright/test@1.57.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4)
|
||||||
object-to-formdata: 4.5.1
|
object-to-formdata: 4.5.1
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
qs-esm: 7.0.2
|
qs-esm: 7.0.2
|
||||||
react: 19.2.3
|
react: 19.2.3
|
||||||
react-datepicker: 7.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
react-datepicker: 7.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
|
|
@ -6321,27 +6284,6 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@testing-library/dom@10.4.1':
|
|
||||||
dependencies:
|
|
||||||
'@babel/code-frame': 7.27.1
|
|
||||||
'@babel/runtime': 7.28.4
|
|
||||||
'@types/aria-query': 5.0.4
|
|
||||||
aria-query: 5.3.0
|
|
||||||
dom-accessibility-api: 0.5.16
|
|
||||||
lz-string: 1.5.0
|
|
||||||
picocolors: 1.1.1
|
|
||||||
pretty-format: 27.5.1
|
|
||||||
|
|
||||||
'@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
|
|
||||||
dependencies:
|
|
||||||
'@babel/runtime': 7.28.4
|
|
||||||
'@testing-library/dom': 10.4.1
|
|
||||||
react: 19.2.3
|
|
||||||
react-dom: 19.2.3(react@19.2.3)
|
|
||||||
optionalDependencies:
|
|
||||||
'@types/react': 19.2.7
|
|
||||||
'@types/react-dom': 19.2.3(@types/react@19.2.7)
|
|
||||||
|
|
||||||
'@tokenizer/token@0.3.0': {}
|
'@tokenizer/token@0.3.0': {}
|
||||||
|
|
||||||
'@tybys/wasm-util@0.10.1':
|
'@tybys/wasm-util@0.10.1':
|
||||||
|
|
@ -6353,8 +6295,6 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/estree': 1.0.8
|
'@types/estree': 1.0.8
|
||||||
|
|
||||||
'@types/aria-query@5.0.4': {}
|
|
||||||
|
|
||||||
'@types/babel__core@7.20.5':
|
'@types/babel__core@7.20.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.28.5
|
'@babel/parser': 7.28.5
|
||||||
|
|
@ -6697,16 +6637,12 @@ snapshots:
|
||||||
json-schema-traverse: 1.0.0
|
json-schema-traverse: 1.0.0
|
||||||
require-from-string: 2.0.2
|
require-from-string: 2.0.2
|
||||||
|
|
||||||
ansi-regex@5.0.1: {}
|
|
||||||
|
|
||||||
ansi-regex@6.2.2: {}
|
ansi-regex@6.2.2: {}
|
||||||
|
|
||||||
ansi-styles@4.3.0:
|
ansi-styles@4.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
color-convert: 2.0.1
|
color-convert: 2.0.1
|
||||||
|
|
||||||
ansi-styles@5.2.0: {}
|
|
||||||
|
|
||||||
ansi-styles@6.2.3: {}
|
ansi-styles@6.2.3: {}
|
||||||
|
|
||||||
anymatch@3.1.3:
|
anymatch@3.1.3:
|
||||||
|
|
@ -6716,10 +6652,6 @@ snapshots:
|
||||||
|
|
||||||
argparse@2.0.1: {}
|
argparse@2.0.1: {}
|
||||||
|
|
||||||
aria-query@5.3.0:
|
|
||||||
dependencies:
|
|
||||||
dequal: 2.0.3
|
|
||||||
|
|
||||||
aria-query@5.3.2: {}
|
aria-query@5.3.2: {}
|
||||||
|
|
||||||
array-buffer-byte-length@1.0.2:
|
array-buffer-byte-length@1.0.2:
|
||||||
|
|
@ -7068,8 +7000,6 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
esutils: 2.0.3
|
esutils: 2.0.3
|
||||||
|
|
||||||
dom-accessibility-api@0.5.16: {}
|
|
||||||
|
|
||||||
dom-helpers@5.2.1:
|
dom-helpers@5.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.28.4
|
'@babel/runtime': 7.28.4
|
||||||
|
|
@ -7304,8 +7234,8 @@ snapshots:
|
||||||
'@typescript-eslint/parser': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
'@typescript-eslint/parser': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
eslint: 9.39.2
|
eslint: 9.39.2
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2)
|
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2)
|
||||||
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
|
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
|
||||||
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2)
|
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2)
|
||||||
eslint-plugin-react: 7.37.5(eslint@9.39.2)
|
eslint-plugin-react: 7.37.5(eslint@9.39.2)
|
||||||
eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2)
|
eslint-plugin-react-hooks: 5.2.0(eslint@9.39.2)
|
||||||
|
|
@ -7324,7 +7254,7 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2):
|
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nolyfill/is-core-module': 1.0.39
|
'@nolyfill/is-core-module': 1.0.39
|
||||||
debug: 4.4.3
|
debug: 4.4.3
|
||||||
|
|
@ -7335,22 +7265,22 @@ snapshots:
|
||||||
tinyglobby: 0.2.15
|
tinyglobby: 0.2.15
|
||||||
unrs-resolver: 1.11.1
|
unrs-resolver: 1.11.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
|
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2):
|
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
debug: 3.2.7
|
debug: 3.2.7
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@typescript-eslint/parser': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
'@typescript-eslint/parser': 8.49.0(eslint@9.39.2)(typescript@5.9.3)
|
||||||
eslint: 9.39.2
|
eslint: 9.39.2
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2)
|
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2):
|
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rtsao/scc': 1.1.0
|
'@rtsao/scc': 1.1.0
|
||||||
array-includes: 3.1.9
|
array-includes: 3.1.9
|
||||||
|
|
@ -7361,7 +7291,7 @@ snapshots:
|
||||||
doctrine: 2.1.0
|
doctrine: 2.1.0
|
||||||
eslint: 9.39.2
|
eslint: 9.39.2
|
||||||
eslint-import-resolver-node: 0.3.9
|
eslint-import-resolver-node: 0.3.9
|
||||||
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2)
|
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2))(eslint@9.39.2))(eslint@9.39.2)
|
||||||
hasown: 2.0.2
|
hasown: 2.0.2
|
||||||
is-core-module: 2.16.1
|
is-core-module: 2.16.1
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
|
|
@ -8036,7 +7966,7 @@ snapshots:
|
||||||
|
|
||||||
lexical@0.35.0: {}
|
lexical@0.35.0: {}
|
||||||
|
|
||||||
lib0@0.2.114:
|
lib0@0.2.116:
|
||||||
dependencies:
|
dependencies:
|
||||||
isomorphic.js: 0.2.5
|
isomorphic.js: 0.2.5
|
||||||
|
|
||||||
|
|
@ -8068,8 +7998,6 @@ snapshots:
|
||||||
|
|
||||||
luxon@3.7.2: {}
|
luxon@3.7.2: {}
|
||||||
|
|
||||||
lz-string@1.5.0: {}
|
|
||||||
|
|
||||||
magic-string@0.30.21:
|
magic-string@0.30.21:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/sourcemap-codec': 1.5.5
|
'@jridgewell/sourcemap-codec': 1.5.5
|
||||||
|
|
@ -8526,20 +8454,20 @@ snapshots:
|
||||||
|
|
||||||
pathe@2.0.3: {}
|
pathe@2.0.3: {}
|
||||||
|
|
||||||
payload-oapi@0.2.5(@types/json-schema@7.0.15)(payload@3.68.4(graphql@16.12.0)(typescript@5.9.3)):
|
payload-oapi@0.2.5(@types/json-schema@7.0.15)(payload@3.69.0(graphql@16.12.0)(typescript@5.9.3)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@openapi-contrib/json-schema-to-openapi-schema': 4.3.0(@types/json-schema@7.0.15)(openapi-types@12.1.3)
|
'@openapi-contrib/json-schema-to-openapi-schema': 4.3.0(@types/json-schema@7.0.15)(openapi-types@12.1.3)
|
||||||
mutative: 1.3.0
|
mutative: 1.3.0
|
||||||
openapi-types: 12.1.3
|
openapi-types: 12.1.3
|
||||||
payload: 3.68.4(graphql@16.12.0)(typescript@5.9.3)
|
payload: 3.69.0(graphql@16.12.0)(typescript@5.9.3)
|
||||||
util: 0.12.5
|
util: 0.12.5
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/json-schema'
|
- '@types/json-schema'
|
||||||
|
|
||||||
payload@3.68.4(graphql@16.12.0)(typescript@5.9.3):
|
payload@3.69.0(graphql@16.12.0)(typescript@5.9.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@next/env': 15.5.9
|
'@next/env': 15.5.9
|
||||||
'@payloadcms/translations': 3.68.4
|
'@payloadcms/translations': 3.69.0
|
||||||
'@types/busboy': 1.5.4
|
'@types/busboy': 1.5.4
|
||||||
ajv: 8.17.1
|
ajv: 8.17.1
|
||||||
bson-objectid: 2.0.4
|
bson-objectid: 2.0.4
|
||||||
|
|
@ -8563,6 +8491,7 @@ snapshots:
|
||||||
pino-pretty: 13.1.2
|
pino-pretty: 13.1.2
|
||||||
pluralize: 8.0.0
|
pluralize: 8.0.0
|
||||||
qs-esm: 7.0.2
|
qs-esm: 7.0.2
|
||||||
|
range-parser: 1.2.1
|
||||||
sanitize-filename: 1.6.3
|
sanitize-filename: 1.6.3
|
||||||
scmp: 2.1.0
|
scmp: 2.1.0
|
||||||
ts-essentials: 10.0.3(typescript@5.9.3)
|
ts-essentials: 10.0.3(typescript@5.9.3)
|
||||||
|
|
@ -8596,7 +8525,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
pg-int8: 1.0.1
|
pg-int8: 1.0.1
|
||||||
postgres-array: 2.0.0
|
postgres-array: 2.0.0
|
||||||
postgres-bytea: 1.0.0
|
postgres-bytea: 1.0.1
|
||||||
postgres-date: 1.0.7
|
postgres-date: 1.0.7
|
||||||
postgres-interval: 1.2.0
|
postgres-interval: 1.2.0
|
||||||
|
|
||||||
|
|
@ -8694,7 +8623,7 @@ snapshots:
|
||||||
|
|
||||||
postgres-array@3.0.4: {}
|
postgres-array@3.0.4: {}
|
||||||
|
|
||||||
postgres-bytea@1.0.0: {}
|
postgres-bytea@1.0.1: {}
|
||||||
|
|
||||||
postgres-bytea@3.0.0:
|
postgres-bytea@3.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -8716,12 +8645,6 @@ snapshots:
|
||||||
|
|
||||||
prettier@3.7.4: {}
|
prettier@3.7.4: {}
|
||||||
|
|
||||||
pretty-format@27.5.1:
|
|
||||||
dependencies:
|
|
||||||
ansi-regex: 5.0.1
|
|
||||||
ansi-styles: 5.2.0
|
|
||||||
react-is: 17.0.2
|
|
||||||
|
|
||||||
prismjs@1.30.0: {}
|
prismjs@1.30.0: {}
|
||||||
|
|
||||||
process-warning@5.0.0: {}
|
process-warning@5.0.0: {}
|
||||||
|
|
@ -8750,6 +8673,8 @@ snapshots:
|
||||||
|
|
||||||
quick-format-unescaped@4.0.4: {}
|
quick-format-unescaped@4.0.4: {}
|
||||||
|
|
||||||
|
range-parser@1.2.1: {}
|
||||||
|
|
||||||
react-datepicker@7.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
react-datepicker@7.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@floating-ui/react': 0.27.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
'@floating-ui/react': 0.27.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
|
||||||
|
|
@ -8779,8 +8704,6 @@ snapshots:
|
||||||
|
|
||||||
react-is@16.13.1: {}
|
react-is@16.13.1: {}
|
||||||
|
|
||||||
react-is@17.0.2: {}
|
|
||||||
|
|
||||||
react-refresh@0.17.0: {}
|
react-refresh@0.17.0: {}
|
||||||
|
|
||||||
react-select@5.9.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
react-select@5.9.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
|
||||||
|
|
@ -9252,7 +9175,7 @@ snapshots:
|
||||||
tsx@4.20.3:
|
tsx@4.20.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.25.12
|
esbuild: 0.25.12
|
||||||
get-tsconfig: 4.13.0
|
get-tsconfig: 4.8.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
|
|
||||||
|
|
@ -9576,7 +9499,7 @@ snapshots:
|
||||||
|
|
||||||
yjs@13.6.27:
|
yjs@13.6.27:
|
||||||
dependencies:
|
dependencies:
|
||||||
lib0: 0.2.114
|
lib0: 0.2.116
|
||||||
|
|
||||||
yocto-queue@0.1.0: {}
|
yocto-queue@0.1.0: {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ import { BoldFeatureClient as BoldFeatureClient_e70f5e05f09f93e00b997edb1ef0c864
|
||||||
import { ItalicFeatureClient as ItalicFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client'
|
import { ItalicFeatureClient as ItalicFeatureClient_e70f5e05f09f93e00b997edb1ef0c864 } from '@payloadcms/richtext-lexical/client'
|
||||||
import { TenantSelector as TenantSelector_d6d5f193a167989e2ee7d14202901e62 } from '@payloadcms/plugin-multi-tenant/rsc'
|
import { TenantSelector as TenantSelector_d6d5f193a167989e2ee7d14202901e62 } from '@payloadcms/plugin-multi-tenant/rsc'
|
||||||
import { TenantSelectionProvider as TenantSelectionProvider_d6d5f193a167989e2ee7d14202901e62 } from '@payloadcms/plugin-multi-tenant/rsc'
|
import { TenantSelectionProvider as TenantSelectionProvider_d6d5f193a167989e2ee7d14202901e62 } from '@payloadcms/plugin-multi-tenant/rsc'
|
||||||
|
import { CollectionCards as CollectionCards_ab83ff7e88da8d3530831f296ec4756a } from '@payloadcms/ui/rsc'
|
||||||
|
|
||||||
export const importMap = {
|
export const importMap = {
|
||||||
"@payloadcms/plugin-multi-tenant/client#TenantField": TenantField_1d0591e3cf4f332c83a86da13a0de59a,
|
"@payloadcms/plugin-multi-tenant/client#TenantField": TenantField_1d0591e3cf4f332c83a86da13a0de59a,
|
||||||
|
|
@ -57,5 +58,6 @@ export const importMap = {
|
||||||
"@payloadcms/richtext-lexical/client#BoldFeatureClient": BoldFeatureClient_e70f5e05f09f93e00b997edb1ef0c864,
|
"@payloadcms/richtext-lexical/client#BoldFeatureClient": BoldFeatureClient_e70f5e05f09f93e00b997edb1ef0c864,
|
||||||
"@payloadcms/richtext-lexical/client#ItalicFeatureClient": ItalicFeatureClient_e70f5e05f09f93e00b997edb1ef0c864,
|
"@payloadcms/richtext-lexical/client#ItalicFeatureClient": ItalicFeatureClient_e70f5e05f09f93e00b997edb1ef0c864,
|
||||||
"@payloadcms/plugin-multi-tenant/rsc#TenantSelector": TenantSelector_d6d5f193a167989e2ee7d14202901e62,
|
"@payloadcms/plugin-multi-tenant/rsc#TenantSelector": TenantSelector_d6d5f193a167989e2ee7d14202901e62,
|
||||||
"@payloadcms/plugin-multi-tenant/rsc#TenantSelectionProvider": TenantSelectionProvider_d6d5f193a167989e2ee7d14202901e62
|
"@payloadcms/plugin-multi-tenant/rsc#TenantSelectionProvider": TenantSelectionProvider_d6d5f193a167989e2ee7d14202901e62,
|
||||||
|
"@payloadcms/ui/rsc#CollectionCards": CollectionCards_ab83ff7e88da8d3530831f296ec4756a
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,196 +0,0 @@
|
||||||
/**
|
|
||||||
* Custom Login Page
|
|
||||||
*
|
|
||||||
* Komplett eigene Login-Seite um den Redirect-Loop-Bug in Payload zu umgehen.
|
|
||||||
* Diese Seite rendert ein einfaches Login-Formular das direkt mit der Payload API kommuniziert.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { headers, cookies } from 'next/headers'
|
|
||||||
import { redirect } from 'next/navigation'
|
|
||||||
import { getPayload } from 'payload'
|
|
||||||
import configPromise from '@payload-config'
|
|
||||||
|
|
||||||
type SearchParams = {
|
|
||||||
redirect?: string
|
|
||||||
error?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export default async function LoginPage({
|
|
||||||
searchParams,
|
|
||||||
}: {
|
|
||||||
searchParams: Promise<SearchParams>
|
|
||||||
}) {
|
|
||||||
const resolvedParams = await searchParams
|
|
||||||
const payload = await getPayload({ config: configPromise })
|
|
||||||
|
|
||||||
// Prüfe ob User bereits eingeloggt ist
|
|
||||||
const headersList = await headers()
|
|
||||||
const cookieStore = await cookies()
|
|
||||||
const token = cookieStore.get('payload-token')?.value
|
|
||||||
|
|
||||||
if (token) {
|
|
||||||
try {
|
|
||||||
const { user } = await payload.auth({ headers: headersList })
|
|
||||||
if (user) {
|
|
||||||
// User ist eingeloggt - weiterleiten
|
|
||||||
const redirectTo = resolvedParams.redirect || '/admin'
|
|
||||||
// Verhindere Redirect-Loop
|
|
||||||
if (!redirectTo.includes('/login')) {
|
|
||||||
redirect(redirectTo)
|
|
||||||
}
|
|
||||||
redirect('/admin')
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
// Token ungültig - weiter zum Login
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Bestimme Redirect-Ziel (verhindere Loop)
|
|
||||||
let redirectTarget = resolvedParams.redirect || '/admin'
|
|
||||||
if (redirectTarget.includes('/login')) {
|
|
||||||
redirectTarget = '/admin'
|
|
||||||
}
|
|
||||||
|
|
||||||
const error = resolvedParams.error
|
|
||||||
|
|
||||||
return (
|
|
||||||
<html lang="de">
|
|
||||||
<head>
|
|
||||||
<meta charSet="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
||||||
<title>Anmelden - Payload</title>
|
|
||||||
<style>{`
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
|
|
||||||
background: #0f0f0f;
|
|
||||||
color: #fff;
|
|
||||||
min-height: 100vh;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
.login-container {
|
|
||||||
background: #1a1a1a;
|
|
||||||
padding: 2rem;
|
|
||||||
border-radius: 8px;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 400px;
|
|
||||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
|
|
||||||
}
|
|
||||||
.logo {
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 2rem;
|
|
||||||
}
|
|
||||||
.logo svg {
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
}
|
|
||||||
h1 {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
font-weight: 600;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 1.5rem;
|
|
||||||
}
|
|
||||||
.form-group {
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
label {
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
font-size: 0.875rem;
|
|
||||||
color: #a0a0a0;
|
|
||||||
}
|
|
||||||
input {
|
|
||||||
width: 100%;
|
|
||||||
padding: 0.75rem;
|
|
||||||
border: 1px solid #333;
|
|
||||||
border-radius: 4px;
|
|
||||||
background: #0f0f0f;
|
|
||||||
color: #fff;
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
input:focus {
|
|
||||||
outline: none;
|
|
||||||
border-color: #3b82f6;
|
|
||||||
}
|
|
||||||
button {
|
|
||||||
width: 100%;
|
|
||||||
padding: 0.75rem;
|
|
||||||
border: none;
|
|
||||||
border-radius: 4px;
|
|
||||||
background: #3b82f6;
|
|
||||||
color: #fff;
|
|
||||||
font-size: 1rem;
|
|
||||||
font-weight: 500;
|
|
||||||
cursor: pointer;
|
|
||||||
margin-top: 1rem;
|
|
||||||
}
|
|
||||||
button:hover {
|
|
||||||
background: #2563eb;
|
|
||||||
}
|
|
||||||
.error {
|
|
||||||
background: #dc2626;
|
|
||||||
color: #fff;
|
|
||||||
padding: 0.75rem;
|
|
||||||
border-radius: 4px;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
font-size: 0.875rem;
|
|
||||||
}
|
|
||||||
`}</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div className="login-container">
|
|
||||||
<div className="logo">
|
|
||||||
<svg viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M11.5 3L3 7.5V17.5L11.5 22L20 17.5V7.5L11.5 3Z" stroke="white" strokeWidth="2"/>
|
|
||||||
<path d="M11.5 12L3 7.5" stroke="white" strokeWidth="2"/>
|
|
||||||
<path d="M11.5 12V22" stroke="white" strokeWidth="2"/>
|
|
||||||
<path d="M11.5 12L20 7.5" stroke="white" strokeWidth="2"/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<h1>Anmelden</h1>
|
|
||||||
|
|
||||||
{error && (
|
|
||||||
<div className="error">
|
|
||||||
{error === 'invalid' ? 'E-Mail oder Passwort ist falsch.' : error}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<form action="/api/users/login" method="POST">
|
|
||||||
<input type="hidden" name="redirect" value={redirectTarget} />
|
|
||||||
|
|
||||||
<div className="form-group">
|
|
||||||
<label htmlFor="email">E-Mail</label>
|
|
||||||
<input
|
|
||||||
type="email"
|
|
||||||
id="email"
|
|
||||||
name="email"
|
|
||||||
required
|
|
||||||
autoComplete="email"
|
|
||||||
autoFocus
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div className="form-group">
|
|
||||||
<label htmlFor="password">Passwort</label>
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
id="password"
|
|
||||||
name="password"
|
|
||||||
required
|
|
||||||
autoComplete="current-password"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button type="submit">Anmelden</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
export const GET = async () => {
|
|
||||||
return Response.json({
|
|
||||||
message: 'This is an example of a custom route.',
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import type { CollectionConfig } from 'payload'
|
import type { CollectionConfig, Access } from 'payload'
|
||||||
import { auditUserAfterChange, auditUserAfterDelete } from '../hooks/auditUserChanges'
|
import { auditUserAfterChange, auditUserAfterDelete } from '../hooks/auditUserChanges'
|
||||||
import {
|
import {
|
||||||
auditAfterLogin,
|
auditAfterLogin,
|
||||||
|
|
@ -6,11 +6,29 @@ import {
|
||||||
auditAfterForgotPassword,
|
auditAfterForgotPassword,
|
||||||
} from '../hooks/auditAuthEvents'
|
} from '../hooks/auditAuthEvents'
|
||||||
|
|
||||||
|
// Users können ihren eigenen Account bearbeiten
|
||||||
|
const canUpdateOwnAccount: Access = ({ req: { user }, id }) => {
|
||||||
|
// Super Admins können alle User bearbeiten
|
||||||
|
if (user?.isSuperAdmin) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// User können ihren eigenen Account bearbeiten
|
||||||
|
if (user?.id && id && String(user.id) === String(id)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
// Ansonsten Multi-Tenant Access Control
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
export const Users: CollectionConfig = {
|
export const Users: CollectionConfig = {
|
||||||
slug: 'users',
|
slug: 'users',
|
||||||
admin: {
|
admin: {
|
||||||
useAsTitle: 'email',
|
useAsTitle: 'email',
|
||||||
},
|
},
|
||||||
|
access: {
|
||||||
|
// Erlaubt Benutzern, ihren eigenen Account zu aktualisieren
|
||||||
|
update: canUpdateOwnAccount,
|
||||||
|
},
|
||||||
auth: {
|
auth: {
|
||||||
// Cookie-Konfiguration für Production hinter Reverse-Proxy (Cloudflare/Caddy)
|
// Cookie-Konfiguration für Production hinter Reverse-Proxy (Cloudflare/Caddy)
|
||||||
cookies: {
|
cookies: {
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,12 @@ export const SEOSettings: GlobalConfig = {
|
||||||
group: 'Einstellungen',
|
group: 'Einstellungen',
|
||||||
description: 'Globale SEO-Konfiguration und Schema.org Daten',
|
description: 'Globale SEO-Konfiguration und Schema.org Daten',
|
||||||
},
|
},
|
||||||
|
access: {
|
||||||
|
// Alle angemeldeten Benutzer können lesen
|
||||||
|
read: ({ req: { user } }) => Boolean(user),
|
||||||
|
// Nur Super Admins können bearbeiten
|
||||||
|
update: ({ req: { user } }) => Boolean(user?.isSuperAdmin),
|
||||||
|
},
|
||||||
fields: [
|
fields: [
|
||||||
// === META DEFAULTS ===
|
// === META DEFAULTS ===
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
// Zentrale Cache-Key Definitionen
|
|
||||||
export const CacheKeys = {
|
|
||||||
// Pages
|
|
||||||
page: (slug: string, locale: string) => `page:${locale}:${slug}`,
|
|
||||||
pages: (tenant: string, locale: string) => `pages:${tenant}:${locale}`,
|
|
||||||
|
|
||||||
// Posts
|
|
||||||
post: (slug: string, locale: string) => `post:${locale}:${slug}`,
|
|
||||||
posts: (tenant: string, locale: string) => `posts:${tenant}:${locale}`,
|
|
||||||
postsList: (tenant: string, locale: string, page: number) =>
|
|
||||||
`posts:${tenant}:${locale}:list:${page}`,
|
|
||||||
|
|
||||||
// Navigation
|
|
||||||
navigation: (tenant: string, locale: string) => `nav:${tenant}:${locale}`,
|
|
||||||
|
|
||||||
// Categories
|
|
||||||
categories: (tenant: string, locale: string) => `categories:${tenant}:${locale}`,
|
|
||||||
|
|
||||||
// Global Settings
|
|
||||||
globals: (tenant: string, slug: string) => `global:${tenant}:${slug}`,
|
|
||||||
|
|
||||||
// Tenant-spezifisch
|
|
||||||
tenant: (slug: string) => `tenant:${slug}`,
|
|
||||||
}
|
|
||||||
|
|
||||||
// TTL Werte (in Sekunden)
|
|
||||||
export const CacheTTL = {
|
|
||||||
SHORT: 60, // 1 Minute
|
|
||||||
DEFAULT: 300, // 5 Minuten
|
|
||||||
MEDIUM: 900, // 15 Minuten
|
|
||||||
LONG: 3600, // 1 Stunde
|
|
||||||
VERY_LONG: 86400, // 24 Stunden
|
|
||||||
}
|
|
||||||
|
|
@ -1,963 +0,0 @@
|
||||||
{
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.users_sessions": {
|
|
||||||
"name": "users_sessions",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"_order": {
|
|
||||||
"name": "_order",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"_parent_id": {
|
|
||||||
"name": "_parent_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"expires_at": {
|
|
||||||
"name": "expires_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"users_sessions_order_idx": {
|
|
||||||
"name": "users_sessions_order_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "_order",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"users_sessions_parent_id_idx": {
|
|
||||||
"name": "users_sessions_parent_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "_parent_id",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"users_sessions_parent_id_fk": {
|
|
||||||
"name": "users_sessions_parent_id_fk",
|
|
||||||
"tableFrom": "users_sessions",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"_parent_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"reset_password_token": {
|
|
||||||
"name": "reset_password_token",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"reset_password_expiration": {
|
|
||||||
"name": "reset_password_expiration",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"salt": {
|
|
||||||
"name": "salt",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"hash": {
|
|
||||||
"name": "hash",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"login_attempts": {
|
|
||||||
"name": "login_attempts",
|
|
||||||
"type": "numeric",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"lock_until": {
|
|
||||||
"name": "lock_until",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"users_updated_at_idx": {
|
|
||||||
"name": "users_updated_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "updated_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"users_created_at_idx": {
|
|
||||||
"name": "users_created_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "created_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"users_email_idx": {
|
|
||||||
"name": "users_email_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "email",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": true,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.media": {
|
|
||||||
"name": "media",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"alt": {
|
|
||||||
"name": "alt",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
},
|
|
||||||
"url": {
|
|
||||||
"name": "url",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"thumbnail_u_r_l": {
|
|
||||||
"name": "thumbnail_u_r_l",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"filename": {
|
|
||||||
"name": "filename",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"mime_type": {
|
|
||||||
"name": "mime_type",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"filesize": {
|
|
||||||
"name": "filesize",
|
|
||||||
"type": "numeric",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"width": {
|
|
||||||
"name": "width",
|
|
||||||
"type": "numeric",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"height": {
|
|
||||||
"name": "height",
|
|
||||||
"type": "numeric",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"focal_x": {
|
|
||||||
"name": "focal_x",
|
|
||||||
"type": "numeric",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"focal_y": {
|
|
||||||
"name": "focal_y",
|
|
||||||
"type": "numeric",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"media_updated_at_idx": {
|
|
||||||
"name": "media_updated_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "updated_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"media_created_at_idx": {
|
|
||||||
"name": "media_created_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "created_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"media_filename_idx": {
|
|
||||||
"name": "media_filename_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "filename",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": true,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.payload_kv": {
|
|
||||||
"name": "payload_kv",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"key": {
|
|
||||||
"name": "key",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"data": {
|
|
||||||
"name": "data",
|
|
||||||
"type": "jsonb",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"payload_kv_key_idx": {
|
|
||||||
"name": "payload_kv_key_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "key",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": true,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.payload_locked_documents": {
|
|
||||||
"name": "payload_locked_documents",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"global_slug": {
|
|
||||||
"name": "global_slug",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"payload_locked_documents_global_slug_idx": {
|
|
||||||
"name": "payload_locked_documents_global_slug_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "global_slug",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_locked_documents_updated_at_idx": {
|
|
||||||
"name": "payload_locked_documents_updated_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "updated_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_locked_documents_created_at_idx": {
|
|
||||||
"name": "payload_locked_documents_created_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "created_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.payload_locked_documents_rels": {
|
|
||||||
"name": "payload_locked_documents_rels",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"order": {
|
|
||||||
"name": "order",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"parent_id": {
|
|
||||||
"name": "parent_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"path": {
|
|
||||||
"name": "path",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"users_id": {
|
|
||||||
"name": "users_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"media_id": {
|
|
||||||
"name": "media_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"payload_locked_documents_rels_order_idx": {
|
|
||||||
"name": "payload_locked_documents_rels_order_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "order",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_locked_documents_rels_parent_idx": {
|
|
||||||
"name": "payload_locked_documents_rels_parent_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "parent_id",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_locked_documents_rels_path_idx": {
|
|
||||||
"name": "payload_locked_documents_rels_path_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "path",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_locked_documents_rels_users_id_idx": {
|
|
||||||
"name": "payload_locked_documents_rels_users_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "users_id",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_locked_documents_rels_media_id_idx": {
|
|
||||||
"name": "payload_locked_documents_rels_media_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "media_id",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"payload_locked_documents_rels_parent_fk": {
|
|
||||||
"name": "payload_locked_documents_rels_parent_fk",
|
|
||||||
"tableFrom": "payload_locked_documents_rels",
|
|
||||||
"tableTo": "payload_locked_documents",
|
|
||||||
"columnsFrom": [
|
|
||||||
"parent_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"payload_locked_documents_rels_users_fk": {
|
|
||||||
"name": "payload_locked_documents_rels_users_fk",
|
|
||||||
"tableFrom": "payload_locked_documents_rels",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"users_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"payload_locked_documents_rels_media_fk": {
|
|
||||||
"name": "payload_locked_documents_rels_media_fk",
|
|
||||||
"tableFrom": "payload_locked_documents_rels",
|
|
||||||
"tableTo": "media",
|
|
||||||
"columnsFrom": [
|
|
||||||
"media_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.payload_preferences": {
|
|
||||||
"name": "payload_preferences",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"key": {
|
|
||||||
"name": "key",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"name": "value",
|
|
||||||
"type": "jsonb",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"payload_preferences_key_idx": {
|
|
||||||
"name": "payload_preferences_key_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "key",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_preferences_updated_at_idx": {
|
|
||||||
"name": "payload_preferences_updated_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "updated_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_preferences_created_at_idx": {
|
|
||||||
"name": "payload_preferences_created_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "created_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.payload_preferences_rels": {
|
|
||||||
"name": "payload_preferences_rels",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"order": {
|
|
||||||
"name": "order",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"parent_id": {
|
|
||||||
"name": "parent_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"path": {
|
|
||||||
"name": "path",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"users_id": {
|
|
||||||
"name": "users_id",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"payload_preferences_rels_order_idx": {
|
|
||||||
"name": "payload_preferences_rels_order_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "order",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_preferences_rels_parent_idx": {
|
|
||||||
"name": "payload_preferences_rels_parent_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "parent_id",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_preferences_rels_path_idx": {
|
|
||||||
"name": "payload_preferences_rels_path_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "path",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_preferences_rels_users_id_idx": {
|
|
||||||
"name": "payload_preferences_rels_users_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "users_id",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"payload_preferences_rels_parent_fk": {
|
|
||||||
"name": "payload_preferences_rels_parent_fk",
|
|
||||||
"tableFrom": "payload_preferences_rels",
|
|
||||||
"tableTo": "payload_preferences",
|
|
||||||
"columnsFrom": [
|
|
||||||
"parent_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"payload_preferences_rels_users_fk": {
|
|
||||||
"name": "payload_preferences_rels_users_fk",
|
|
||||||
"tableFrom": "payload_preferences_rels",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"users_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.payload_migrations": {
|
|
||||||
"name": "payload_migrations",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"batch": {
|
|
||||||
"name": "batch",
|
|
||||||
"type": "numeric",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"updated_at": {
|
|
||||||
"name": "updated_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
},
|
|
||||||
"created_at": {
|
|
||||||
"name": "created_at",
|
|
||||||
"type": "timestamp(3) with time zone",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "now()"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"payload_migrations_updated_at_idx": {
|
|
||||||
"name": "payload_migrations_updated_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "updated_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"payload_migrations_created_at_idx": {
|
|
||||||
"name": "payload_migrations_created_at_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "created_at",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"id": "8f5aa12b-08f6-4857-a473-f525e7f7ee01",
|
|
||||||
"prevId": "00000000-0000-0000-0000-000000000000"
|
|
||||||
}
|
|
||||||
|
|
@ -1,133 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE TABLE "users_sessions" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone,
|
|
||||||
"expires_at" timestamp(3) with time zone NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "users" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"email" varchar NOT NULL,
|
|
||||||
"reset_password_token" varchar,
|
|
||||||
"reset_password_expiration" timestamp(3) with time zone,
|
|
||||||
"salt" varchar,
|
|
||||||
"hash" varchar,
|
|
||||||
"login_attempts" numeric DEFAULT 0,
|
|
||||||
"lock_until" timestamp(3) with time zone
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "media" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"alt" varchar NOT NULL,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"url" varchar,
|
|
||||||
"thumbnail_u_r_l" varchar,
|
|
||||||
"filename" varchar,
|
|
||||||
"mime_type" varchar,
|
|
||||||
"filesize" numeric,
|
|
||||||
"width" numeric,
|
|
||||||
"height" numeric,
|
|
||||||
"focal_x" numeric,
|
|
||||||
"focal_y" numeric
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "payload_kv" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"key" varchar NOT NULL,
|
|
||||||
"data" jsonb NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "payload_locked_documents" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"global_slug" varchar,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "payload_locked_documents_rels" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"order" integer,
|
|
||||||
"parent_id" integer NOT NULL,
|
|
||||||
"path" varchar NOT NULL,
|
|
||||||
"users_id" integer,
|
|
||||||
"media_id" integer
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "payload_preferences" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"key" varchar,
|
|
||||||
"value" jsonb,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "payload_preferences_rels" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"order" integer,
|
|
||||||
"parent_id" integer NOT NULL,
|
|
||||||
"path" varchar NOT NULL,
|
|
||||||
"users_id" integer
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "payload_migrations" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"name" varchar,
|
|
||||||
"batch" numeric,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE "users_sessions" ADD CONSTRAINT "users_sessions_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."payload_locked_documents"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_users_fk" FOREIGN KEY ("users_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_media_fk" FOREIGN KEY ("media_id") REFERENCES "public"."media"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_preferences_rels" ADD CONSTRAINT "payload_preferences_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."payload_preferences"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_preferences_rels" ADD CONSTRAINT "payload_preferences_rels_users_fk" FOREIGN KEY ("users_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "users_sessions_order_idx" ON "users_sessions" USING btree ("_order");
|
|
||||||
CREATE INDEX "users_sessions_parent_id_idx" ON "users_sessions" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "users_updated_at_idx" ON "users" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "users_created_at_idx" ON "users" USING btree ("created_at");
|
|
||||||
CREATE UNIQUE INDEX "users_email_idx" ON "users" USING btree ("email");
|
|
||||||
CREATE INDEX "media_updated_at_idx" ON "media" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "media_created_at_idx" ON "media" USING btree ("created_at");
|
|
||||||
CREATE UNIQUE INDEX "media_filename_idx" ON "media" USING btree ("filename");
|
|
||||||
CREATE UNIQUE INDEX "payload_kv_key_idx" ON "payload_kv" USING btree ("key");
|
|
||||||
CREATE INDEX "payload_locked_documents_global_slug_idx" ON "payload_locked_documents" USING btree ("global_slug");
|
|
||||||
CREATE INDEX "payload_locked_documents_updated_at_idx" ON "payload_locked_documents" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "payload_locked_documents_created_at_idx" ON "payload_locked_documents" USING btree ("created_at");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_order_idx" ON "payload_locked_documents_rels" USING btree ("order");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_parent_idx" ON "payload_locked_documents_rels" USING btree ("parent_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_path_idx" ON "payload_locked_documents_rels" USING btree ("path");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_users_id_idx" ON "payload_locked_documents_rels" USING btree ("users_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_media_id_idx" ON "payload_locked_documents_rels" USING btree ("media_id");
|
|
||||||
CREATE INDEX "payload_preferences_key_idx" ON "payload_preferences" USING btree ("key");
|
|
||||||
CREATE INDEX "payload_preferences_updated_at_idx" ON "payload_preferences" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "payload_preferences_created_at_idx" ON "payload_preferences" USING btree ("created_at");
|
|
||||||
CREATE INDEX "payload_preferences_rels_order_idx" ON "payload_preferences_rels" USING btree ("order");
|
|
||||||
CREATE INDEX "payload_preferences_rels_parent_idx" ON "payload_preferences_rels" USING btree ("parent_id");
|
|
||||||
CREATE INDEX "payload_preferences_rels_path_idx" ON "payload_preferences_rels" USING btree ("path");
|
|
||||||
CREATE INDEX "payload_preferences_rels_users_id_idx" ON "payload_preferences_rels" USING btree ("users_id");
|
|
||||||
CREATE INDEX "payload_migrations_updated_at_idx" ON "payload_migrations" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "payload_migrations_created_at_idx" ON "payload_migrations" USING btree ("created_at");`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP TABLE "users_sessions" CASCADE;
|
|
||||||
DROP TABLE "users" CASCADE;
|
|
||||||
DROP TABLE "media" CASCADE;
|
|
||||||
DROP TABLE "payload_kv" CASCADE;
|
|
||||||
DROP TABLE "payload_locked_documents" CASCADE;
|
|
||||||
DROP TABLE "payload_locked_documents_rels" CASCADE;
|
|
||||||
DROP TABLE "payload_preferences" CASCADE;
|
|
||||||
DROP TABLE "payload_preferences_rels" CASCADE;
|
|
||||||
DROP TABLE "payload_migrations" CASCADE;`)
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,62 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE TABLE "users_tenants" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "tenants_domains" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"domain" varchar NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "tenants" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"slug" varchar NOT NULL,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN "tenant_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "tenants_id" integer;
|
|
||||||
ALTER TABLE "users_tenants" ADD CONSTRAINT "users_tenants_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "users_tenants" ADD CONSTRAINT "users_tenants_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "tenants_domains" ADD CONSTRAINT "tenants_domains_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."tenants"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "users_tenants_order_idx" ON "users_tenants" USING btree ("_order");
|
|
||||||
CREATE INDEX "users_tenants_parent_id_idx" ON "users_tenants" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "users_tenants_tenant_idx" ON "users_tenants" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX "tenants_domains_order_idx" ON "tenants_domains" USING btree ("_order");
|
|
||||||
CREATE INDEX "tenants_domains_parent_id_idx" ON "tenants_domains" USING btree ("_parent_id");
|
|
||||||
CREATE UNIQUE INDEX "tenants_slug_idx" ON "tenants" USING btree ("slug");
|
|
||||||
CREATE INDEX "tenants_updated_at_idx" ON "tenants" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "tenants_created_at_idx" ON "tenants" USING btree ("created_at");
|
|
||||||
ALTER TABLE "media" ADD CONSTRAINT "media_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_tenants_fk" FOREIGN KEY ("tenants_id") REFERENCES "public"."tenants"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "media_tenant_idx" ON "media" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_tenants_id_idx" ON "payload_locked_documents_rels" USING btree ("tenants_id");`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
ALTER TABLE "users_tenants" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "tenants_domains" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "tenants" DISABLE ROW LEVEL SECURITY;
|
|
||||||
DROP TABLE "users_tenants" CASCADE;
|
|
||||||
DROP TABLE "tenants_domains" CASCADE;
|
|
||||||
DROP TABLE "tenants" CASCADE;
|
|
||||||
ALTER TABLE "media" DROP CONSTRAINT "media_tenant_id_tenants_id_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_tenants_fk";
|
|
||||||
|
|
||||||
DROP INDEX "media_tenant_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_tenants_id_idx";
|
|
||||||
ALTER TABLE "media" DROP COLUMN "tenant_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "tenants_id";`)
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,466 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE TYPE "public"."enum_pages_status" AS ENUM('draft', 'published');
|
|
||||||
CREATE TYPE "public"."enum_posts_status" AS ENUM('draft', 'published');
|
|
||||||
CREATE TYPE "public"."enum_social_links_platform" AS ENUM('facebook', 'x', 'instagram', 'youtube', 'linkedin', 'xing');
|
|
||||||
CREATE TYPE "public"."enum_forms_confirmation_type" AS ENUM('message', 'redirect');
|
|
||||||
CREATE TYPE "public"."enum_redirects_to_type" AS ENUM('reference', 'custom');
|
|
||||||
CREATE TYPE "public"."enum_navigation_main_menu_submenu_link_type" AS ENUM('page', 'custom');
|
|
||||||
CREATE TYPE "public"."enum_navigation_main_menu_type" AS ENUM('page', 'custom', 'submenu');
|
|
||||||
CREATE TYPE "public"."enum_navigation_footer_menu_link_type" AS ENUM('page', 'custom');
|
|
||||||
CREATE TABLE "pages" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer,
|
|
||||||
"title" varchar NOT NULL,
|
|
||||||
"slug" varchar NOT NULL,
|
|
||||||
"hero_image_id" integer,
|
|
||||||
"hero_headline" varchar,
|
|
||||||
"hero_subline" varchar,
|
|
||||||
"content" jsonb,
|
|
||||||
"seo_meta_title" varchar,
|
|
||||||
"seo_meta_description" varchar,
|
|
||||||
"seo_og_image_id" integer,
|
|
||||||
"status" "enum_pages_status" DEFAULT 'draft',
|
|
||||||
"published_at" timestamp(3) with time zone,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "posts" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer,
|
|
||||||
"title" varchar NOT NULL,
|
|
||||||
"slug" varchar NOT NULL,
|
|
||||||
"excerpt" varchar,
|
|
||||||
"content" jsonb,
|
|
||||||
"featured_image_id" integer,
|
|
||||||
"category_id" integer,
|
|
||||||
"author_id" integer,
|
|
||||||
"published_at" timestamp(3) with time zone,
|
|
||||||
"status" "enum_posts_status" DEFAULT 'draft',
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "categories" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"slug" varchar NOT NULL,
|
|
||||||
"description" varchar,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "social_links" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer,
|
|
||||||
"platform" "enum_social_links_platform" NOT NULL,
|
|
||||||
"url" varchar NOT NULL,
|
|
||||||
"is_active" boolean DEFAULT true,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_blocks_checkbox" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"label" varchar,
|
|
||||||
"width" numeric,
|
|
||||||
"required" boolean,
|
|
||||||
"default_value" boolean,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_blocks_email" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"label" varchar,
|
|
||||||
"width" numeric,
|
|
||||||
"required" boolean,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_blocks_message" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"message" jsonb,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_blocks_number" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"label" varchar,
|
|
||||||
"width" numeric,
|
|
||||||
"default_value" numeric,
|
|
||||||
"required" boolean,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_blocks_select_options" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" varchar NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"label" varchar NOT NULL,
|
|
||||||
"value" varchar NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_blocks_select" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"label" varchar,
|
|
||||||
"width" numeric,
|
|
||||||
"default_value" varchar,
|
|
||||||
"placeholder" varchar,
|
|
||||||
"required" boolean,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_blocks_text" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"label" varchar,
|
|
||||||
"width" numeric,
|
|
||||||
"default_value" varchar,
|
|
||||||
"required" boolean,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_blocks_textarea" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"label" varchar,
|
|
||||||
"width" numeric,
|
|
||||||
"default_value" varchar,
|
|
||||||
"required" boolean,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms_emails" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"email_to" varchar,
|
|
||||||
"cc" varchar,
|
|
||||||
"bcc" varchar,
|
|
||||||
"reply_to" varchar,
|
|
||||||
"email_from" varchar,
|
|
||||||
"subject" varchar DEFAULT 'You''ve received a new message.' NOT NULL,
|
|
||||||
"message" jsonb
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "forms" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"title" varchar NOT NULL,
|
|
||||||
"submit_button_label" varchar,
|
|
||||||
"confirmation_type" "enum_forms_confirmation_type" DEFAULT 'message',
|
|
||||||
"confirmation_message" jsonb,
|
|
||||||
"redirect_url" varchar,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "form_submissions_submission_data" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"field" varchar NOT NULL,
|
|
||||||
"value" varchar NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "form_submissions" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"form_id" integer NOT NULL,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "redirects" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"from" varchar NOT NULL,
|
|
||||||
"to_type" "enum_redirects_to_type" DEFAULT 'reference',
|
|
||||||
"to_url" varchar,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "site_settings" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"site_name" varchar DEFAULT 'porwoll.de',
|
|
||||||
"site_tagline" varchar,
|
|
||||||
"logo_id" integer,
|
|
||||||
"favicon_id" integer,
|
|
||||||
"contact_email" varchar,
|
|
||||||
"contact_phone" varchar,
|
|
||||||
"contact_address" varchar,
|
|
||||||
"footer_copyright_text" varchar,
|
|
||||||
"footer_show_social_links" boolean DEFAULT true,
|
|
||||||
"seo_default_meta_title" varchar,
|
|
||||||
"seo_default_meta_description" varchar,
|
|
||||||
"seo_default_og_image_id" integer,
|
|
||||||
"updated_at" timestamp(3) with time zone,
|
|
||||||
"created_at" timestamp(3) with time zone
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "navigation_main_menu_submenu" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" varchar NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"label" varchar,
|
|
||||||
"link_type" "enum_navigation_main_menu_submenu_link_type" DEFAULT 'page',
|
|
||||||
"page_id" integer,
|
|
||||||
"url" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "navigation_main_menu" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"label" varchar NOT NULL,
|
|
||||||
"type" "enum_navigation_main_menu_type" DEFAULT 'page',
|
|
||||||
"page_id" integer,
|
|
||||||
"url" varchar,
|
|
||||||
"open_in_new_tab" boolean DEFAULT false
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "navigation_footer_menu" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"label" varchar NOT NULL,
|
|
||||||
"link_type" "enum_navigation_footer_menu_link_type" DEFAULT 'page',
|
|
||||||
"page_id" integer,
|
|
||||||
"url" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "navigation" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"updated_at" timestamp(3) with time zone,
|
|
||||||
"created_at" timestamp(3) with time zone
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "pages_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "posts_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "categories_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "social_links_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "forms_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "form_submissions_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "redirects_id" integer;
|
|
||||||
ALTER TABLE "pages" ADD CONSTRAINT "pages_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages" ADD CONSTRAINT "pages_hero_image_id_media_id_fk" FOREIGN KEY ("hero_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages" ADD CONSTRAINT "pages_seo_og_image_id_media_id_fk" FOREIGN KEY ("seo_og_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "posts" ADD CONSTRAINT "posts_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "posts" ADD CONSTRAINT "posts_featured_image_id_media_id_fk" FOREIGN KEY ("featured_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "posts" ADD CONSTRAINT "posts_category_id_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "public"."categories"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "posts" ADD CONSTRAINT "posts_author_id_users_id_fk" FOREIGN KEY ("author_id") REFERENCES "public"."users"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "categories" ADD CONSTRAINT "categories_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "social_links" ADD CONSTRAINT "social_links_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_blocks_checkbox" ADD CONSTRAINT "forms_blocks_checkbox_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_blocks_email" ADD CONSTRAINT "forms_blocks_email_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_blocks_message" ADD CONSTRAINT "forms_blocks_message_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_blocks_number" ADD CONSTRAINT "forms_blocks_number_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_blocks_select_options" ADD CONSTRAINT "forms_blocks_select_options_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms_blocks_select"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_blocks_select" ADD CONSTRAINT "forms_blocks_select_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_blocks_text" ADD CONSTRAINT "forms_blocks_text_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_blocks_textarea" ADD CONSTRAINT "forms_blocks_textarea_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "forms_emails" ADD CONSTRAINT "forms_emails_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "form_submissions_submission_data" ADD CONSTRAINT "form_submissions_submission_data_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."form_submissions"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "form_submissions" ADD CONSTRAINT "form_submissions_form_id_forms_id_fk" FOREIGN KEY ("form_id") REFERENCES "public"."forms"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "site_settings" ADD CONSTRAINT "site_settings_logo_id_media_id_fk" FOREIGN KEY ("logo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "site_settings" ADD CONSTRAINT "site_settings_favicon_id_media_id_fk" FOREIGN KEY ("favicon_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "site_settings" ADD CONSTRAINT "site_settings_seo_default_og_image_id_media_id_fk" FOREIGN KEY ("seo_default_og_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "navigation_main_menu_submenu" ADD CONSTRAINT "navigation_main_menu_submenu_page_id_pages_id_fk" FOREIGN KEY ("page_id") REFERENCES "public"."pages"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "navigation_main_menu_submenu" ADD CONSTRAINT "navigation_main_menu_submenu_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."navigation_main_menu"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "navigation_main_menu" ADD CONSTRAINT "navigation_main_menu_page_id_pages_id_fk" FOREIGN KEY ("page_id") REFERENCES "public"."pages"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "navigation_main_menu" ADD CONSTRAINT "navigation_main_menu_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."navigation"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "navigation_footer_menu" ADD CONSTRAINT "navigation_footer_menu_page_id_pages_id_fk" FOREIGN KEY ("page_id") REFERENCES "public"."pages"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "navigation_footer_menu" ADD CONSTRAINT "navigation_footer_menu_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."navigation"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "pages_tenant_idx" ON "pages" USING btree ("tenant_id");
|
|
||||||
CREATE UNIQUE INDEX "pages_slug_idx" ON "pages" USING btree ("slug");
|
|
||||||
CREATE INDEX "pages_hero_hero_image_idx" ON "pages" USING btree ("hero_image_id");
|
|
||||||
CREATE INDEX "pages_seo_seo_og_image_idx" ON "pages" USING btree ("seo_og_image_id");
|
|
||||||
CREATE INDEX "pages_updated_at_idx" ON "pages" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "pages_created_at_idx" ON "pages" USING btree ("created_at");
|
|
||||||
CREATE INDEX "posts_tenant_idx" ON "posts" USING btree ("tenant_id");
|
|
||||||
CREATE UNIQUE INDEX "posts_slug_idx" ON "posts" USING btree ("slug");
|
|
||||||
CREATE INDEX "posts_featured_image_idx" ON "posts" USING btree ("featured_image_id");
|
|
||||||
CREATE INDEX "posts_category_idx" ON "posts" USING btree ("category_id");
|
|
||||||
CREATE INDEX "posts_author_idx" ON "posts" USING btree ("author_id");
|
|
||||||
CREATE INDEX "posts_updated_at_idx" ON "posts" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "posts_created_at_idx" ON "posts" USING btree ("created_at");
|
|
||||||
CREATE INDEX "categories_tenant_idx" ON "categories" USING btree ("tenant_id");
|
|
||||||
CREATE UNIQUE INDEX "categories_slug_idx" ON "categories" USING btree ("slug");
|
|
||||||
CREATE INDEX "categories_updated_at_idx" ON "categories" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "categories_created_at_idx" ON "categories" USING btree ("created_at");
|
|
||||||
CREATE INDEX "social_links_tenant_idx" ON "social_links" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX "social_links_updated_at_idx" ON "social_links" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "social_links_created_at_idx" ON "social_links" USING btree ("created_at");
|
|
||||||
CREATE INDEX "forms_blocks_checkbox_order_idx" ON "forms_blocks_checkbox" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_blocks_checkbox_parent_id_idx" ON "forms_blocks_checkbox" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_blocks_checkbox_path_idx" ON "forms_blocks_checkbox" USING btree ("_path");
|
|
||||||
CREATE INDEX "forms_blocks_email_order_idx" ON "forms_blocks_email" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_blocks_email_parent_id_idx" ON "forms_blocks_email" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_blocks_email_path_idx" ON "forms_blocks_email" USING btree ("_path");
|
|
||||||
CREATE INDEX "forms_blocks_message_order_idx" ON "forms_blocks_message" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_blocks_message_parent_id_idx" ON "forms_blocks_message" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_blocks_message_path_idx" ON "forms_blocks_message" USING btree ("_path");
|
|
||||||
CREATE INDEX "forms_blocks_number_order_idx" ON "forms_blocks_number" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_blocks_number_parent_id_idx" ON "forms_blocks_number" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_blocks_number_path_idx" ON "forms_blocks_number" USING btree ("_path");
|
|
||||||
CREATE INDEX "forms_blocks_select_options_order_idx" ON "forms_blocks_select_options" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_blocks_select_options_parent_id_idx" ON "forms_blocks_select_options" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_blocks_select_order_idx" ON "forms_blocks_select" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_blocks_select_parent_id_idx" ON "forms_blocks_select" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_blocks_select_path_idx" ON "forms_blocks_select" USING btree ("_path");
|
|
||||||
CREATE INDEX "forms_blocks_text_order_idx" ON "forms_blocks_text" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_blocks_text_parent_id_idx" ON "forms_blocks_text" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_blocks_text_path_idx" ON "forms_blocks_text" USING btree ("_path");
|
|
||||||
CREATE INDEX "forms_blocks_textarea_order_idx" ON "forms_blocks_textarea" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_blocks_textarea_parent_id_idx" ON "forms_blocks_textarea" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_blocks_textarea_path_idx" ON "forms_blocks_textarea" USING btree ("_path");
|
|
||||||
CREATE INDEX "forms_emails_order_idx" ON "forms_emails" USING btree ("_order");
|
|
||||||
CREATE INDEX "forms_emails_parent_id_idx" ON "forms_emails" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "forms_updated_at_idx" ON "forms" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "forms_created_at_idx" ON "forms" USING btree ("created_at");
|
|
||||||
CREATE INDEX "form_submissions_submission_data_order_idx" ON "form_submissions_submission_data" USING btree ("_order");
|
|
||||||
CREATE INDEX "form_submissions_submission_data_parent_id_idx" ON "form_submissions_submission_data" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "form_submissions_form_idx" ON "form_submissions" USING btree ("form_id");
|
|
||||||
CREATE INDEX "form_submissions_updated_at_idx" ON "form_submissions" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "form_submissions_created_at_idx" ON "form_submissions" USING btree ("created_at");
|
|
||||||
CREATE UNIQUE INDEX "redirects_from_idx" ON "redirects" USING btree ("from");
|
|
||||||
CREATE INDEX "redirects_updated_at_idx" ON "redirects" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "redirects_created_at_idx" ON "redirects" USING btree ("created_at");
|
|
||||||
CREATE INDEX "site_settings_logo_idx" ON "site_settings" USING btree ("logo_id");
|
|
||||||
CREATE INDEX "site_settings_favicon_idx" ON "site_settings" USING btree ("favicon_id");
|
|
||||||
CREATE INDEX "site_settings_seo_seo_default_og_image_idx" ON "site_settings" USING btree ("seo_default_og_image_id");
|
|
||||||
CREATE INDEX "navigation_main_menu_submenu_order_idx" ON "navigation_main_menu_submenu" USING btree ("_order");
|
|
||||||
CREATE INDEX "navigation_main_menu_submenu_parent_id_idx" ON "navigation_main_menu_submenu" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "navigation_main_menu_submenu_page_idx" ON "navigation_main_menu_submenu" USING btree ("page_id");
|
|
||||||
CREATE INDEX "navigation_main_menu_order_idx" ON "navigation_main_menu" USING btree ("_order");
|
|
||||||
CREATE INDEX "navigation_main_menu_parent_id_idx" ON "navigation_main_menu" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "navigation_main_menu_page_idx" ON "navigation_main_menu" USING btree ("page_id");
|
|
||||||
CREATE INDEX "navigation_footer_menu_order_idx" ON "navigation_footer_menu" USING btree ("_order");
|
|
||||||
CREATE INDEX "navigation_footer_menu_parent_id_idx" ON "navigation_footer_menu" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "navigation_footer_menu_page_idx" ON "navigation_footer_menu" USING btree ("page_id");
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_pages_fk" FOREIGN KEY ("pages_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_posts_fk" FOREIGN KEY ("posts_id") REFERENCES "public"."posts"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_categories_fk" FOREIGN KEY ("categories_id") REFERENCES "public"."categories"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_social_links_fk" FOREIGN KEY ("social_links_id") REFERENCES "public"."social_links"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_forms_fk" FOREIGN KEY ("forms_id") REFERENCES "public"."forms"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_form_submissions_fk" FOREIGN KEY ("form_submissions_id") REFERENCES "public"."form_submissions"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_redirects_fk" FOREIGN KEY ("redirects_id") REFERENCES "public"."redirects"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_pages_id_idx" ON "payload_locked_documents_rels" USING btree ("pages_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_posts_id_idx" ON "payload_locked_documents_rels" USING btree ("posts_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_categories_id_idx" ON "payload_locked_documents_rels" USING btree ("categories_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_social_links_id_idx" ON "payload_locked_documents_rels" USING btree ("social_links_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_forms_id_idx" ON "payload_locked_documents_rels" USING btree ("forms_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_form_submissions_id_idx" ON "payload_locked_documents_rels" USING btree ("form_submissions_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_redirects_id_idx" ON "payload_locked_documents_rels" USING btree ("redirects_id");`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
ALTER TABLE "pages" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "posts" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "categories" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "social_links" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_blocks_checkbox" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_blocks_email" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_blocks_message" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_blocks_number" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_blocks_select_options" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_blocks_select" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_blocks_text" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_blocks_textarea" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms_emails" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "forms" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "form_submissions_submission_data" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "form_submissions" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "redirects" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "site_settings" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "navigation_main_menu_submenu" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "navigation_main_menu" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "navigation_footer_menu" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "navigation" DISABLE ROW LEVEL SECURITY;
|
|
||||||
DROP TABLE "pages" CASCADE;
|
|
||||||
DROP TABLE "posts" CASCADE;
|
|
||||||
DROP TABLE "categories" CASCADE;
|
|
||||||
DROP TABLE "social_links" CASCADE;
|
|
||||||
DROP TABLE "forms_blocks_checkbox" CASCADE;
|
|
||||||
DROP TABLE "forms_blocks_email" CASCADE;
|
|
||||||
DROP TABLE "forms_blocks_message" CASCADE;
|
|
||||||
DROP TABLE "forms_blocks_number" CASCADE;
|
|
||||||
DROP TABLE "forms_blocks_select_options" CASCADE;
|
|
||||||
DROP TABLE "forms_blocks_select" CASCADE;
|
|
||||||
DROP TABLE "forms_blocks_text" CASCADE;
|
|
||||||
DROP TABLE "forms_blocks_textarea" CASCADE;
|
|
||||||
DROP TABLE "forms_emails" CASCADE;
|
|
||||||
DROP TABLE "forms" CASCADE;
|
|
||||||
DROP TABLE "form_submissions_submission_data" CASCADE;
|
|
||||||
DROP TABLE "form_submissions" CASCADE;
|
|
||||||
DROP TABLE "redirects" CASCADE;
|
|
||||||
DROP TABLE "site_settings" CASCADE;
|
|
||||||
DROP TABLE "navigation_main_menu_submenu" CASCADE;
|
|
||||||
DROP TABLE "navigation_main_menu" CASCADE;
|
|
||||||
DROP TABLE "navigation_footer_menu" CASCADE;
|
|
||||||
DROP TABLE "navigation" CASCADE;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_pages_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_posts_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_categories_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_social_links_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_forms_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_form_submissions_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_redirects_fk";
|
|
||||||
|
|
||||||
DROP INDEX "payload_locked_documents_rels_pages_id_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_posts_id_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_categories_id_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_social_links_id_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_forms_id_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_form_submissions_id_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_redirects_id_idx";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "pages_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "posts_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "categories_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "social_links_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "forms_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "form_submissions_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "redirects_id";
|
|
||||||
DROP TYPE "public"."enum_pages_status";
|
|
||||||
DROP TYPE "public"."enum_posts_status";
|
|
||||||
DROP TYPE "public"."enum_social_links_platform";
|
|
||||||
DROP TYPE "public"."enum_forms_confirmation_type";
|
|
||||||
DROP TYPE "public"."enum_redirects_to_type";
|
|
||||||
DROP TYPE "public"."enum_navigation_main_menu_submenu_link_type";
|
|
||||||
DROP TYPE "public"."enum_navigation_main_menu_type";
|
|
||||||
DROP TYPE "public"."enum_navigation_footer_menu_link_type";`)
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,253 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_hero_block_alignment" AS ENUM('left', 'center', 'right');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_hero_block_cta_style" AS ENUM('primary', 'secondary', 'outline');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_text_block_width" AS ENUM('narrow', 'medium', 'full');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_image_text_block_image_position" AS ENUM('left', 'right');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_card_grid_block_columns" AS ENUM('2', '3', '4');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_quote_block_style" AS ENUM('simple', 'highlighted', 'with-image');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_cta_block_buttons_style" AS ENUM('primary', 'secondary', 'outline');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_cta_block_background_color" AS ENUM('dark', 'light', 'accent');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_divider_block_style" AS ENUM('line', 'space', 'dots');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_divider_block_spacing" AS ENUM('small', 'medium', 'large');
|
|
||||||
CREATE TYPE "public"."enum_pages_blocks_video_block_aspect_ratio" AS ENUM('16:9', '4:3', '1:1');
|
|
||||||
CREATE TABLE "pages_blocks_hero_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"background_image_id" integer,
|
|
||||||
"headline" varchar NOT NULL,
|
|
||||||
"subline" varchar,
|
|
||||||
"alignment" "enum_pages_blocks_hero_block_alignment" DEFAULT 'center',
|
|
||||||
"overlay" boolean DEFAULT true,
|
|
||||||
"cta_text" varchar,
|
|
||||||
"cta_link" varchar,
|
|
||||||
"cta_style" "enum_pages_blocks_hero_block_cta_style" DEFAULT 'primary',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_text_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"content" jsonb NOT NULL,
|
|
||||||
"width" "enum_pages_blocks_text_block_width" DEFAULT 'medium',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_image_text_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"image_id" integer NOT NULL,
|
|
||||||
"image_position" "enum_pages_blocks_image_text_block_image_position" DEFAULT 'left',
|
|
||||||
"headline" varchar,
|
|
||||||
"content" jsonb,
|
|
||||||
"cta_text" varchar,
|
|
||||||
"cta_link" varchar,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_card_grid_block_cards" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" varchar NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"image_id" integer,
|
|
||||||
"title" varchar NOT NULL,
|
|
||||||
"description" varchar,
|
|
||||||
"link" varchar,
|
|
||||||
"link_text" varchar DEFAULT 'mehr'
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_card_grid_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"headline" varchar,
|
|
||||||
"columns" "enum_pages_blocks_card_grid_block_columns" DEFAULT '3',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_quote_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"quote" varchar NOT NULL,
|
|
||||||
"author" varchar,
|
|
||||||
"role" varchar,
|
|
||||||
"image_id" integer,
|
|
||||||
"style" "enum_pages_blocks_quote_block_style" DEFAULT 'simple',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_cta_block_buttons" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" varchar NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"text" varchar NOT NULL,
|
|
||||||
"link" varchar NOT NULL,
|
|
||||||
"style" "enum_pages_blocks_cta_block_buttons_style" DEFAULT 'primary'
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_cta_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"headline" varchar NOT NULL,
|
|
||||||
"description" varchar,
|
|
||||||
"background_color" "enum_pages_blocks_cta_block_background_color" DEFAULT 'dark',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_contact_form_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"headline" varchar DEFAULT 'Kontakt',
|
|
||||||
"description" varchar,
|
|
||||||
"recipient_email" varchar DEFAULT 'info@porwoll.de',
|
|
||||||
"show_phone" boolean DEFAULT true,
|
|
||||||
"show_address" boolean DEFAULT true,
|
|
||||||
"show_socials" boolean DEFAULT true,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_timeline_block_events" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" varchar NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"year" varchar NOT NULL,
|
|
||||||
"title" varchar NOT NULL,
|
|
||||||
"description" varchar,
|
|
||||||
"image_id" integer
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_timeline_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"headline" varchar,
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_divider_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"style" "enum_pages_blocks_divider_block_style" DEFAULT 'space',
|
|
||||||
"spacing" "enum_pages_blocks_divider_block_spacing" DEFAULT 'medium',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "pages_blocks_video_block" (
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_path" text NOT NULL,
|
|
||||||
"id" varchar PRIMARY KEY NOT NULL,
|
|
||||||
"video_url" varchar NOT NULL,
|
|
||||||
"caption" varchar,
|
|
||||||
"aspect_ratio" "enum_pages_blocks_video_block_aspect_ratio" DEFAULT '16:9',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE "pages_blocks_hero_block" ADD CONSTRAINT "pages_blocks_hero_block_background_image_id_media_id_fk" FOREIGN KEY ("background_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_hero_block" ADD CONSTRAINT "pages_blocks_hero_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_text_block" ADD CONSTRAINT "pages_blocks_text_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_image_text_block" ADD CONSTRAINT "pages_blocks_image_text_block_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_image_text_block" ADD CONSTRAINT "pages_blocks_image_text_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_card_grid_block_cards" ADD CONSTRAINT "pages_blocks_card_grid_block_cards_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_card_grid_block_cards" ADD CONSTRAINT "pages_blocks_card_grid_block_cards_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages_blocks_card_grid_block"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_card_grid_block" ADD CONSTRAINT "pages_blocks_card_grid_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_quote_block" ADD CONSTRAINT "pages_blocks_quote_block_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_quote_block" ADD CONSTRAINT "pages_blocks_quote_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_cta_block_buttons" ADD CONSTRAINT "pages_blocks_cta_block_buttons_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages_blocks_cta_block"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_cta_block" ADD CONSTRAINT "pages_blocks_cta_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_contact_form_block" ADD CONSTRAINT "pages_blocks_contact_form_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_timeline_block_events" ADD CONSTRAINT "pages_blocks_timeline_block_events_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_timeline_block_events" ADD CONSTRAINT "pages_blocks_timeline_block_events_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages_blocks_timeline_block"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_timeline_block" ADD CONSTRAINT "pages_blocks_timeline_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_divider_block" ADD CONSTRAINT "pages_blocks_divider_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_video_block" ADD CONSTRAINT "pages_blocks_video_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "pages_blocks_hero_block_order_idx" ON "pages_blocks_hero_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_hero_block_parent_id_idx" ON "pages_blocks_hero_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_hero_block_path_idx" ON "pages_blocks_hero_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_hero_block_background_image_idx" ON "pages_blocks_hero_block" USING btree ("background_image_id");
|
|
||||||
CREATE INDEX "pages_blocks_text_block_order_idx" ON "pages_blocks_text_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_text_block_parent_id_idx" ON "pages_blocks_text_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_text_block_path_idx" ON "pages_blocks_text_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_image_text_block_order_idx" ON "pages_blocks_image_text_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_image_text_block_parent_id_idx" ON "pages_blocks_image_text_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_image_text_block_path_idx" ON "pages_blocks_image_text_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_image_text_block_image_idx" ON "pages_blocks_image_text_block" USING btree ("image_id");
|
|
||||||
CREATE INDEX "pages_blocks_card_grid_block_cards_order_idx" ON "pages_blocks_card_grid_block_cards" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_card_grid_block_cards_parent_id_idx" ON "pages_blocks_card_grid_block_cards" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_card_grid_block_cards_image_idx" ON "pages_blocks_card_grid_block_cards" USING btree ("image_id");
|
|
||||||
CREATE INDEX "pages_blocks_card_grid_block_order_idx" ON "pages_blocks_card_grid_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_card_grid_block_parent_id_idx" ON "pages_blocks_card_grid_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_card_grid_block_path_idx" ON "pages_blocks_card_grid_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_quote_block_order_idx" ON "pages_blocks_quote_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_quote_block_parent_id_idx" ON "pages_blocks_quote_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_quote_block_path_idx" ON "pages_blocks_quote_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_quote_block_image_idx" ON "pages_blocks_quote_block" USING btree ("image_id");
|
|
||||||
CREATE INDEX "pages_blocks_cta_block_buttons_order_idx" ON "pages_blocks_cta_block_buttons" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_cta_block_buttons_parent_id_idx" ON "pages_blocks_cta_block_buttons" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_cta_block_order_idx" ON "pages_blocks_cta_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_cta_block_parent_id_idx" ON "pages_blocks_cta_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_cta_block_path_idx" ON "pages_blocks_cta_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_contact_form_block_order_idx" ON "pages_blocks_contact_form_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_contact_form_block_parent_id_idx" ON "pages_blocks_contact_form_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_contact_form_block_path_idx" ON "pages_blocks_contact_form_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_timeline_block_events_order_idx" ON "pages_blocks_timeline_block_events" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_timeline_block_events_parent_id_idx" ON "pages_blocks_timeline_block_events" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_timeline_block_events_image_idx" ON "pages_blocks_timeline_block_events" USING btree ("image_id");
|
|
||||||
CREATE INDEX "pages_blocks_timeline_block_order_idx" ON "pages_blocks_timeline_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_timeline_block_parent_id_idx" ON "pages_blocks_timeline_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_timeline_block_path_idx" ON "pages_blocks_timeline_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_divider_block_order_idx" ON "pages_blocks_divider_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_divider_block_parent_id_idx" ON "pages_blocks_divider_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_divider_block_path_idx" ON "pages_blocks_divider_block" USING btree ("_path");
|
|
||||||
CREATE INDEX "pages_blocks_video_block_order_idx" ON "pages_blocks_video_block" USING btree ("_order");
|
|
||||||
CREATE INDEX "pages_blocks_video_block_parent_id_idx" ON "pages_blocks_video_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX "pages_blocks_video_block_path_idx" ON "pages_blocks_video_block" USING btree ("_path");
|
|
||||||
ALTER TABLE "pages" DROP COLUMN "content";`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP TABLE "pages_blocks_hero_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_text_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_image_text_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_card_grid_block_cards" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_card_grid_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_quote_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_cta_block_buttons" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_cta_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_contact_form_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_timeline_block_events" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_timeline_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_divider_block" CASCADE;
|
|
||||||
DROP TABLE "pages_blocks_video_block" CASCADE;
|
|
||||||
ALTER TABLE "pages" ADD COLUMN "content" jsonb;
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_hero_block_alignment";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_hero_block_cta_style";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_text_block_width";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_image_text_block_image_position";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_card_grid_block_columns";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_quote_block_style";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_cta_block_buttons_style";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_cta_block_background_color";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_divider_block_style";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_divider_block_spacing";
|
|
||||||
DROP TYPE "public"."enum_pages_blocks_video_block_aspect_ratio";`)
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,122 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE TYPE "public"."enum_cookie_configurations_enabled_categories" AS ENUM('necessary', 'functional', 'analytics', 'marketing');
|
|
||||||
CREATE TYPE "public"."enum_cookie_configurations_styling_position" AS ENUM('bottom', 'top', 'middle');
|
|
||||||
CREATE TYPE "public"."enum_cookie_configurations_styling_theme" AS ENUM('dark', 'light', 'auto');
|
|
||||||
CREATE TYPE "public"."enum_cookie_inventory_category" AS ENUM('necessary', 'functional', 'analytics', 'marketing');
|
|
||||||
CREATE TABLE "cookie_configurations_enabled_categories" (
|
|
||||||
"order" integer NOT NULL,
|
|
||||||
"parent_id" integer NOT NULL,
|
|
||||||
"value" "enum_cookie_configurations_enabled_categories",
|
|
||||||
"id" serial PRIMARY KEY NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "cookie_configurations" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer NOT NULL,
|
|
||||||
"title" varchar DEFAULT 'Cookie-Einstellungen' NOT NULL,
|
|
||||||
"revision" numeric DEFAULT 1 NOT NULL,
|
|
||||||
"translations_de_banner_title" varchar DEFAULT 'Wir respektieren Ihre Privatsphäre',
|
|
||||||
"translations_de_banner_description" varchar DEFAULT 'Diese Website verwendet Cookies, um Ihnen die bestmögliche Erfahrung zu bieten. Sie können Ihre Einstellungen jederzeit anpassen.',
|
|
||||||
"translations_de_accept_all_button" varchar DEFAULT 'Alle akzeptieren',
|
|
||||||
"translations_de_accept_necessary_button" varchar DEFAULT 'Nur notwendige',
|
|
||||||
"translations_de_settings_button" varchar DEFAULT 'Einstellungen',
|
|
||||||
"translations_de_save_button" varchar DEFAULT 'Auswahl speichern',
|
|
||||||
"translations_de_privacy_policy_url" varchar DEFAULT '/datenschutz',
|
|
||||||
"translations_de_category_labels_necessary_title" varchar DEFAULT 'Notwendig',
|
|
||||||
"translations_de_category_labels_necessary_description" varchar DEFAULT 'Diese Cookies sind für die Grundfunktionen der Website erforderlich.',
|
|
||||||
"translations_de_category_labels_functional_title" varchar DEFAULT 'Funktional',
|
|
||||||
"translations_de_category_labels_functional_description" varchar DEFAULT 'Diese Cookies ermöglichen erweiterte Funktionen und Personalisierung.',
|
|
||||||
"translations_de_category_labels_analytics_title" varchar DEFAULT 'Statistik',
|
|
||||||
"translations_de_category_labels_analytics_description" varchar DEFAULT 'Diese Cookies helfen uns zu verstehen, wie Besucher mit der Website interagieren.',
|
|
||||||
"translations_de_category_labels_marketing_title" varchar DEFAULT 'Marketing',
|
|
||||||
"translations_de_category_labels_marketing_description" varchar DEFAULT 'Diese Cookies werden verwendet, um Werbung relevanter für Sie zu gestalten.',
|
|
||||||
"styling_position" "enum_cookie_configurations_styling_position" DEFAULT 'bottom',
|
|
||||||
"styling_theme" "enum_cookie_configurations_styling_theme" DEFAULT 'dark',
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "cookie_inventory" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer NOT NULL,
|
|
||||||
"name" varchar NOT NULL,
|
|
||||||
"provider" varchar NOT NULL,
|
|
||||||
"category" "enum_cookie_inventory_category" NOT NULL,
|
|
||||||
"duration" varchar NOT NULL,
|
|
||||||
"description" varchar NOT NULL,
|
|
||||||
"is_active" boolean DEFAULT true,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE "consent_logs" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"consent_id" varchar NOT NULL,
|
|
||||||
"client_ref" varchar,
|
|
||||||
"tenant_id" integer NOT NULL,
|
|
||||||
"categories" jsonb NOT NULL,
|
|
||||||
"revision" numeric NOT NULL,
|
|
||||||
"user_agent" varchar,
|
|
||||||
"anonymized_ip" varchar,
|
|
||||||
"expires_at" timestamp(3) with time zone NOT NULL,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "cookie_configurations_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "cookie_inventory_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "consent_logs_id" integer;
|
|
||||||
ALTER TABLE "cookie_configurations_enabled_categories" ADD CONSTRAINT "cookie_configurations_enabled_categories_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."cookie_configurations"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "cookie_configurations" ADD CONSTRAINT "cookie_configurations_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "cookie_inventory" ADD CONSTRAINT "cookie_inventory_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "consent_logs" ADD CONSTRAINT "consent_logs_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
CREATE INDEX "cookie_configurations_enabled_categories_order_idx" ON "cookie_configurations_enabled_categories" USING btree ("order");
|
|
||||||
CREATE INDEX "cookie_configurations_enabled_categories_parent_idx" ON "cookie_configurations_enabled_categories" USING btree ("parent_id");
|
|
||||||
CREATE UNIQUE INDEX "cookie_configurations_tenant_idx" ON "cookie_configurations" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX "cookie_configurations_updated_at_idx" ON "cookie_configurations" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "cookie_configurations_created_at_idx" ON "cookie_configurations" USING btree ("created_at");
|
|
||||||
CREATE INDEX "cookie_inventory_tenant_idx" ON "cookie_inventory" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX "cookie_inventory_updated_at_idx" ON "cookie_inventory" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "cookie_inventory_created_at_idx" ON "cookie_inventory" USING btree ("created_at");
|
|
||||||
CREATE UNIQUE INDEX "consent_logs_consent_id_idx" ON "consent_logs" USING btree ("consent_id");
|
|
||||||
CREATE INDEX "consent_logs_tenant_idx" ON "consent_logs" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX "consent_logs_updated_at_idx" ON "consent_logs" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "consent_logs_created_at_idx" ON "consent_logs" USING btree ("created_at");
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_cookie_configurations_fk" FOREIGN KEY ("cookie_configurations_id") REFERENCES "public"."cookie_configurations"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_cookie_inventory_fk" FOREIGN KEY ("cookie_inventory_id") REFERENCES "public"."cookie_inventory"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_consent_logs_fk" FOREIGN KEY ("consent_logs_id") REFERENCES "public"."consent_logs"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_cookie_configurations_id_idx" ON "payload_locked_documents_rels" USING btree ("cookie_configurations_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_cookie_inventory_id_idx" ON "payload_locked_documents_rels" USING btree ("cookie_inventory_id");
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_consent_logs_id_idx" ON "payload_locked_documents_rels" USING btree ("consent_logs_id");`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
ALTER TABLE "cookie_configurations_enabled_categories" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "cookie_configurations" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "cookie_inventory" DISABLE ROW LEVEL SECURITY;
|
|
||||||
ALTER TABLE "consent_logs" DISABLE ROW LEVEL SECURITY;
|
|
||||||
DROP TABLE "cookie_configurations_enabled_categories" CASCADE;
|
|
||||||
DROP TABLE "cookie_configurations" CASCADE;
|
|
||||||
DROP TABLE "cookie_inventory" CASCADE;
|
|
||||||
DROP TABLE "consent_logs" CASCADE;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_cookie_configurations_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_cookie_inventory_fk";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_consent_logs_fk";
|
|
||||||
|
|
||||||
DROP INDEX "payload_locked_documents_rels_cookie_configurations_id_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_cookie_inventory_id_idx";
|
|
||||||
DROP INDEX "payload_locked_documents_rels_consent_logs_id_idx";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "cookie_configurations_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "cookie_inventory_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "consent_logs_id";
|
|
||||||
DROP TYPE "public"."enum_cookie_configurations_enabled_categories";
|
|
||||||
DROP TYPE "public"."enum_cookie_configurations_styling_position";
|
|
||||||
DROP TYPE "public"."enum_cookie_configurations_styling_theme";
|
|
||||||
DROP TYPE "public"."enum_cookie_inventory_category";`)
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,61 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE TYPE "public"."enum_privacy_policy_settings_provider" AS ENUM('alfright', 'internal');
|
|
||||||
CREATE TYPE "public"."enum_privacy_policy_settings_alfright_language" AS ENUM('de-de', 'de-at', 'de-ch', 'en-gb', 'en-us');
|
|
||||||
CREATE TABLE "privacy_policy_settings" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer NOT NULL,
|
|
||||||
"title" varchar DEFAULT 'Datenschutzerklärung' NOT NULL,
|
|
||||||
"provider" "enum_privacy_policy_settings_provider" DEFAULT 'alfright' NOT NULL,
|
|
||||||
"alfright_tenant_id" varchar DEFAULT 'alfright_schutzteam',
|
|
||||||
"alfright_api_key" varchar,
|
|
||||||
"alfright_language" "enum_privacy_policy_settings_alfright_language" DEFAULT 'de-de',
|
|
||||||
"alfright_iframe_height" numeric DEFAULT 4000,
|
|
||||||
"styling_header_color" varchar DEFAULT '#ca8a04',
|
|
||||||
"styling_header_font" varchar DEFAULT 'Inter, sans-serif',
|
|
||||||
"styling_header_size" varchar DEFAULT '24px',
|
|
||||||
"styling_subheader_size" varchar DEFAULT '18px',
|
|
||||||
"styling_font_color" varchar DEFAULT '#f3f4f6',
|
|
||||||
"styling_text_font" varchar DEFAULT 'Inter, sans-serif',
|
|
||||||
"styling_text_size" varchar DEFAULT '16px',
|
|
||||||
"styling_link_color" varchar DEFAULT '#ca8a04',
|
|
||||||
"styling_background_color" varchar DEFAULT '#111827',
|
|
||||||
"show_cookie_table" boolean DEFAULT true,
|
|
||||||
"cookie_table_title" varchar DEFAULT 'Übersicht der verwendeten Cookies',
|
|
||||||
"cookie_table_description" varchar DEFAULT 'Ergänzend zur Datenschutzerklärung finden Sie hier eine detaillierte Übersicht aller auf dieser Website eingesetzten Cookies. Sie können Ihre Cookie-Einstellungen jederzeit über den Link "Cookie-Einstellungen" im Footer anpassen.',
|
|
||||||
"seo_meta_title" varchar DEFAULT 'Datenschutzerklärung',
|
|
||||||
"seo_meta_description" varchar DEFAULT 'Informationen zum Datenschutz und zur Verarbeitung Ihrer personenbezogenen Daten.',
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE "cookie_configurations" ALTER COLUMN "translations_de_banner_description" SET DEFAULT 'Diese Website verwendet Cookies, um Ihnen die bestmögliche Erfahrung zu bieten.';
|
|
||||||
ALTER TABLE "cookie_configurations" ALTER COLUMN "translations_de_category_labels_functional_description" SET DEFAULT 'Diese Cookies ermöglichen erweiterte Funktionen.';
|
|
||||||
ALTER TABLE "cookie_configurations" ALTER COLUMN "translations_de_category_labels_analytics_description" SET DEFAULT 'Diese Cookies helfen uns zu verstehen, wie Besucher die Website nutzen.';
|
|
||||||
ALTER TABLE "cookie_configurations" ALTER COLUMN "translations_de_category_labels_marketing_description" SET DEFAULT 'Diese Cookies werden für Werbezwecke verwendet.';
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "privacy_policy_settings_id" integer;
|
|
||||||
ALTER TABLE "privacy_policy_settings" ADD CONSTRAINT "privacy_policy_settings_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
CREATE UNIQUE INDEX "privacy_policy_settings_tenant_idx" ON "privacy_policy_settings" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX "privacy_policy_settings_updated_at_idx" ON "privacy_policy_settings" USING btree ("updated_at");
|
|
||||||
CREATE INDEX "privacy_policy_settings_created_at_idx" ON "privacy_policy_settings" USING btree ("created_at");
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_privacy_policy_settings_fk" FOREIGN KEY ("privacy_policy_settings_id") REFERENCES "public"."privacy_policy_settings"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_privacy_policy_settings_id_idx" ON "payload_locked_documents_rels" USING btree ("privacy_policy_settings_id");`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
ALTER TABLE "privacy_policy_settings" DISABLE ROW LEVEL SECURITY;
|
|
||||||
DROP TABLE "privacy_policy_settings" CASCADE;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP CONSTRAINT "payload_locked_documents_rels_privacy_policy_settings_fk";
|
|
||||||
|
|
||||||
DROP INDEX "payload_locked_documents_rels_privacy_policy_settings_id_idx";
|
|
||||||
ALTER TABLE "cookie_configurations" ALTER COLUMN "translations_de_banner_description" SET DEFAULT 'Diese Website verwendet Cookies, um Ihnen die bestmögliche Erfahrung zu bieten. Sie können Ihre Einstellungen jederzeit anpassen.';
|
|
||||||
ALTER TABLE "cookie_configurations" ALTER COLUMN "translations_de_category_labels_functional_description" SET DEFAULT 'Diese Cookies ermöglichen erweiterte Funktionen und Personalisierung.';
|
|
||||||
ALTER TABLE "cookie_configurations" ALTER COLUMN "translations_de_category_labels_analytics_description" SET DEFAULT 'Diese Cookies helfen uns zu verstehen, wie Besucher mit der Website interagieren.';
|
|
||||||
ALTER TABLE "cookie_configurations" ALTER COLUMN "translations_de_category_labels_marketing_description" SET DEFAULT 'Diese Cookies werden verwendet, um Werbung relevanter für Sie zu gestalten.';
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN "privacy_policy_settings_id";
|
|
||||||
DROP TYPE "public"."enum_privacy_policy_settings_provider";
|
|
||||||
DROP TYPE "public"."enum_privacy_policy_settings_alfright_language";`)
|
|
||||||
}
|
|
||||||
|
|
@ -1,170 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
-- ENUMs für neue Collections
|
|
||||||
CREATE TYPE "public"."enum_posts_type" AS ENUM('blog', 'news', 'press', 'announcement');
|
|
||||||
CREATE TYPE "public"."enum_newsletter_subscribers_status" AS ENUM('pending', 'confirmed', 'unsubscribed', 'bounced');
|
|
||||||
|
|
||||||
-- Testimonials Collection
|
|
||||||
CREATE TABLE IF NOT EXISTS "testimonials" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer,
|
|
||||||
"quote" varchar NOT NULL,
|
|
||||||
"author" varchar NOT NULL,
|
|
||||||
"role" varchar,
|
|
||||||
"company" varchar,
|
|
||||||
"image_id" integer,
|
|
||||||
"rating" numeric,
|
|
||||||
"source" varchar,
|
|
||||||
"source_url" varchar,
|
|
||||||
"date" timestamp(3) with time zone,
|
|
||||||
"is_active" boolean DEFAULT true,
|
|
||||||
"order" integer DEFAULT 0,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "testimonials_tenant_idx" ON "testimonials" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "testimonials_created_at_idx" ON "testimonials" USING btree ("created_at");
|
|
||||||
CREATE INDEX IF NOT EXISTS "testimonials_updated_at_idx" ON "testimonials" USING btree ("updated_at");
|
|
||||||
|
|
||||||
ALTER TABLE "testimonials" ADD CONSTRAINT "testimonials_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "testimonials" ADD CONSTRAINT "testimonials_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Newsletter Subscribers Collection
|
|
||||||
CREATE TABLE IF NOT EXISTS "newsletter_subscribers" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"tenant_id" integer,
|
|
||||||
"email" varchar NOT NULL,
|
|
||||||
"first_name" varchar,
|
|
||||||
"last_name" varchar,
|
|
||||||
"status" "enum_newsletter_subscribers_status" DEFAULT 'pending',
|
|
||||||
"source" varchar,
|
|
||||||
"subscribed_at" timestamp(3) with time zone,
|
|
||||||
"confirmed_at" timestamp(3) with time zone,
|
|
||||||
"unsubscribed_at" timestamp(3) with time zone,
|
|
||||||
"confirmation_token" varchar,
|
|
||||||
"ip_address" varchar,
|
|
||||||
"user_agent" varchar,
|
|
||||||
"updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL,
|
|
||||||
"created_at" timestamp(3) with time zone DEFAULT now() NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "newsletter_subscribers_tenant_idx" ON "newsletter_subscribers" USING btree ("tenant_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "newsletter_subscribers_email_idx" ON "newsletter_subscribers" USING btree ("email");
|
|
||||||
CREATE INDEX IF NOT EXISTS "newsletter_subscribers_created_at_idx" ON "newsletter_subscribers" USING btree ("created_at");
|
|
||||||
|
|
||||||
ALTER TABLE "newsletter_subscribers" ADD CONSTRAINT "newsletter_subscribers_tenant_id_tenants_id_fk" FOREIGN KEY ("tenant_id") REFERENCES "public"."tenants"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Newsletter Subscribers Interests (hasMany select)
|
|
||||||
CREATE TABLE IF NOT EXISTS "newsletter_subscribers_interests" (
|
|
||||||
"order" integer NOT NULL,
|
|
||||||
"parent_id" integer NOT NULL,
|
|
||||||
"value" varchar,
|
|
||||||
"id" serial PRIMARY KEY NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "newsletter_subscribers_interests_order_idx" ON "newsletter_subscribers_interests" USING btree ("order");
|
|
||||||
CREATE INDEX IF NOT EXISTS "newsletter_subscribers_interests_parent_idx" ON "newsletter_subscribers_interests" USING btree ("parent_id");
|
|
||||||
|
|
||||||
ALTER TABLE "newsletter_subscribers_interests" ADD CONSTRAINT "newsletter_subscribers_interests_parent_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."newsletter_subscribers"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Pages Rels (für Block-Relationships)
|
|
||||||
CREATE TABLE IF NOT EXISTS "pages_rels" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"order" integer,
|
|
||||||
"parent_id" integer NOT NULL,
|
|
||||||
"path" varchar NOT NULL,
|
|
||||||
"categories_id" integer,
|
|
||||||
"testimonials_id" integer
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_rels_order_idx" ON "pages_rels" USING btree ("order");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_rels_parent_idx" ON "pages_rels" USING btree ("parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_rels_path_idx" ON "pages_rels" USING btree ("path");
|
|
||||||
|
|
||||||
ALTER TABLE "pages_rels" ADD CONSTRAINT "pages_rels_parent_id_pages_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_rels" ADD CONSTRAINT "pages_rels_categories_id_categories_id_fk" FOREIGN KEY ("categories_id") REFERENCES "public"."categories"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_rels" ADD CONSTRAINT "pages_rels_testimonials_id_testimonials_id_fk" FOREIGN KEY ("testimonials_id") REFERENCES "public"."testimonials"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Posts Rels (für Category Relationships)
|
|
||||||
CREATE TABLE IF NOT EXISTS "posts_rels" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"order" integer,
|
|
||||||
"parent_id" integer NOT NULL,
|
|
||||||
"path" varchar NOT NULL,
|
|
||||||
"categories_id" integer
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "posts_rels_order_idx" ON "posts_rels" USING btree ("order");
|
|
||||||
CREATE INDEX IF NOT EXISTS "posts_rels_parent_idx" ON "posts_rels" USING btree ("parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "posts_rels_path_idx" ON "posts_rels" USING btree ("path");
|
|
||||||
|
|
||||||
ALTER TABLE "posts_rels" ADD CONSTRAINT "posts_rels_parent_id_posts_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."posts"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "posts_rels" ADD CONSTRAINT "posts_rels_categories_id_categories_id_fk" FOREIGN KEY ("categories_id") REFERENCES "public"."categories"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Füge type-Feld zu posts hinzu (falls nicht vorhanden)
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'posts' AND column_name = 'type') THEN
|
|
||||||
ALTER TABLE "posts" ADD COLUMN "type" "enum_posts_type" DEFAULT 'blog';
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
-- Füge isFeatured-Feld zu posts hinzu (falls nicht vorhanden)
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'posts' AND column_name = 'is_featured') THEN
|
|
||||||
ALTER TABLE "posts" ADD COLUMN "is_featured" boolean DEFAULT false;
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
-- Füge excerpt-Feld zu posts hinzu (falls nicht vorhanden)
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'posts' AND column_name = 'excerpt') THEN
|
|
||||||
ALTER TABLE "posts" ADD COLUMN "excerpt" varchar;
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
-- Payload Locked Documents Rels erweitern
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'payload_locked_documents_rels' AND column_name = 'testimonials_id') THEN
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "testimonials_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_testimonials_fk" FOREIGN KEY ("testimonials_id") REFERENCES "public"."testimonials"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_testimonials_id_idx" ON "payload_locked_documents_rels" USING btree ("testimonials_id");
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
|
|
||||||
DO $$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'payload_locked_documents_rels' AND column_name = 'newsletter_subscribers_id') THEN
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD COLUMN "newsletter_subscribers_id" integer;
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_newsletter_subscribers_fk" FOREIGN KEY ("newsletter_subscribers_id") REFERENCES "public"."newsletter_subscribers"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
CREATE INDEX "payload_locked_documents_rels_newsletter_subscribers_id_idx" ON "payload_locked_documents_rels" USING btree ("newsletter_subscribers_id");
|
|
||||||
END IF;
|
|
||||||
END $$;
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP TABLE IF EXISTS "pages_rels" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "posts_rels" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "newsletter_subscribers_interests" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "newsletter_subscribers" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "testimonials" CASCADE;
|
|
||||||
|
|
||||||
ALTER TABLE "posts" DROP COLUMN IF EXISTS "type";
|
|
||||||
ALTER TABLE "posts" DROP COLUMN IF EXISTS "is_featured";
|
|
||||||
ALTER TABLE "posts" DROP COLUMN IF EXISTS "excerpt";
|
|
||||||
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN IF EXISTS "testimonials_id";
|
|
||||||
ALTER TABLE "payload_locked_documents_rels" DROP COLUMN IF EXISTS "newsletter_subscribers_id";
|
|
||||||
|
|
||||||
DROP TYPE IF EXISTS "enum_posts_type";
|
|
||||||
DROP TYPE IF EXISTS "enum_newsletter_subscribers_status";
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
@ -1,177 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
-- Neue Felder für Media Collection
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "caption" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "credit" varchar;
|
|
||||||
|
|
||||||
-- Image Size Spalten für optimierte Bildvarianten
|
|
||||||
-- WebP Varianten
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_thumbnail_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_thumbnail_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_thumbnail_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_thumbnail_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_thumbnail_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_thumbnail_filename" varchar;
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_small_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_small_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_small_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_small_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_small_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_small_filename" varchar;
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_filename" varchar;
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_filename" varchar;
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_filename" varchar;
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_2k_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_2k_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_2k_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_2k_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_2k_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_2k_filename" varchar;
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_og_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_og_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_og_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_og_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_og_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_og_filename" varchar;
|
|
||||||
|
|
||||||
-- AVIF Varianten
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_avif_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_avif_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_avif_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_avif_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_avif_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_medium_avif_filename" varchar;
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_avif_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_avif_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_avif_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_avif_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_avif_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_large_avif_filename" varchar;
|
|
||||||
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_avif_url" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_avif_width" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_avif_height" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_avif_mime_type" varchar;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_avif_filesize" numeric;
|
|
||||||
ALTER TABLE "media" ADD COLUMN IF NOT EXISTS "sizes_xlarge_avif_filename" varchar;
|
|
||||||
|
|
||||||
-- Tags Tabelle (hasMany text)
|
|
||||||
CREATE TABLE IF NOT EXISTS "media_tags" (
|
|
||||||
"order" integer NOT NULL,
|
|
||||||
"parent_id" integer NOT NULL,
|
|
||||||
"value" varchar,
|
|
||||||
"id" serial PRIMARY KEY NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "media_tags_order_idx" ON "media_tags" USING btree ("order");
|
|
||||||
CREATE INDEX IF NOT EXISTS "media_tags_parent_idx" ON "media_tags" USING btree ("parent_id");
|
|
||||||
|
|
||||||
ALTER TABLE "media_tags" DROP CONSTRAINT IF EXISTS "media_tags_parent_id_fk";
|
|
||||||
ALTER TABLE "media_tags" ADD CONSTRAINT "media_tags_parent_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."media"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "caption";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "credit";
|
|
||||||
|
|
||||||
-- WebP Sizes
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_thumbnail_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_thumbnail_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_thumbnail_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_thumbnail_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_thumbnail_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_thumbnail_filename";
|
|
||||||
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_small_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_small_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_small_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_small_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_small_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_small_filename";
|
|
||||||
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_filename";
|
|
||||||
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_filename";
|
|
||||||
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_filename";
|
|
||||||
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_2k_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_2k_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_2k_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_2k_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_2k_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_2k_filename";
|
|
||||||
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_og_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_og_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_og_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_og_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_og_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_og_filename";
|
|
||||||
|
|
||||||
-- AVIF Sizes
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_avif_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_avif_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_avif_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_avif_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_avif_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_medium_avif_filename";
|
|
||||||
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_avif_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_avif_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_avif_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_avif_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_avif_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_large_avif_filename";
|
|
||||||
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_avif_url";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_avif_width";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_avif_height";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_avif_mime_type";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_avif_filesize";
|
|
||||||
ALTER TABLE "media" DROP COLUMN IF EXISTS "sizes_xlarge_avif_filename";
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS "media_tags" CASCADE;
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
@ -1,269 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
-- Posts List Block Table
|
|
||||||
CREATE TABLE IF NOT EXISTS "pages_blocks_posts_list_block" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_path" varchar NOT NULL,
|
|
||||||
"title" varchar,
|
|
||||||
"subtitle" varchar,
|
|
||||||
"post_type" varchar DEFAULT 'blog',
|
|
||||||
"layout" varchar DEFAULT 'grid',
|
|
||||||
"columns" varchar DEFAULT '3',
|
|
||||||
"limit" integer DEFAULT 6,
|
|
||||||
"show_featured_only" boolean DEFAULT false,
|
|
||||||
"show_excerpt" boolean DEFAULT true,
|
|
||||||
"show_date" boolean DEFAULT true,
|
|
||||||
"show_author" boolean DEFAULT false,
|
|
||||||
"show_category" boolean DEFAULT true,
|
|
||||||
"show_pagination" boolean DEFAULT false,
|
|
||||||
"show_read_more" boolean DEFAULT true,
|
|
||||||
"read_more_label" varchar DEFAULT 'Alle Beiträge anzeigen',
|
|
||||||
"read_more_link" varchar DEFAULT '/blog',
|
|
||||||
"background_color" varchar DEFAULT 'white',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_posts_list_block_parent_idx" ON "pages_blocks_posts_list_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_posts_list_block_order_idx" ON "pages_blocks_posts_list_block" USING btree ("_order");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_posts_list_block_path_idx" ON "pages_blocks_posts_list_block" USING btree ("_path");
|
|
||||||
|
|
||||||
ALTER TABLE "pages_blocks_posts_list_block" DROP CONSTRAINT IF EXISTS "pages_blocks_posts_list_block_parent_id_fk";
|
|
||||||
ALTER TABLE "pages_blocks_posts_list_block" ADD CONSTRAINT "pages_blocks_posts_list_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Testimonials Block Table
|
|
||||||
CREATE TABLE IF NOT EXISTS "pages_blocks_testimonials_block" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_path" varchar NOT NULL,
|
|
||||||
"title" varchar DEFAULT 'Das sagen unsere Kunden',
|
|
||||||
"subtitle" varchar,
|
|
||||||
"layout" varchar DEFAULT 'slider',
|
|
||||||
"columns" varchar DEFAULT '3',
|
|
||||||
"display_mode" varchar DEFAULT 'all',
|
|
||||||
"limit" integer DEFAULT 6,
|
|
||||||
"show_rating" boolean DEFAULT true,
|
|
||||||
"show_image" boolean DEFAULT true,
|
|
||||||
"show_company" boolean DEFAULT true,
|
|
||||||
"show_source" boolean DEFAULT false,
|
|
||||||
"autoplay" boolean DEFAULT true,
|
|
||||||
"autoplay_speed" integer DEFAULT 5000,
|
|
||||||
"background_color" varchar DEFAULT 'light',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_testimonials_block_parent_idx" ON "pages_blocks_testimonials_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_testimonials_block_order_idx" ON "pages_blocks_testimonials_block" USING btree ("_order");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_testimonials_block_path_idx" ON "pages_blocks_testimonials_block" USING btree ("_path");
|
|
||||||
|
|
||||||
ALTER TABLE "pages_blocks_testimonials_block" DROP CONSTRAINT IF EXISTS "pages_blocks_testimonials_block_parent_id_fk";
|
|
||||||
ALTER TABLE "pages_blocks_testimonials_block" ADD CONSTRAINT "pages_blocks_testimonials_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Newsletter Block Table
|
|
||||||
CREATE TABLE IF NOT EXISTS "pages_blocks_newsletter_block" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_path" varchar NOT NULL,
|
|
||||||
"title" varchar DEFAULT 'Newsletter abonnieren',
|
|
||||||
"subtitle" varchar,
|
|
||||||
"layout" varchar DEFAULT 'inline',
|
|
||||||
"image_id" integer,
|
|
||||||
"image_position" varchar DEFAULT 'left',
|
|
||||||
"collect_name" boolean DEFAULT false,
|
|
||||||
"show_interests" boolean DEFAULT false,
|
|
||||||
"button_text" varchar DEFAULT 'Anmelden',
|
|
||||||
"placeholder_email" varchar DEFAULT 'Ihre E-Mail-Adresse',
|
|
||||||
"success_message" varchar,
|
|
||||||
"error_message" varchar,
|
|
||||||
"privacy_text" varchar,
|
|
||||||
"privacy_link" varchar DEFAULT '/datenschutz',
|
|
||||||
"source" varchar DEFAULT 'website',
|
|
||||||
"background_color" varchar DEFAULT 'accent',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_newsletter_block_parent_idx" ON "pages_blocks_newsletter_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_newsletter_block_order_idx" ON "pages_blocks_newsletter_block" USING btree ("_order");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_newsletter_block_path_idx" ON "pages_blocks_newsletter_block" USING btree ("_path");
|
|
||||||
|
|
||||||
ALTER TABLE "pages_blocks_newsletter_block" DROP CONSTRAINT IF EXISTS "pages_blocks_newsletter_block_parent_id_fk";
|
|
||||||
ALTER TABLE "pages_blocks_newsletter_block" ADD CONSTRAINT "pages_blocks_newsletter_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_newsletter_block" DROP CONSTRAINT IF EXISTS "pages_blocks_newsletter_block_image_id_fk";
|
|
||||||
ALTER TABLE "pages_blocks_newsletter_block" ADD CONSTRAINT "pages_blocks_newsletter_block_image_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Newsletter Block Available Interests (hasMany select)
|
|
||||||
CREATE TABLE IF NOT EXISTS "pages_blocks_newsletter_block_available_interests" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"parent_id" integer NOT NULL,
|
|
||||||
"order" integer NOT NULL,
|
|
||||||
"value" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_newsletter_block_available_interests_parent_idx" ON "pages_blocks_newsletter_block_available_interests" USING btree ("parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_newsletter_block_available_interests_order_idx" ON "pages_blocks_newsletter_block_available_interests" USING btree ("order");
|
|
||||||
|
|
||||||
ALTER TABLE "pages_blocks_newsletter_block_available_interests" DROP CONSTRAINT IF EXISTS "pages_blocks_newsletter_block_available_interests_parent_id_fk";
|
|
||||||
ALTER TABLE "pages_blocks_newsletter_block_available_interests" ADD CONSTRAINT "pages_blocks_newsletter_block_available_interests_parent_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."pages_blocks_newsletter_block"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Process Steps Block Table
|
|
||||||
CREATE TABLE IF NOT EXISTS "pages_blocks_process_steps_block" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"_path" varchar NOT NULL,
|
|
||||||
"title" varchar DEFAULT 'So funktioniert es',
|
|
||||||
"subtitle" varchar,
|
|
||||||
"layout" varchar DEFAULT 'horizontal',
|
|
||||||
"show_numbers" boolean DEFAULT true,
|
|
||||||
"show_icons" boolean DEFAULT true,
|
|
||||||
"cta_show" boolean DEFAULT false,
|
|
||||||
"cta_label" varchar DEFAULT 'Jetzt starten',
|
|
||||||
"cta_href" varchar,
|
|
||||||
"cta_variant" varchar DEFAULT 'default',
|
|
||||||
"background_color" varchar DEFAULT 'white',
|
|
||||||
"block_name" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_process_steps_block_parent_idx" ON "pages_blocks_process_steps_block" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_process_steps_block_order_idx" ON "pages_blocks_process_steps_block" USING btree ("_order");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_process_steps_block_path_idx" ON "pages_blocks_process_steps_block" USING btree ("_path");
|
|
||||||
|
|
||||||
ALTER TABLE "pages_blocks_process_steps_block" DROP CONSTRAINT IF EXISTS "pages_blocks_process_steps_block_parent_id_fk";
|
|
||||||
ALTER TABLE "pages_blocks_process_steps_block" ADD CONSTRAINT "pages_blocks_process_steps_block_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Process Steps Block Steps (array)
|
|
||||||
CREATE TABLE IF NOT EXISTS "pages_blocks_process_steps_block_steps" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"title" varchar NOT NULL,
|
|
||||||
"description" varchar,
|
|
||||||
"icon" varchar,
|
|
||||||
"image_id" integer
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_process_steps_block_steps_parent_idx" ON "pages_blocks_process_steps_block_steps" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "pages_blocks_process_steps_block_steps_order_idx" ON "pages_blocks_process_steps_block_steps" USING btree ("_order");
|
|
||||||
|
|
||||||
ALTER TABLE "pages_blocks_process_steps_block_steps" DROP CONSTRAINT IF EXISTS "pages_blocks_process_steps_block_steps_parent_id_fk";
|
|
||||||
ALTER TABLE "pages_blocks_process_steps_block_steps" ADD CONSTRAINT "pages_blocks_process_steps_block_steps_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."pages_blocks_process_steps_block"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "pages_blocks_process_steps_block_steps" DROP CONSTRAINT IF EXISTS "pages_blocks_process_steps_block_steps_image_id_fk";
|
|
||||||
ALTER TABLE "pages_blocks_process_steps_block_steps" ADD CONSTRAINT "pages_blocks_process_steps_block_steps_image_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
|
|
||||||
-- SEO Settings Global
|
|
||||||
CREATE TABLE IF NOT EXISTS "seo_settings" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"meta_defaults_title_suffix" varchar DEFAULT '| Website',
|
|
||||||
"meta_defaults_default_description" varchar,
|
|
||||||
"meta_defaults_default_og_image_id" integer,
|
|
||||||
"organization_name" varchar,
|
|
||||||
"organization_legal_name" varchar,
|
|
||||||
"organization_description" varchar,
|
|
||||||
"organization_logo_id" integer,
|
|
||||||
"organization_founding_date" timestamp(3) with time zone,
|
|
||||||
"contact_email" varchar,
|
|
||||||
"contact_phone" varchar,
|
|
||||||
"contact_fax" varchar,
|
|
||||||
"address_street" varchar,
|
|
||||||
"address_postal_code" varchar,
|
|
||||||
"address_city" varchar,
|
|
||||||
"address_region" varchar,
|
|
||||||
"address_country" varchar DEFAULT 'Deutschland',
|
|
||||||
"address_country_code" varchar DEFAULT 'DE',
|
|
||||||
"geo_latitude" numeric,
|
|
||||||
"geo_longitude" numeric,
|
|
||||||
"local_business_enabled" boolean DEFAULT false,
|
|
||||||
"local_business_type" varchar,
|
|
||||||
"local_business_price_range" varchar,
|
|
||||||
"robots_allow_indexing" boolean DEFAULT true,
|
|
||||||
"verification_google" varchar,
|
|
||||||
"verification_bing" varchar,
|
|
||||||
"verification_yandex" varchar,
|
|
||||||
"updated_at" timestamp(3) with time zone,
|
|
||||||
"created_at" timestamp(3) with time zone
|
|
||||||
);
|
|
||||||
|
|
||||||
ALTER TABLE "seo_settings" DROP CONSTRAINT IF EXISTS "seo_settings_meta_defaults_default_og_image_id_fk";
|
|
||||||
ALTER TABLE "seo_settings" ADD CONSTRAINT "seo_settings_meta_defaults_default_og_image_id_fk" FOREIGN KEY ("meta_defaults_default_og_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
ALTER TABLE "seo_settings" DROP CONSTRAINT IF EXISTS "seo_settings_organization_logo_id_fk";
|
|
||||||
ALTER TABLE "seo_settings" ADD CONSTRAINT "seo_settings_organization_logo_id_fk" FOREIGN KEY ("organization_logo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action;
|
|
||||||
|
|
||||||
-- SEO Settings Keywords (hasMany text)
|
|
||||||
CREATE TABLE IF NOT EXISTS "seo_settings_meta_defaults_keywords" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"order" integer NOT NULL,
|
|
||||||
"value" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "seo_settings_meta_defaults_keywords_parent_idx" ON "seo_settings_meta_defaults_keywords" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "seo_settings_meta_defaults_keywords_order_idx" ON "seo_settings_meta_defaults_keywords" USING btree ("order");
|
|
||||||
|
|
||||||
ALTER TABLE "seo_settings_meta_defaults_keywords" DROP CONSTRAINT IF EXISTS "seo_settings_meta_defaults_keywords_parent_id_fk";
|
|
||||||
ALTER TABLE "seo_settings_meta_defaults_keywords" ADD CONSTRAINT "seo_settings_meta_defaults_keywords_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."seo_settings"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- SEO Settings Social Profiles (array)
|
|
||||||
CREATE TABLE IF NOT EXISTS "seo_settings_social_profiles" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"platform" varchar,
|
|
||||||
"url" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "seo_settings_social_profiles_parent_idx" ON "seo_settings_social_profiles" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "seo_settings_social_profiles_order_idx" ON "seo_settings_social_profiles" USING btree ("_order");
|
|
||||||
|
|
||||||
ALTER TABLE "seo_settings_social_profiles" DROP CONSTRAINT IF EXISTS "seo_settings_social_profiles_parent_id_fk";
|
|
||||||
ALTER TABLE "seo_settings_social_profiles" ADD CONSTRAINT "seo_settings_social_profiles_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."seo_settings"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- SEO Settings Opening Hours (array)
|
|
||||||
CREATE TABLE IF NOT EXISTS "seo_settings_local_business_opening_hours" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"_order" integer NOT NULL,
|
|
||||||
"specification" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "seo_settings_local_business_opening_hours_parent_idx" ON "seo_settings_local_business_opening_hours" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "seo_settings_local_business_opening_hours_order_idx" ON "seo_settings_local_business_opening_hours" USING btree ("_order");
|
|
||||||
|
|
||||||
ALTER TABLE "seo_settings_local_business_opening_hours" DROP CONSTRAINT IF EXISTS "seo_settings_local_business_opening_hours_parent_id_fk";
|
|
||||||
ALTER TABLE "seo_settings_local_business_opening_hours" ADD CONSTRAINT "seo_settings_local_business_opening_hours_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."seo_settings"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- SEO Settings Additional Disallow Paths (hasMany text)
|
|
||||||
CREATE TABLE IF NOT EXISTS "seo_settings_robots_additional_disallow" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"_parent_id" integer NOT NULL,
|
|
||||||
"order" integer NOT NULL,
|
|
||||||
"value" varchar
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS "seo_settings_robots_additional_disallow_parent_idx" ON "seo_settings_robots_additional_disallow" USING btree ("_parent_id");
|
|
||||||
CREATE INDEX IF NOT EXISTS "seo_settings_robots_additional_disallow_order_idx" ON "seo_settings_robots_additional_disallow" USING btree ("order");
|
|
||||||
|
|
||||||
ALTER TABLE "seo_settings_robots_additional_disallow" DROP CONSTRAINT IF EXISTS "seo_settings_robots_additional_disallow_parent_id_fk";
|
|
||||||
ALTER TABLE "seo_settings_robots_additional_disallow" ADD CONSTRAINT "seo_settings_robots_additional_disallow_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."seo_settings"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP TABLE IF EXISTS "pages_blocks_posts_list_block" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "pages_blocks_testimonials_block" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "pages_blocks_newsletter_block_available_interests" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "pages_blocks_newsletter_block" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "pages_blocks_process_steps_block_steps" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "pages_blocks_process_steps_block" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "seo_settings_meta_defaults_keywords" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "seo_settings_social_profiles" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "seo_settings_local_business_opening_hours" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "seo_settings_robots_additional_disallow" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "seo_settings" CASCADE;
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Migration zur Behebung der Schema-Divergenz zwischen Code und Datenbank
|
|
||||||
*
|
|
||||||
* Hauptänderungen:
|
|
||||||
* - media_tags → media_texts umbenennen (Payload 3.x Konvention)
|
|
||||||
* - Spaltenstruktur anpassen (path-Feld hinzufügen)
|
|
||||||
*/
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
-- Umbenennen von media_tags zu media_texts
|
|
||||||
ALTER TABLE IF EXISTS "media_tags" RENAME TO "media_texts";
|
|
||||||
|
|
||||||
-- Spalte 'path' hinzufügen falls nicht vorhanden (Payload 3.x benötigt diese)
|
|
||||||
ALTER TABLE "media_texts" ADD COLUMN IF NOT EXISTS "path" varchar NOT NULL DEFAULT 'tags';
|
|
||||||
|
|
||||||
-- Indices umbenennen
|
|
||||||
ALTER INDEX IF EXISTS "media_tags_order_idx" RENAME TO "media_texts_order_idx";
|
|
||||||
ALTER INDEX IF EXISTS "media_tags_parent_idx" RENAME TO "media_texts_parent_idx";
|
|
||||||
|
|
||||||
-- Constraint umbenennen
|
|
||||||
ALTER TABLE "media_texts" DROP CONSTRAINT IF EXISTS "media_tags_parent_id_fk";
|
|
||||||
ALTER TABLE "media_texts" ADD CONSTRAINT "media_texts_parent_id_fk"
|
|
||||||
FOREIGN KEY ("parent_id") REFERENCES "public"."media"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Path Index hinzufügen
|
|
||||||
CREATE INDEX IF NOT EXISTS "media_texts_path_idx" ON "media_texts" USING btree ("path");
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
await db.execute(sql`
|
|
||||||
-- Zurück umbenennen
|
|
||||||
ALTER TABLE IF EXISTS "media_texts" RENAME TO "media_tags";
|
|
||||||
|
|
||||||
-- Spalte entfernen
|
|
||||||
ALTER TABLE "media_tags" DROP COLUMN IF EXISTS "path";
|
|
||||||
|
|
||||||
-- Indices zurück umbenennen
|
|
||||||
ALTER INDEX IF EXISTS "media_texts_order_idx" RENAME TO "media_tags_order_idx";
|
|
||||||
ALTER INDEX IF EXISTS "media_texts_parent_idx" RENAME TO "media_tags_parent_idx";
|
|
||||||
DROP INDEX IF EXISTS "media_texts_path_idx";
|
|
||||||
|
|
||||||
-- Constraint zurück
|
|
||||||
ALTER TABLE "media_tags" DROP CONSTRAINT IF EXISTS "media_texts_parent_id_fk";
|
|
||||||
ALTER TABLE "media_tags" ADD CONSTRAINT "media_tags_parent_id_fk"
|
|
||||||
FOREIGN KEY ("parent_id") REFERENCES "public"."media"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
|
|
@ -1,105 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Migration: Add Full-Text Search Index for Posts
|
|
||||||
*
|
|
||||||
* This migration adds:
|
|
||||||
* 1. A function to extract text from Lexical JSONB content
|
|
||||||
* 2. A generated column (search_text) that concatenates searchable fields
|
|
||||||
* 3. GIN indexes for both German and English full-text search
|
|
||||||
*
|
|
||||||
* The FTS can be activated by setting USE_FTS=true environment variable.
|
|
||||||
* Without this flag, the search API uses ILIKE which works without these indexes.
|
|
||||||
*/
|
|
||||||
|
|
||||||
export async function up({ db }: MigrateUpArgs): Promise<void> {
|
|
||||||
// 1. Create function to extract text from Lexical JSONB content
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE OR REPLACE FUNCTION extract_lexical_text(content jsonb)
|
|
||||||
RETURNS text
|
|
||||||
LANGUAGE sql
|
|
||||||
IMMUTABLE
|
|
||||||
PARALLEL SAFE
|
|
||||||
AS $$
|
|
||||||
SELECT COALESCE(
|
|
||||||
string_agg(node_text, ' '),
|
|
||||||
''
|
|
||||||
)
|
|
||||||
FROM (
|
|
||||||
SELECT jsonb_path_query(
|
|
||||||
content,
|
|
||||||
'strict $.root.**.text'
|
|
||||||
)::text AS node_text
|
|
||||||
) extracted
|
|
||||||
WHERE node_text IS NOT NULL
|
|
||||||
AND node_text != 'null'
|
|
||||||
$$;
|
|
||||||
`)
|
|
||||||
|
|
||||||
// 2. Add generated column for full searchable text
|
|
||||||
// This combines title, excerpt, and extracted content text
|
|
||||||
await db.execute(sql`
|
|
||||||
ALTER TABLE posts
|
|
||||||
ADD COLUMN IF NOT EXISTS search_text text
|
|
||||||
GENERATED ALWAYS AS (
|
|
||||||
COALESCE(title, '') || ' ' ||
|
|
||||||
COALESCE(excerpt, '') || ' ' ||
|
|
||||||
COALESCE(extract_lexical_text(content), '')
|
|
||||||
) STORED;
|
|
||||||
`)
|
|
||||||
|
|
||||||
// 3. Create GIN index for German full-text search
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE INDEX IF NOT EXISTS posts_search_german_idx
|
|
||||||
ON posts
|
|
||||||
USING GIN (to_tsvector('pg_catalog.german', search_text));
|
|
||||||
`)
|
|
||||||
|
|
||||||
// 4. Create GIN index for English full-text search
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE INDEX IF NOT EXISTS posts_search_english_idx
|
|
||||||
ON posts
|
|
||||||
USING GIN (to_tsvector('pg_catalog.english', search_text));
|
|
||||||
`)
|
|
||||||
|
|
||||||
// 5. Create btree index on title for faster ILIKE prefix searches
|
|
||||||
// This is a fallback for when FTS is not used
|
|
||||||
await db.execute(sql`
|
|
||||||
CREATE INDEX IF NOT EXISTS posts_title_lower_idx
|
|
||||||
ON posts (LOWER(title) varchar_pattern_ops);
|
|
||||||
`)
|
|
||||||
|
|
||||||
// Note: For even better ILIKE performance, pg_trgm extension can be enabled manually:
|
|
||||||
// CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
|
||||||
// CREATE INDEX posts_title_trgm_idx ON posts USING GIN (title gin_trgm_ops);
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db }: MigrateDownArgs): Promise<void> {
|
|
||||||
// Remove indexes
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP INDEX IF EXISTS posts_title_lower_idx;
|
|
||||||
`)
|
|
||||||
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP INDEX IF EXISTS posts_title_trgm_idx;
|
|
||||||
`)
|
|
||||||
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP INDEX IF EXISTS posts_search_english_idx;
|
|
||||||
`)
|
|
||||||
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP INDEX IF EXISTS posts_search_german_idx;
|
|
||||||
`)
|
|
||||||
|
|
||||||
// Remove generated column
|
|
||||||
await db.execute(sql`
|
|
||||||
ALTER TABLE posts
|
|
||||||
DROP COLUMN IF EXISTS search_text;
|
|
||||||
`)
|
|
||||||
|
|
||||||
// Remove function
|
|
||||||
await db.execute(sql`
|
|
||||||
DROP FUNCTION IF EXISTS extract_lexical_text(jsonb);
|
|
||||||
`)
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,9 +0,0 @@
|
||||||
import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
|
|
||||||
|
|
||||||
export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {
|
|
||||||
// Migration code
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {
|
|
||||||
// Migration code
|
|
||||||
}
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
||||||
import * as migration_20251126_163428 from './20251126_163428';
|
|
||||||
import * as migration_20251126_200521 from './20251126_200521';
|
|
||||||
import * as migration_20251127_081206 from './20251127_081206';
|
|
||||||
import * as migration_20251127_085124 from './20251127_085124';
|
|
||||||
import * as migration_20251127_224713 from './20251127_224713';
|
|
||||||
import * as migration_20251128_142608 from './20251128_142608';
|
|
||||||
import * as migration_20251130_135459 from './20251130_135459';
|
|
||||||
import * as migration_20251130_143000_media_optimization from './20251130_143000_media_optimization';
|
|
||||||
import * as migration_20251130_150000_blocks_tables from './20251130_150000_blocks_tables';
|
|
||||||
import * as migration_20251130_160000_fix_schema_divergence from './20251130_160000_fix_schema_divergence';
|
|
||||||
import * as migration_20251130_170000_add_search_index from './20251130_170000_add_search_index';
|
|
||||||
import * as migration_20251130_213429_add_localization from './20251130_213429_add_localization';
|
|
||||||
|
|
||||||
export const migrations = [
|
|
||||||
{
|
|
||||||
up: migration_20251126_163428.up,
|
|
||||||
down: migration_20251126_163428.down,
|
|
||||||
name: '20251126_163428',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251126_200521.up,
|
|
||||||
down: migration_20251126_200521.down,
|
|
||||||
name: '20251126_200521',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251127_081206.up,
|
|
||||||
down: migration_20251127_081206.down,
|
|
||||||
name: '20251127_081206',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251127_085124.up,
|
|
||||||
down: migration_20251127_085124.down,
|
|
||||||
name: '20251127_085124',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251127_224713.up,
|
|
||||||
down: migration_20251127_224713.down,
|
|
||||||
name: '20251127_224713',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251128_142608.up,
|
|
||||||
down: migration_20251128_142608.down,
|
|
||||||
name: '20251128_142608',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251130_135459.up,
|
|
||||||
down: migration_20251130_135459.down,
|
|
||||||
name: '20251130_135459',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251130_143000_media_optimization.up,
|
|
||||||
down: migration_20251130_143000_media_optimization.down,
|
|
||||||
name: '20251130_143000_media_optimization',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251130_150000_blocks_tables.up,
|
|
||||||
down: migration_20251130_150000_blocks_tables.down,
|
|
||||||
name: '20251130_150000_blocks_tables',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251130_160000_fix_schema_divergence.up,
|
|
||||||
down: migration_20251130_160000_fix_schema_divergence.down,
|
|
||||||
name: '20251130_160000_fix_schema_divergence',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251130_170000_add_search_index.up,
|
|
||||||
down: migration_20251130_170000_add_search_index.down,
|
|
||||||
name: '20251130_170000_add_search_index',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
up: migration_20251130_213429_add_localization.up,
|
|
||||||
down: migration_20251130_213429_add_localization.down,
|
|
||||||
name: '20251130_213429_add_localization'
|
|
||||||
},
|
|
||||||
];
|
|
||||||
Loading…
Reference in a new issue