Pocketbase: Update schema (add seasonpicks points calc)
This commit is contained in:
273
pb_schema.json
273
pb_schema.json
@ -1570,6 +1570,157 @@
|
|||||||
"indexes": [],
|
"indexes": [],
|
||||||
"system": false
|
"system": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "pbc_2622411661",
|
||||||
|
"listRule": "",
|
||||||
|
"viewRule": "",
|
||||||
|
"createRule": "@request.auth.id != \"\" &&\n@request.auth.admin = true",
|
||||||
|
"updateRule": "@request.auth.id != \"\" &&\n@request.auth.admin = true",
|
||||||
|
"deleteRule": null,
|
||||||
|
"name": "seasonpickresults",
|
||||||
|
"type": "base",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"autogeneratePattern": "[a-z0-9]{15}",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "text3208210256",
|
||||||
|
"max": 15,
|
||||||
|
"min": 15,
|
||||||
|
"name": "id",
|
||||||
|
"pattern": "^[a-z0-9]+$",
|
||||||
|
"presentable": false,
|
||||||
|
"primaryKey": true,
|
||||||
|
"required": true,
|
||||||
|
"system": true,
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cascadeDelete": false,
|
||||||
|
"collectionId": "pbc_1736455494",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "relation1202818397",
|
||||||
|
"maxSelect": 999,
|
||||||
|
"minSelect": 0,
|
||||||
|
"name": "correcthottake",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "relation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cascadeDelete": false,
|
||||||
|
"collectionId": "pbc_1967373549",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "relation553681702",
|
||||||
|
"maxSelect": 1,
|
||||||
|
"minSelect": 0,
|
||||||
|
"name": "wdcwinner",
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "relation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cascadeDelete": false,
|
||||||
|
"collectionId": "pbc_1568971955",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "relation734366271",
|
||||||
|
"maxSelect": 1,
|
||||||
|
"minSelect": 0,
|
||||||
|
"name": "wccwinner",
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "relation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cascadeDelete": false,
|
||||||
|
"collectionId": "pbc_1967373549",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "relation3896658669",
|
||||||
|
"maxSelect": 999,
|
||||||
|
"minSelect": 0,
|
||||||
|
"name": "mostovertakes",
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "relation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cascadeDelete": false,
|
||||||
|
"collectionId": "pbc_1967373549",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "relation3731883446",
|
||||||
|
"maxSelect": 999,
|
||||||
|
"minSelect": 0,
|
||||||
|
"name": "mostdnfs",
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "relation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "number1147572598",
|
||||||
|
"max": 24,
|
||||||
|
"min": 0,
|
||||||
|
"name": "doohanstarts",
|
||||||
|
"onlyInt": false,
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cascadeDelete": false,
|
||||||
|
"collectionId": "pbc_1967373549",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "relation1938994230",
|
||||||
|
"maxSelect": 10,
|
||||||
|
"minSelect": 10,
|
||||||
|
"name": "teamwinners",
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "relation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cascadeDelete": false,
|
||||||
|
"collectionId": "pbc_1967373549",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "relation3915334665",
|
||||||
|
"maxSelect": 999,
|
||||||
|
"minSelect": 3,
|
||||||
|
"name": "podiums",
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "relation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "autodate2990389176",
|
||||||
|
"name": "created",
|
||||||
|
"onCreate": true,
|
||||||
|
"onUpdate": false,
|
||||||
|
"presentable": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "autodate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "autodate3332085495",
|
||||||
|
"name": "updated",
|
||||||
|
"onCreate": true,
|
||||||
|
"onUpdate": true,
|
||||||
|
"presentable": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "autodate"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"indexes": [],
|
||||||
|
"system": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "pbc_1473742649",
|
"id": "pbc_1473742649",
|
||||||
"listRule": "@request.auth.id != \"\" // If you know what you're doing you can easily request all picks here. But If I restrict this to the current user, the subscription events are blocked...",
|
"listRule": "@request.auth.id != \"\" // If you know what you're doing you can easily request all picks here. But If I restrict this to the current user, the subscription events are blocked...",
|
||||||
@ -2677,6 +2828,128 @@
|
|||||||
"system": false,
|
"system": false,
|
||||||
"viewQuery": "-- This query returns users with an extra field \"picked\", depending on if they made their season picks yet\nSELECT\n user.id, user.username, user.firstname, user.avatar, user.admin,\n -- Generate the additional field \"picked\" that contains the season pick ID if the user occurs in the seasonpicks and false otherwise\n (CASE\n WHEN sp.user IS NOT NULL THEN sp.id\n ELSE NULL\n END) AS picked\nFROM\n users user\n-- Join users and seasonpicks (user ids that are missing from this join will receive picked=false)\nLEFT JOIN\n seasonpicks sp ON user.id = sp.user\nORDER BY user.id ASC;"
|
"viewQuery": "-- This query returns users with an extra field \"picked\", depending on if they made their season picks yet\nSELECT\n user.id, user.username, user.firstname, user.avatar, user.admin,\n -- Generate the additional field \"picked\" that contains the season pick ID if the user occurs in the seasonpicks and false otherwise\n (CASE\n WHEN sp.user IS NOT NULL THEN sp.id\n ELSE NULL\n END) AS picked\nFROM\n users user\n-- Join users and seasonpicks (user ids that are missing from this join will receive picked=false)\nLEFT JOIN\n seasonpicks sp ON user.id = sp.user\nORDER BY user.id ASC;"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "pbc_945270645",
|
||||||
|
"listRule": null,
|
||||||
|
"viewRule": null,
|
||||||
|
"createRule": null,
|
||||||
|
"updateRule": null,
|
||||||
|
"deleteRule": null,
|
||||||
|
"name": "seasonpickpoints",
|
||||||
|
"type": "view",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"autogeneratePattern": "",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "text3208210256",
|
||||||
|
"max": 0,
|
||||||
|
"min": 0,
|
||||||
|
"name": "id",
|
||||||
|
"pattern": "^[a-z0-9]+$",
|
||||||
|
"presentable": false,
|
||||||
|
"primaryKey": true,
|
||||||
|
"required": true,
|
||||||
|
"system": true,
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cascadeDelete": false,
|
||||||
|
"collectionId": "pbc_1736455494",
|
||||||
|
"hidden": false,
|
||||||
|
"id": "_clone_4tZb",
|
||||||
|
"maxSelect": 1,
|
||||||
|
"minSelect": 0,
|
||||||
|
"name": "user",
|
||||||
|
"presentable": false,
|
||||||
|
"required": true,
|
||||||
|
"system": false,
|
||||||
|
"type": "relation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "json368448629",
|
||||||
|
"maxSize": 1,
|
||||||
|
"name": "hottake_points",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "json3943774131",
|
||||||
|
"maxSize": 1,
|
||||||
|
"name": "wdc_points",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "json2406505082",
|
||||||
|
"maxSize": 1,
|
||||||
|
"name": "wcc_points",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "json1467527923",
|
||||||
|
"maxSize": 1,
|
||||||
|
"name": "doohan_points",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "json1170173829",
|
||||||
|
"maxSize": 1,
|
||||||
|
"name": "overtakes_points",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "json182958108",
|
||||||
|
"maxSize": 1,
|
||||||
|
"name": "dnfs_points",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "json1497196675",
|
||||||
|
"maxSize": 1,
|
||||||
|
"name": "teamwinner_points",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hidden": false,
|
||||||
|
"id": "json2424735323",
|
||||||
|
"maxSize": 1,
|
||||||
|
"name": "podium_points",
|
||||||
|
"presentable": false,
|
||||||
|
"required": false,
|
||||||
|
"system": false,
|
||||||
|
"type": "json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"indexes": [],
|
||||||
|
"system": false,
|
||||||
|
"viewQuery": "SELECT\n sp.id,\n sp.user,\n \n (CASE\n -- Correct hottake\n WHEN sr.correcthottake LIKE '[%\"' || sp.user || '\"%]' THEN 10\n ELSE 0 \n END) AS hottake_points,\n\n (CASE\n -- Correct WDC\n WHEN sp.wdcwinner = sr.wdcwinner THEN 10\n ELSE 0\n END) AS wdc_points,\n\n (CASE\n -- Correct WCC\n WHEN sp.wccwinner = sr.wccwinner THEN 10\n ELSE 0\n END) AS wcc_points,\n\n (CASE\n WHEN ABS(sp.doohanstarts - sr.doohanstarts)\n = MIN(ABS(sp.doohanstarts - sr.doohanstarts)) OVER ()\n THEN 5\n ELSE 0\n END) AS doohan_points,\n\n (CASE\n -- Most Overtakes\n WHEN sr.mostovertakes LIKE '[%\"' || sp.mostovertakes || '\"%]' THEN 10\n ELSE 0\n END) AS overtakes_points,\n\n (CASE\n -- Most DNFs\n WHEN sr.mostdnfs LIKE '[%\"' || sp.mostdnfs || '\"%]' THEN 10\n ELSE 0\n END) AS dnfs_points,\n\n (SELECT SUM(CASE\n -- Teamwinners\n WHEN EXISTS (SELECT 1\n FROM json_each(sr.teamwinners) srtw\n WHERE srtw.value = sptw.value\n ) THEN 3\n ELSE -3\n END)\n FROM json_each(sp.teamwinners) sptw) AS teamwinner_points,\n\n (SELECT SUM(CASE\n -- Podiums\n WHEN EXISTS (SELECT 1\n FROM json_each(sr.podiums) srp\n WHERE srp.value = spp.value\n ) THEN 3\n ELSE -2\n END)\n FROM json_each(sp.podiums) spp) AS podium_points\n\nFROM seasonpicks sp\n-- CROSS JOIN: Cartesian Product\nCROSS JOIN seasonpickresults sr;"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "pbc_575507001",
|
"id": "pbc_575507001",
|
||||||
"listRule": "",
|
"listRule": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user