Neuigkeiten: Vereins-Feed mit Fotos/Videos, Reaktionen, Termin-Verknüpfung

This commit is contained in:
rene 2026-05-21 19:17:35 +02:00
parent d4a0a75cf7
commit 13c6ba73ca
6 changed files with 599 additions and 0 deletions

View file

@ -0,0 +1,98 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
// neuigkeiten Vereins-Feed mit Medien
{
const c = new Collection({
"createRule": "@request.auth.verein_id = verein_id",
"deleteRule": "@request.auth.verein_id = verein_id && autor_id = @request.auth.id",
"listRule": "@request.auth.verein_id = verein_id",
"viewRule": "@request.auth.verein_id = verein_id",
"updateRule": "@request.auth.verein_id = verein_id && autor_id = @request.auth.id",
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}", "id": "text3208210256",
"max": 15, "min": 15, "name": "id", "pattern": "^[a-z0-9]+$",
"primaryKey": true, "required": true, "system": true, "type": "text",
"help": "", "hidden": false, "presentable": false
},
{
"type": "relation", "id": "relation2001000200", "name": "verein_id",
"help": "", "hidden": false, "presentable": false, "required": true, "system": false,
"cascadeDelete": true, "collectionId": "pbc_3589557411", "maxSelect": 1, "minSelect": 0
},
{
"type": "relation", "id": "relation2001000201", "name": "autor_id",
"help": "", "hidden": false, "presentable": false, "required": true, "system": false,
"cascadeDelete": false, "collectionId": "_pb_users_auth_", "maxSelect": 1, "minSelect": 0
},
{
"type": "text", "id": "text2001000202", "name": "text",
"help": "", "hidden": false, "presentable": false, "required": false, "system": false,
"autogeneratePattern": "", "min": 0, "max": 0, "pattern": ""
},
{
"type": "file", "id": "file2001000203", "name": "medien",
"help": "", "hidden": false, "presentable": false, "required": false, "system": false,
"maxSelect": 10, "maxSize": 15728640,
"mimeTypes": ["image/jpeg","image/png","image/gif","image/webp","video/mp4","video/quicktime"]
},
{
"type": "relation", "id": "relation2001000204", "name": "gruppe_ids",
"help": "", "hidden": false, "presentable": false, "required": false, "system": false,
"cascadeDelete": false, "collectionId": "pbc_3099069179", "maxSelect": 99, "minSelect": 0
},
{
"type": "relation", "id": "relation2001000205", "name": "termin_id",
"help": "", "hidden": false, "presentable": false, "required": false, "system": false,
"cascadeDelete": false, "collectionId": "pbc_2279568741", "maxSelect": 1, "minSelect": 0
}
],
"id": "pbc_neuigkeiten",
"indexes": [],
"name": "neuigkeiten",
"system": false,
"type": "base"
})
app.save(c)
}
// reaktionen 👍 pro User pro Beitrag
{
const c = new Collection({
"createRule": "@request.auth.id != ''",
"deleteRule": "@request.auth.id = user_id",
"listRule": "@request.auth.verein_id = beitrag_id.verein_id",
"viewRule": "@request.auth.verein_id = beitrag_id.verein_id",
"updateRule": null,
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}", "id": "text3208210256",
"max": 15, "min": 15, "name": "id", "pattern": "^[a-z0-9]+$",
"primaryKey": true, "required": true, "system": true, "type": "text",
"help": "", "hidden": false, "presentable": false
},
{
"type": "relation", "id": "relation2001000210", "name": "beitrag_id",
"help": "", "hidden": false, "presentable": false, "required": true, "system": false,
"cascadeDelete": true, "collectionId": "pbc_neuigkeiten", "maxSelect": 1, "minSelect": 0
},
{
"type": "relation", "id": "relation2001000211", "name": "user_id",
"help": "", "hidden": false, "presentable": false, "required": true, "system": false,
"cascadeDelete": true, "collectionId": "_pb_users_auth_", "maxSelect": 1, "minSelect": 0
}
],
"id": "pbc_reaktionen",
"indexes": ["CREATE UNIQUE INDEX idx_reaktion_unique ON reaktionen (beitrag_id, user_id)"],
"name": "reaktionen",
"system": false,
"type": "base"
})
app.save(c)
}
}, (app) => {
try { app.delete(app.findCollectionByNameOrId("pbc_reaktionen")) } catch(_) {}
try { app.delete(app.findCollectionByNameOrId("pbc_neuigkeiten")) } catch(_) {}
})