/// migrate((app) => { const collection = new Collection({ "createRule": null, "deleteRule": null, "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_1568971955", "hidden": false, "id": "relation694999214", "maxSelect": 1, "minSelect": 0, "name": "team_id", "presentable": false, "required": false, "system": false, "type": "relation" }, { "autogeneratePattern": "", "hidden": false, "id": "_clone_nYJn", "max": 0, "min": 0, "name": "team_name", "pattern": "", "presentable": false, "primaryKey": false, "required": true, "system": false, "type": "text" }, { "hidden": false, "id": "number103159226", "max": null, "min": null, "name": "matches", "onlyInt": false, "presentable": false, "required": false, "system": false, "type": "number" }, { "hidden": false, "id": "json2732118329", "maxSize": 1, "name": "wins", "presentable": false, "required": false, "system": false, "type": "json" }, { "hidden": false, "id": "json724428801", "maxSize": 1, "name": "losses", "presentable": false, "required": false, "system": false, "type": "json" }, { "hidden": false, "id": "json3041953980", "maxSize": 1, "name": "margin_of_victory", "presentable": false, "required": false, "system": false, "type": "json" }, { "hidden": false, "id": "json1531431708", "maxSize": 1, "name": "margin_of_loss", "presentable": false, "required": false, "system": false, "type": "json" }, { "hidden": false, "id": "json1062535948", "maxSize": 1, "name": "total_cups_won_by", "presentable": false, "required": false, "system": false, "type": "json" }, { "hidden": false, "id": "json4249694556", "maxSize": 1, "name": "total_cups_lost_by", "presentable": false, "required": false, "system": false, "type": "json" }, { "hidden": false, "id": "json3154249934", "maxSize": 1, "name": "total_cups_made", "presentable": false, "required": false, "system": false, "type": "json" }, { "hidden": false, "id": "json3227208027", "maxSize": 1, "name": "total_cups_against", "presentable": false, "required": false, "system": false, "type": "json" } ], "id": "pbc_1582517110", "indexes": [], "listRule": null, "name": "team_stats", "system": false, "type": "view", "updateRule": null, "viewQuery": "\n SELECT\n t.id as id,\n t.id as team_id,\n t.name as team_name,\n COUNT(m.id) as matches,\n SUM(CASE\n WHEN (m.home = t.id AND m.home_cups > m.away_cups) OR\n (m.away = t.id AND m.away_cups > m.home_cups)\n THEN 1 ELSE 0\n END) as wins,\n SUM(CASE\n WHEN (m.home = t.id AND m.home_cups < m.away_cups) OR\n (m.away = t.id AND m.away_cups < m.home_cups)\n THEN 1 ELSE 0\n END) as losses,\n AVG(CASE\n WHEN m.home = t.id AND m.home_cups > m.away_cups\n THEN m.home_cups - m.away_cups\n WHEN m.away = t.id AND m.away_cups > m.home_cups\n THEN m.away_cups - m.home_cups\n ELSE NULL\n END) as margin_of_victory,\n AVG(CASE\n WHEN m.home = t.id AND m.home_cups < m.away_cups\n THEN m.away_cups - m.home_cups\n WHEN m.away = t.id AND m.away_cups < m.home_cups\n THEN m.home_cups - m.away_cups\n ELSE NULL\n END) as margin_of_loss,\n SUM(CASE\n WHEN m.home = t.id THEN m.home_cups\n WHEN m.away = t.id THEN m.away_cups\n ELSE 0\n END) as total_cups_won_by,\n SUM(CASE\n WHEN m.home = t.id THEN m.away_cups\n WHEN m.away = t.id THEN m.home_cups\n ELSE 0\n END) as total_cups_lost_by,\n SUM(CASE\n WHEN m.home = t.id THEN m.home_cups\n WHEN m.away = t.id THEN m.away_cups\n ELSE 0\n END) as total_cups_made,\n SUM(CASE\n WHEN m.home = t.id THEN m.away_cups\n WHEN m.away = t.id THEN m.home_cups\n ELSE 0\n END) as total_cups_against\n FROM teams t\n JOIN matches m ON (m.home = t.id OR m.away = t.id)\n WHERE m.status = 'ended'\n GROUP BY t.id", "viewRule": null }); return app.save(collection); }, (app) => { const collection = app.findCollectionByNameOrId("pbc_1582517110"); return app.delete(collection); })