From 8a2a699f1cc7dd179acbd5a96820c83396e779da Mon Sep 17 00:00:00 2001 From: alcercu <333aleix333@gmail.com> Date: Tue, 11 Feb 2025 15:34:10 +0100 Subject: [PATCH] feat(cms): add SEO component --- .../brand-assets-page-seo/schema.json | 20 ++ .../controllers/brand-assets-page-seo.ts | 7 + .../routes/brand-assets-page-seo.ts | 7 + .../services/brand-assets-page-seo.ts | 7 + .../community-page-seo/schema.json | 20 ++ .../controllers/community-page-seo.ts | 7 + .../routes/community-page-seo.ts | 7 + .../services/community-page-seo.ts | 7 + .../cooperative-page-seo/schema.json | 20 ++ .../controllers/cooperative-page-seo.ts | 7 + .../routes/cooperative-page-seo.ts | 7 + .../services/cooperative-page-seo.ts | 7 + .../content-types/earn-page-seo/schema.json | 20 ++ .../controllers/earn-page-seo.ts | 7 + .../api/earn-page-seo/routes/earn-page-seo.ts | 7 + .../earn-page-seo/services/earn-page-seo.ts | 7 + .../for-builders-page-seo/schema.json | 20 ++ .../controllers/for-builders-page-seo.ts | 7 + .../routes/for-builders-page-seo.ts | 7 + .../services/for-builders-page-seo.ts | 7 + .../for-lawyers-page-seo/schema.json | 20 ++ .../controllers/for-lawyers-page-seo.ts | 7 + .../routes/for-lawyers-page-seo.ts | 7 + .../services/for-lawyers-page-seo.ts | 7 + .../content-types/home-page-seo/schema.json | 20 ++ .../controllers/home-page-seo.ts | 7 + .../api/home-page-seo/routes/home-page-seo.ts | 7 + .../home-page-seo/services/home-page-seo.ts | 7 + .../pnk-token-page-seo/schema.json | 20 ++ .../controllers/pnk-token-page-seo.ts | 7 + .../routes/pnk-token-page-seo.ts | 7 + .../services/pnk-token-page-seo.ts | 7 + .../r-and-d-page-seo/schema.json | 20 ++ .../controllers/r-and-d-page-seo.ts | 7 + .../routes/r-and-d-page-seo.ts | 7 + .../services/r-and-d-page-seo.ts | 7 + cms-backend/src/components/content/seo.json | 25 ++ cms-backend/types/generated/components.d.ts | 13 + cms-backend/types/generated/contentTypes.d.ts | 267 ++++++++++++++++++ 39 files changed, 674 insertions(+) create mode 100644 cms-backend/src/api/brand-assets-page-seo/content-types/brand-assets-page-seo/schema.json create mode 100644 cms-backend/src/api/brand-assets-page-seo/controllers/brand-assets-page-seo.ts create mode 100644 cms-backend/src/api/brand-assets-page-seo/routes/brand-assets-page-seo.ts create mode 100644 cms-backend/src/api/brand-assets-page-seo/services/brand-assets-page-seo.ts create mode 100644 cms-backend/src/api/community-page-seo/content-types/community-page-seo/schema.json create mode 100644 cms-backend/src/api/community-page-seo/controllers/community-page-seo.ts create mode 100644 cms-backend/src/api/community-page-seo/routes/community-page-seo.ts create mode 100644 cms-backend/src/api/community-page-seo/services/community-page-seo.ts create mode 100644 cms-backend/src/api/cooperative-page-seo/content-types/cooperative-page-seo/schema.json create mode 100644 cms-backend/src/api/cooperative-page-seo/controllers/cooperative-page-seo.ts create mode 100644 cms-backend/src/api/cooperative-page-seo/routes/cooperative-page-seo.ts create mode 100644 cms-backend/src/api/cooperative-page-seo/services/cooperative-page-seo.ts create mode 100644 cms-backend/src/api/earn-page-seo/content-types/earn-page-seo/schema.json create mode 100644 cms-backend/src/api/earn-page-seo/controllers/earn-page-seo.ts create mode 100644 cms-backend/src/api/earn-page-seo/routes/earn-page-seo.ts create mode 100644 cms-backend/src/api/earn-page-seo/services/earn-page-seo.ts create mode 100644 cms-backend/src/api/for-builders-page-seo/content-types/for-builders-page-seo/schema.json create mode 100644 cms-backend/src/api/for-builders-page-seo/controllers/for-builders-page-seo.ts create mode 100644 cms-backend/src/api/for-builders-page-seo/routes/for-builders-page-seo.ts create mode 100644 cms-backend/src/api/for-builders-page-seo/services/for-builders-page-seo.ts create mode 100644 cms-backend/src/api/for-lawyers-page-seo/content-types/for-lawyers-page-seo/schema.json create mode 100644 cms-backend/src/api/for-lawyers-page-seo/controllers/for-lawyers-page-seo.ts create mode 100644 cms-backend/src/api/for-lawyers-page-seo/routes/for-lawyers-page-seo.ts create mode 100644 cms-backend/src/api/for-lawyers-page-seo/services/for-lawyers-page-seo.ts create mode 100644 cms-backend/src/api/home-page-seo/content-types/home-page-seo/schema.json create mode 100644 cms-backend/src/api/home-page-seo/controllers/home-page-seo.ts create mode 100644 cms-backend/src/api/home-page-seo/routes/home-page-seo.ts create mode 100644 cms-backend/src/api/home-page-seo/services/home-page-seo.ts create mode 100644 cms-backend/src/api/pnk-token-page-seo/content-types/pnk-token-page-seo/schema.json create mode 100644 cms-backend/src/api/pnk-token-page-seo/controllers/pnk-token-page-seo.ts create mode 100644 cms-backend/src/api/pnk-token-page-seo/routes/pnk-token-page-seo.ts create mode 100644 cms-backend/src/api/pnk-token-page-seo/services/pnk-token-page-seo.ts create mode 100644 cms-backend/src/api/r-and-d-page-seo/content-types/r-and-d-page-seo/schema.json create mode 100644 cms-backend/src/api/r-and-d-page-seo/controllers/r-and-d-page-seo.ts create mode 100644 cms-backend/src/api/r-and-d-page-seo/routes/r-and-d-page-seo.ts create mode 100644 cms-backend/src/api/r-and-d-page-seo/services/r-and-d-page-seo.ts create mode 100644 cms-backend/src/components/content/seo.json diff --git a/cms-backend/src/api/brand-assets-page-seo/content-types/brand-assets-page-seo/schema.json b/cms-backend/src/api/brand-assets-page-seo/content-types/brand-assets-page-seo/schema.json new file mode 100644 index 0000000..fad5a34 --- /dev/null +++ b/cms-backend/src/api/brand-assets-page-seo/content-types/brand-assets-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "brand_assets_page_seos", + "info": { + "singularName": "brand-assets-page-seo", + "pluralName": "brand-assets-page-seos", + "displayName": "BrandAssetsPageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/brand-assets-page-seo/controllers/brand-assets-page-seo.ts b/cms-backend/src/api/brand-assets-page-seo/controllers/brand-assets-page-seo.ts new file mode 100644 index 0000000..55ab1d4 --- /dev/null +++ b/cms-backend/src/api/brand-assets-page-seo/controllers/brand-assets-page-seo.ts @@ -0,0 +1,7 @@ +/** + * brand-assets-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::brand-assets-page-seo.brand-assets-page-seo'); diff --git a/cms-backend/src/api/brand-assets-page-seo/routes/brand-assets-page-seo.ts b/cms-backend/src/api/brand-assets-page-seo/routes/brand-assets-page-seo.ts new file mode 100644 index 0000000..4e7b0b1 --- /dev/null +++ b/cms-backend/src/api/brand-assets-page-seo/routes/brand-assets-page-seo.ts @@ -0,0 +1,7 @@ +/** + * brand-assets-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::brand-assets-page-seo.brand-assets-page-seo'); diff --git a/cms-backend/src/api/brand-assets-page-seo/services/brand-assets-page-seo.ts b/cms-backend/src/api/brand-assets-page-seo/services/brand-assets-page-seo.ts new file mode 100644 index 0000000..4d6dcd6 --- /dev/null +++ b/cms-backend/src/api/brand-assets-page-seo/services/brand-assets-page-seo.ts @@ -0,0 +1,7 @@ +/** + * brand-assets-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::brand-assets-page-seo.brand-assets-page-seo'); diff --git a/cms-backend/src/api/community-page-seo/content-types/community-page-seo/schema.json b/cms-backend/src/api/community-page-seo/content-types/community-page-seo/schema.json new file mode 100644 index 0000000..1cef4f1 --- /dev/null +++ b/cms-backend/src/api/community-page-seo/content-types/community-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "community_page_seos", + "info": { + "singularName": "community-page-seo", + "pluralName": "community-page-seos", + "displayName": "CommunityPageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/community-page-seo/controllers/community-page-seo.ts b/cms-backend/src/api/community-page-seo/controllers/community-page-seo.ts new file mode 100644 index 0000000..1c80f39 --- /dev/null +++ b/cms-backend/src/api/community-page-seo/controllers/community-page-seo.ts @@ -0,0 +1,7 @@ +/** + * community-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::community-page-seo.community-page-seo'); diff --git a/cms-backend/src/api/community-page-seo/routes/community-page-seo.ts b/cms-backend/src/api/community-page-seo/routes/community-page-seo.ts new file mode 100644 index 0000000..d64843d --- /dev/null +++ b/cms-backend/src/api/community-page-seo/routes/community-page-seo.ts @@ -0,0 +1,7 @@ +/** + * community-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::community-page-seo.community-page-seo'); diff --git a/cms-backend/src/api/community-page-seo/services/community-page-seo.ts b/cms-backend/src/api/community-page-seo/services/community-page-seo.ts new file mode 100644 index 0000000..f915d63 --- /dev/null +++ b/cms-backend/src/api/community-page-seo/services/community-page-seo.ts @@ -0,0 +1,7 @@ +/** + * community-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::community-page-seo.community-page-seo'); diff --git a/cms-backend/src/api/cooperative-page-seo/content-types/cooperative-page-seo/schema.json b/cms-backend/src/api/cooperative-page-seo/content-types/cooperative-page-seo/schema.json new file mode 100644 index 0000000..f0bcb47 --- /dev/null +++ b/cms-backend/src/api/cooperative-page-seo/content-types/cooperative-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "cooperative_page_seos", + "info": { + "singularName": "cooperative-page-seo", + "pluralName": "cooperative-page-seos", + "displayName": "CooperativePageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/cooperative-page-seo/controllers/cooperative-page-seo.ts b/cms-backend/src/api/cooperative-page-seo/controllers/cooperative-page-seo.ts new file mode 100644 index 0000000..4895fd3 --- /dev/null +++ b/cms-backend/src/api/cooperative-page-seo/controllers/cooperative-page-seo.ts @@ -0,0 +1,7 @@ +/** + * cooperative-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::cooperative-page-seo.cooperative-page-seo'); diff --git a/cms-backend/src/api/cooperative-page-seo/routes/cooperative-page-seo.ts b/cms-backend/src/api/cooperative-page-seo/routes/cooperative-page-seo.ts new file mode 100644 index 0000000..f553b9f --- /dev/null +++ b/cms-backend/src/api/cooperative-page-seo/routes/cooperative-page-seo.ts @@ -0,0 +1,7 @@ +/** + * cooperative-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::cooperative-page-seo.cooperative-page-seo'); diff --git a/cms-backend/src/api/cooperative-page-seo/services/cooperative-page-seo.ts b/cms-backend/src/api/cooperative-page-seo/services/cooperative-page-seo.ts new file mode 100644 index 0000000..08e297d --- /dev/null +++ b/cms-backend/src/api/cooperative-page-seo/services/cooperative-page-seo.ts @@ -0,0 +1,7 @@ +/** + * cooperative-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::cooperative-page-seo.cooperative-page-seo'); diff --git a/cms-backend/src/api/earn-page-seo/content-types/earn-page-seo/schema.json b/cms-backend/src/api/earn-page-seo/content-types/earn-page-seo/schema.json new file mode 100644 index 0000000..5d8fe65 --- /dev/null +++ b/cms-backend/src/api/earn-page-seo/content-types/earn-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "earn_page_seos", + "info": { + "singularName": "earn-page-seo", + "pluralName": "earn-page-seos", + "displayName": "EarnPageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/earn-page-seo/controllers/earn-page-seo.ts b/cms-backend/src/api/earn-page-seo/controllers/earn-page-seo.ts new file mode 100644 index 0000000..f708134 --- /dev/null +++ b/cms-backend/src/api/earn-page-seo/controllers/earn-page-seo.ts @@ -0,0 +1,7 @@ +/** + * earn-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::earn-page-seo.earn-page-seo'); diff --git a/cms-backend/src/api/earn-page-seo/routes/earn-page-seo.ts b/cms-backend/src/api/earn-page-seo/routes/earn-page-seo.ts new file mode 100644 index 0000000..cec6004 --- /dev/null +++ b/cms-backend/src/api/earn-page-seo/routes/earn-page-seo.ts @@ -0,0 +1,7 @@ +/** + * earn-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::earn-page-seo.earn-page-seo'); diff --git a/cms-backend/src/api/earn-page-seo/services/earn-page-seo.ts b/cms-backend/src/api/earn-page-seo/services/earn-page-seo.ts new file mode 100644 index 0000000..2687d3e --- /dev/null +++ b/cms-backend/src/api/earn-page-seo/services/earn-page-seo.ts @@ -0,0 +1,7 @@ +/** + * earn-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::earn-page-seo.earn-page-seo'); diff --git a/cms-backend/src/api/for-builders-page-seo/content-types/for-builders-page-seo/schema.json b/cms-backend/src/api/for-builders-page-seo/content-types/for-builders-page-seo/schema.json new file mode 100644 index 0000000..f4bd1fc --- /dev/null +++ b/cms-backend/src/api/for-builders-page-seo/content-types/for-builders-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "for_builders_page_seos", + "info": { + "singularName": "for-builders-page-seo", + "pluralName": "for-builders-page-seos", + "displayName": "ForBuildersPageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/for-builders-page-seo/controllers/for-builders-page-seo.ts b/cms-backend/src/api/for-builders-page-seo/controllers/for-builders-page-seo.ts new file mode 100644 index 0000000..3b09135 --- /dev/null +++ b/cms-backend/src/api/for-builders-page-seo/controllers/for-builders-page-seo.ts @@ -0,0 +1,7 @@ +/** + * for-builders-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::for-builders-page-seo.for-builders-page-seo'); diff --git a/cms-backend/src/api/for-builders-page-seo/routes/for-builders-page-seo.ts b/cms-backend/src/api/for-builders-page-seo/routes/for-builders-page-seo.ts new file mode 100644 index 0000000..7eb46d3 --- /dev/null +++ b/cms-backend/src/api/for-builders-page-seo/routes/for-builders-page-seo.ts @@ -0,0 +1,7 @@ +/** + * for-builders-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::for-builders-page-seo.for-builders-page-seo'); diff --git a/cms-backend/src/api/for-builders-page-seo/services/for-builders-page-seo.ts b/cms-backend/src/api/for-builders-page-seo/services/for-builders-page-seo.ts new file mode 100644 index 0000000..0d56f27 --- /dev/null +++ b/cms-backend/src/api/for-builders-page-seo/services/for-builders-page-seo.ts @@ -0,0 +1,7 @@ +/** + * for-builders-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::for-builders-page-seo.for-builders-page-seo'); diff --git a/cms-backend/src/api/for-lawyers-page-seo/content-types/for-lawyers-page-seo/schema.json b/cms-backend/src/api/for-lawyers-page-seo/content-types/for-lawyers-page-seo/schema.json new file mode 100644 index 0000000..6cde51e --- /dev/null +++ b/cms-backend/src/api/for-lawyers-page-seo/content-types/for-lawyers-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "for_lawyers_page_seos", + "info": { + "singularName": "for-lawyers-page-seo", + "pluralName": "for-lawyers-page-seos", + "displayName": "ForLawyersPageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/for-lawyers-page-seo/controllers/for-lawyers-page-seo.ts b/cms-backend/src/api/for-lawyers-page-seo/controllers/for-lawyers-page-seo.ts new file mode 100644 index 0000000..adfbfae --- /dev/null +++ b/cms-backend/src/api/for-lawyers-page-seo/controllers/for-lawyers-page-seo.ts @@ -0,0 +1,7 @@ +/** + * for-lawyers-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::for-lawyers-page-seo.for-lawyers-page-seo'); diff --git a/cms-backend/src/api/for-lawyers-page-seo/routes/for-lawyers-page-seo.ts b/cms-backend/src/api/for-lawyers-page-seo/routes/for-lawyers-page-seo.ts new file mode 100644 index 0000000..a5de0f5 --- /dev/null +++ b/cms-backend/src/api/for-lawyers-page-seo/routes/for-lawyers-page-seo.ts @@ -0,0 +1,7 @@ +/** + * for-lawyers-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::for-lawyers-page-seo.for-lawyers-page-seo'); diff --git a/cms-backend/src/api/for-lawyers-page-seo/services/for-lawyers-page-seo.ts b/cms-backend/src/api/for-lawyers-page-seo/services/for-lawyers-page-seo.ts new file mode 100644 index 0000000..3dafc7b --- /dev/null +++ b/cms-backend/src/api/for-lawyers-page-seo/services/for-lawyers-page-seo.ts @@ -0,0 +1,7 @@ +/** + * for-lawyers-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::for-lawyers-page-seo.for-lawyers-page-seo'); diff --git a/cms-backend/src/api/home-page-seo/content-types/home-page-seo/schema.json b/cms-backend/src/api/home-page-seo/content-types/home-page-seo/schema.json new file mode 100644 index 0000000..acd2634 --- /dev/null +++ b/cms-backend/src/api/home-page-seo/content-types/home-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "home_page_seos", + "info": { + "singularName": "home-page-seo", + "pluralName": "home-page-seos", + "displayName": "HomePageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/home-page-seo/controllers/home-page-seo.ts b/cms-backend/src/api/home-page-seo/controllers/home-page-seo.ts new file mode 100644 index 0000000..0cdb250 --- /dev/null +++ b/cms-backend/src/api/home-page-seo/controllers/home-page-seo.ts @@ -0,0 +1,7 @@ +/** + * home-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::home-page-seo.home-page-seo'); diff --git a/cms-backend/src/api/home-page-seo/routes/home-page-seo.ts b/cms-backend/src/api/home-page-seo/routes/home-page-seo.ts new file mode 100644 index 0000000..015d76e --- /dev/null +++ b/cms-backend/src/api/home-page-seo/routes/home-page-seo.ts @@ -0,0 +1,7 @@ +/** + * home-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::home-page-seo.home-page-seo'); diff --git a/cms-backend/src/api/home-page-seo/services/home-page-seo.ts b/cms-backend/src/api/home-page-seo/services/home-page-seo.ts new file mode 100644 index 0000000..0583eaf --- /dev/null +++ b/cms-backend/src/api/home-page-seo/services/home-page-seo.ts @@ -0,0 +1,7 @@ +/** + * home-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::home-page-seo.home-page-seo'); diff --git a/cms-backend/src/api/pnk-token-page-seo/content-types/pnk-token-page-seo/schema.json b/cms-backend/src/api/pnk-token-page-seo/content-types/pnk-token-page-seo/schema.json new file mode 100644 index 0000000..4af7f55 --- /dev/null +++ b/cms-backend/src/api/pnk-token-page-seo/content-types/pnk-token-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "pnk_token_page_seos", + "info": { + "singularName": "pnk-token-page-seo", + "pluralName": "pnk-token-page-seos", + "displayName": "PNKTokenPageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/pnk-token-page-seo/controllers/pnk-token-page-seo.ts b/cms-backend/src/api/pnk-token-page-seo/controllers/pnk-token-page-seo.ts new file mode 100644 index 0000000..8df7f88 --- /dev/null +++ b/cms-backend/src/api/pnk-token-page-seo/controllers/pnk-token-page-seo.ts @@ -0,0 +1,7 @@ +/** + * pnk-token-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::pnk-token-page-seo.pnk-token-page-seo'); diff --git a/cms-backend/src/api/pnk-token-page-seo/routes/pnk-token-page-seo.ts b/cms-backend/src/api/pnk-token-page-seo/routes/pnk-token-page-seo.ts new file mode 100644 index 0000000..057dd37 --- /dev/null +++ b/cms-backend/src/api/pnk-token-page-seo/routes/pnk-token-page-seo.ts @@ -0,0 +1,7 @@ +/** + * pnk-token-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::pnk-token-page-seo.pnk-token-page-seo'); diff --git a/cms-backend/src/api/pnk-token-page-seo/services/pnk-token-page-seo.ts b/cms-backend/src/api/pnk-token-page-seo/services/pnk-token-page-seo.ts new file mode 100644 index 0000000..b2ba598 --- /dev/null +++ b/cms-backend/src/api/pnk-token-page-seo/services/pnk-token-page-seo.ts @@ -0,0 +1,7 @@ +/** + * pnk-token-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::pnk-token-page-seo.pnk-token-page-seo'); diff --git a/cms-backend/src/api/r-and-d-page-seo/content-types/r-and-d-page-seo/schema.json b/cms-backend/src/api/r-and-d-page-seo/content-types/r-and-d-page-seo/schema.json new file mode 100644 index 0000000..0d5a222 --- /dev/null +++ b/cms-backend/src/api/r-and-d-page-seo/content-types/r-and-d-page-seo/schema.json @@ -0,0 +1,20 @@ +{ + "kind": "singleType", + "collectionName": "r_and_d_page_seos", + "info": { + "singularName": "r-and-d-page-seo", + "pluralName": "r-and-d-page-seos", + "displayName": "R&DPageSEO" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "SEO": { + "type": "component", + "repeatable": false, + "component": "content.seo" + } + } +} diff --git a/cms-backend/src/api/r-and-d-page-seo/controllers/r-and-d-page-seo.ts b/cms-backend/src/api/r-and-d-page-seo/controllers/r-and-d-page-seo.ts new file mode 100644 index 0000000..97956a3 --- /dev/null +++ b/cms-backend/src/api/r-and-d-page-seo/controllers/r-and-d-page-seo.ts @@ -0,0 +1,7 @@ +/** + * r-and-d-page-seo controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::r-and-d-page-seo.r-and-d-page-seo'); diff --git a/cms-backend/src/api/r-and-d-page-seo/routes/r-and-d-page-seo.ts b/cms-backend/src/api/r-and-d-page-seo/routes/r-and-d-page-seo.ts new file mode 100644 index 0000000..4eb6f5d --- /dev/null +++ b/cms-backend/src/api/r-and-d-page-seo/routes/r-and-d-page-seo.ts @@ -0,0 +1,7 @@ +/** + * r-and-d-page-seo router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::r-and-d-page-seo.r-and-d-page-seo'); diff --git a/cms-backend/src/api/r-and-d-page-seo/services/r-and-d-page-seo.ts b/cms-backend/src/api/r-and-d-page-seo/services/r-and-d-page-seo.ts new file mode 100644 index 0000000..5f4ce16 --- /dev/null +++ b/cms-backend/src/api/r-and-d-page-seo/services/r-and-d-page-seo.ts @@ -0,0 +1,7 @@ +/** + * r-and-d-page-seo service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::r-and-d-page-seo.r-and-d-page-seo'); diff --git a/cms-backend/src/components/content/seo.json b/cms-backend/src/components/content/seo.json new file mode 100644 index 0000000..289595a --- /dev/null +++ b/cms-backend/src/components/content/seo.json @@ -0,0 +1,25 @@ +{ + "collectionName": "components_content_seos", + "info": { + "displayName": "SEO" + }, + "options": {}, + "attributes": { + "title": { + "type": "string", + "required": true + }, + "description": { + "type": "string", + "required": true + }, + "image": { + "allowedTypes": [ + "images" + ], + "type": "media", + "multiple": false, + "required": true + } + } +} diff --git a/cms-backend/types/generated/components.d.ts b/cms-backend/types/generated/components.d.ts index 9b32d6b..5e40aaf 100644 --- a/cms-backend/types/generated/components.d.ts +++ b/cms-backend/types/generated/components.d.ts @@ -117,6 +117,18 @@ export interface ContentSection extends Struct.ComponentSchema { }; } +export interface ContentSeo extends Struct.ComponentSchema { + collectionName: 'components_content_seos'; + info: { + displayName: 'SEO'; + }; + attributes: { + description: Schema.Attribute.String & Schema.Attribute.Required; + image: Schema.Attribute.Media<'images'> & Schema.Attribute.Required; + title: Schema.Attribute.String & Schema.Attribute.Required; + }; +} + export interface ContentStatDisplay extends Struct.ComponentSchema { collectionName: 'components_content_stat_display'; info: { @@ -416,6 +428,7 @@ declare module '@strapi/strapi' { 'content.navlink': ContentNavlink; 'content.responsive-media': ContentResponsiveMedia; 'content.section': ContentSection; + 'content.seo': ContentSeo; 'content.stat-display': ContentStatDisplay; 'cooperative-report-page.learn-more-section': CooperativeReportPageLearnMoreSection; 'cooperative-report-page.report-card': CooperativeReportPageReportCard; diff --git a/cms-backend/types/generated/contentTypes.d.ts b/cms-backend/types/generated/contentTypes.d.ts index b335305..0b6ecd3 100644 --- a/cms-backend/types/generated/contentTypes.d.ts +++ b/cms-backend/types/generated/contentTypes.d.ts @@ -633,6 +633,35 @@ export interface ApiBrandAssetsPagePnkTokenSectionBrandAssetsPagePnkTokenSection }; } +export interface ApiBrandAssetsPageSeoBrandAssetsPageSeo + extends Struct.SingleTypeSchema { + collectionName: 'brand_assets_page_seos'; + info: { + displayName: 'BrandAssetsPageSEO'; + pluralName: 'brand-assets-page-seos'; + singularName: 'brand-assets-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::brand-assets-page-seo.brand-assets-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiBrandAssetsPageStyledImagesSectionBrandAssetsPageStyledImagesSection extends Struct.SingleTypeSchema { collectionName: 'brand_assets_page_styled_images_sections'; @@ -708,6 +737,35 @@ export interface ApiCommunityPageHeroCommunityPageHero }; } +export interface ApiCommunityPageSeoCommunityPageSeo + extends Struct.SingleTypeSchema { + collectionName: 'community_page_seos'; + info: { + displayName: 'CommunityPageSEO'; + pluralName: 'community-page-seos'; + singularName: 'community-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::community-page-seo.community-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiCommunityCommunity extends Struct.CollectionTypeSchema { collectionName: 'communities'; info: { @@ -845,6 +903,35 @@ export interface ApiCooperativePageReportSectionCooperativePageReportSection }; } +export interface ApiCooperativePageSeoCooperativePageSeo + extends Struct.SingleTypeSchema { + collectionName: 'cooperative_page_seos'; + info: { + displayName: 'CooperativePageSEO'; + pluralName: 'cooperative-page-seos'; + singularName: 'cooperative-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::cooperative-page-seo.cooperative-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiCourtCourt extends Struct.CollectionTypeSchema { collectionName: 'courts'; info: { @@ -986,6 +1073,34 @@ export interface ApiEarnPageHeroEarnPageHero extends Struct.SingleTypeSchema { }; } +export interface ApiEarnPageSeoEarnPageSeo extends Struct.SingleTypeSchema { + collectionName: 'earn_page_seos'; + info: { + displayName: 'EarnPageSEO'; + pluralName: 'earn-page-seos'; + singularName: 'earn-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::earn-page-seo.earn-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiExchangeExchange extends Struct.CollectionTypeSchema { collectionName: 'exchanges'; info: { @@ -1219,6 +1334,35 @@ export interface ApiForBuildersPageIntegrateSectionForBuildersPageIntegrateSecti }; } +export interface ApiForBuildersPageSeoForBuildersPageSeo + extends Struct.SingleTypeSchema { + collectionName: 'for_builders_page_seos'; + info: { + displayName: 'ForBuildersPageSEO'; + pluralName: 'for-builders-page-seos'; + singularName: 'for-builders-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::for-builders-page-seo.for-builders-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiForBuildersPageUseCasesSectionForBuildersPageUseCasesSection extends Struct.SingleTypeSchema { collectionName: 'for_builders_page_use_cases_section'; @@ -1531,6 +1675,35 @@ export interface ApiForLawyersPageParticipateSectionForLawyersPageParticipateSec }; } +export interface ApiForLawyersPageSeoForLawyersPageSeo + extends Struct.SingleTypeSchema { + collectionName: 'for_lawyers_page_seos'; + info: { + displayName: 'ForLawyersPageSEO'; + pluralName: 'for-lawyers-page-seos'; + singularName: 'for-lawyers-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::for-lawyers-page-seo.for-lawyers-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiHomeCaseStudiesSectionHomeCaseStudiesSection extends Struct.SingleTypeSchema { collectionName: 'home_case_studies_sections'; @@ -1702,6 +1875,34 @@ export interface ApiHomePageHeroHomePageHero extends Struct.SingleTypeSchema { }; } +export interface ApiHomePageSeoHomePageSeo extends Struct.SingleTypeSchema { + collectionName: 'home_page_seos'; + info: { + displayName: 'HomePageSEO'; + pluralName: 'home-page-seos'; + singularName: 'home-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::home-page-seo.home-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiHomeStartEarningSectionHomeStartEarningSection extends Struct.SingleTypeSchema { collectionName: 'home_start_earning_sections'; @@ -2137,6 +2338,35 @@ export interface ApiPnkTokenPageNeedSectionPnkTokenPageNeedSection }; } +export interface ApiPnkTokenPageSeoPnkTokenPageSeo + extends Struct.SingleTypeSchema { + collectionName: 'pnk_token_page_seos'; + info: { + displayName: 'PNKTokenPageSEO'; + pluralName: 'pnk-token-page-seos'; + singularName: 'pnk-token-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::pnk-token-page-seo.pnk-token-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiPnkTokenPageTokenomicsSectionPnkTokenPageTokenomicsSection extends Struct.SingleTypeSchema { collectionName: 'pnk_token_page_tokenomics_sections'; @@ -2283,6 +2513,34 @@ export interface ApiRAndDPageResearchTabSectionRAndDPageResearchTabSection }; } +export interface ApiRAndDPageSeoRAndDPageSeo extends Struct.SingleTypeSchema { + collectionName: 'r_and_d_page_seos'; + info: { + displayName: 'R&DPageSEO'; + pluralName: 'r-and-d-page-seos'; + singularName: 'r-and-d-page-seo'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::r-and-d-page-seo.r-and-d-page-seo' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + SEO: Schema.Attribute.Component<'content.seo', false>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiResearchResearch extends Struct.CollectionTypeSchema { collectionName: 'researches'; info: { @@ -3173,16 +3431,20 @@ declare module '@strapi/strapi' { 'api::brand-assets-page-kleros-logo-section.brand-assets-page-kleros-logo-section': ApiBrandAssetsPageKlerosLogoSectionBrandAssetsPageKlerosLogoSection; 'api::brand-assets-page-logos-package-section.brand-assets-page-logos-package-section': ApiBrandAssetsPageLogosPackageSectionBrandAssetsPageLogosPackageSection; 'api::brand-assets-page-pnk-token-section.brand-assets-page-pnk-token-section': ApiBrandAssetsPagePnkTokenSectionBrandAssetsPagePnkTokenSection; + 'api::brand-assets-page-seo.brand-assets-page-seo': ApiBrandAssetsPageSeoBrandAssetsPageSeo; 'api::brand-assets-page-styled-images-section.brand-assets-page-styled-images-section': ApiBrandAssetsPageStyledImagesSectionBrandAssetsPageStyledImagesSection; 'api::community-page-hero.community-page-hero': ApiCommunityPageHeroCommunityPageHero; + 'api::community-page-seo.community-page-seo': ApiCommunityPageSeoCommunityPageSeo; 'api::community.community': ApiCommunityCommunity; 'api::cooperative-page-hero.cooperative-page-hero': ApiCooperativePageHeroCooperativePageHero; 'api::cooperative-page-member-section.cooperative-page-member-section': ApiCooperativePageMemberSectionCooperativePageMemberSection; 'api::cooperative-page-report-section.cooperative-page-report-section': ApiCooperativePageReportSectionCooperativePageReportSection; + 'api::cooperative-page-seo.cooperative-page-seo': ApiCooperativePageSeoCooperativePageSeo; 'api::court.court': ApiCourtCourt; 'api::earn-page-become-a-curator-tab-content.earn-page-become-a-curator-tab-content': ApiEarnPageBecomeACuratorTabContentEarnPageBecomeACuratorTabContent; 'api::earn-page-become-a-juror-tab-content.earn-page-become-a-juror-tab-content': ApiEarnPageBecomeAJurorTabContentEarnPageBecomeAJurorTabContent; 'api::earn-page-hero.earn-page-hero': ApiEarnPageHeroEarnPageHero; + 'api::earn-page-seo.earn-page-seo': ApiEarnPageSeoEarnPageSeo; 'api::exchange.exchange': ApiExchangeExchange; 'api::fellow.fellow': ApiFellowFellow; 'api::footer-links-section.footer-links-section': ApiFooterLinksSectionFooterLinksSection; @@ -3190,6 +3452,7 @@ declare module '@strapi/strapi' { 'api::footer-subscribe-cta.footer-subscribe-cta': ApiFooterSubscribeCtaFooterSubscribeCta; 'api::for-builders-page-hero.for-builders-page-hero': ApiForBuildersPageHeroForBuildersPageHero; 'api::for-builders-page-integrate-section.for-builders-page-integrate-section': ApiForBuildersPageIntegrateSectionForBuildersPageIntegrateSection; + 'api::for-builders-page-seo.for-builders-page-seo': ApiForBuildersPageSeoForBuildersPageSeo; 'api::for-builders-page-use-cases-section.for-builders-page-use-cases-section': ApiForBuildersPageUseCasesSectionForBuildersPageUseCasesSection; 'api::for-lawyers-page-become-a-fellow-section.for-lawyers-page-become-a-fellow-section': ApiForLawyersPageBecomeAFellowSectionForLawyersPageBecomeAFellowSection; 'api::for-lawyers-page-dispute-resolution-with-kleros-section.for-lawyers-page-dispute-resolution-with-kleros-section': ApiForLawyersPageDisputeResolutionWithKlerosSectionForLawyersPageDisputeResolutionWithKlerosSection; @@ -3198,11 +3461,13 @@ declare module '@strapi/strapi' { 'api::for-lawyers-page-kleros-escrow-section.for-lawyers-page-kleros-escrow-section': ApiForLawyersPageKlerosEscrowSectionForLawyersPageKlerosEscrowSection; 'api::for-lawyers-page-mediation-section.for-lawyers-page-mediation-section': ApiForLawyersPageMediationSectionForLawyersPageMediationSection; 'api::for-lawyers-page-participate-section.for-lawyers-page-participate-section': ApiForLawyersPageParticipateSectionForLawyersPageParticipateSection; + 'api::for-lawyers-page-seo.for-lawyers-page-seo': ApiForLawyersPageSeoForLawyersPageSeo; 'api::home-case-studies-section.home-case-studies-section': ApiHomeCaseStudiesSectionHomeCaseStudiesSection; 'api::home-get-in-touch-section.home-get-in-touch-section': ApiHomeGetInTouchSectionHomeGetInTouchSection; 'api::home-how-kleros-works-section.home-how-kleros-works-section': ApiHomeHowKlerosWorksSectionHomeHowKlerosWorksSection; 'api::home-learn-posts-section.home-learn-posts-section': ApiHomeLearnPostsSectionHomeLearnPostsSection; 'api::home-page-hero.home-page-hero': ApiHomePageHeroHomePageHero; + 'api::home-page-seo.home-page-seo': ApiHomePageSeoHomePageSeo; 'api::home-start-earning-section.home-start-earning-section': ApiHomeStartEarningSectionHomeStartEarningSection; 'api::home-use-cases-section.home-use-cases-section': ApiHomeUseCasesSectionHomeUseCasesSection; 'api::institution.institution': ApiInstitutionInstitution; @@ -3217,10 +3482,12 @@ declare module '@strapi/strapi' { 'api::pnk-token-page-buy-section.pnk-token-page-buy-section': ApiPnkTokenPageBuySectionPnkTokenPageBuySection; 'api::pnk-token-page-hero.pnk-token-page-hero': ApiPnkTokenPageHeroPnkTokenPageHero; 'api::pnk-token-page-need-section.pnk-token-page-need-section': ApiPnkTokenPageNeedSectionPnkTokenPageNeedSection; + 'api::pnk-token-page-seo.pnk-token-page-seo': ApiPnkTokenPageSeoPnkTokenPageSeo; 'api::pnk-token-page-tokenomics-section.pnk-token-page-tokenomics-section': ApiPnkTokenPageTokenomicsSectionPnkTokenPageTokenomicsSection; 'api::r-and-d-page-fellowship-tab-section.r-and-d-page-fellowship-tab-section': ApiRAndDPageFellowshipTabSectionRAndDPageFellowshipTabSection; 'api::r-and-d-page-hero.r-and-d-page-hero': ApiRAndDPageHeroRAndDPageHero; 'api::r-and-d-page-research-tab-section.r-and-d-page-research-tab-section': ApiRAndDPageResearchTabSectionRAndDPageResearchTabSection; + 'api::r-and-d-page-seo.r-and-d-page-seo': ApiRAndDPageSeoRAndDPageSeo; 'api::research.research': ApiResearchResearch; 'api::risk-report.risk-report': ApiRiskReportRiskReport; 'api::social.social': ApiSocialSocial;