From 204ff700d7896a1b3a1f6b971e78998baa1ad257 Mon Sep 17 00:00:00 2001 From: alcercu <333aleix333@gmail.com> Date: Mon, 13 Jan 2025 14:57:32 +0100 Subject: [PATCH 1/2] feat(cms): add home types --- .../content-types/blog-post/schema.json | 40 ++++ .../api/blog-post/controllers/blog-post.ts | 7 + .../src/api/blog-post/routes/blog-post.ts | 7 + .../src/api/blog-post/services/blog-post.ts | 7 + .../home-case-studies-section/schema.json | 28 +++ .../controllers/home-case-studies-section.ts | 7 + .../routes/home-case-studies-section.ts | 7 + .../services/home-case-studies-section.ts | 7 + .../home-get-in-touch-section/schema.json | 41 ++++ .../controllers/home-get-in-touch-section.ts | 7 + .../routes/home-get-in-touch-section.ts | 7 + .../services/home-get-in-touch-section.ts | 7 + .../home-how-kleros-works-section/schema.json | 38 ++++ .../home-how-kleros-works-section.ts | 7 + .../routes/home-how-kleros-works-section.ts | 7 + .../services/home-how-kleros-works-section.ts | 7 + .../home-learn-posts-section/schema.json | 27 +++ .../controllers/home-learn-posts-section.ts | 7 + .../routes/home-learn-posts-section.ts | 7 + .../services/home-learn-posts-section.ts | 7 + .../home-start-earning-section/schema.json | 33 +++ .../controllers/home-start-earning-section.ts | 7 + .../routes/home-start-earning-section.ts | 7 + .../services/home-start-earning-section.ts | 7 + .../src/components/home-page/card.json | 32 +++ cms-backend/types/generated/components.d.ts | 15 ++ cms-backend/types/generated/contentTypes.d.ts | 201 ++++++++++++++++++ 27 files changed, 581 insertions(+) create mode 100644 cms-backend/src/api/blog-post/content-types/blog-post/schema.json create mode 100644 cms-backend/src/api/blog-post/controllers/blog-post.ts create mode 100644 cms-backend/src/api/blog-post/routes/blog-post.ts create mode 100644 cms-backend/src/api/blog-post/services/blog-post.ts create mode 100644 cms-backend/src/api/home-case-studies-section/content-types/home-case-studies-section/schema.json create mode 100644 cms-backend/src/api/home-case-studies-section/controllers/home-case-studies-section.ts create mode 100644 cms-backend/src/api/home-case-studies-section/routes/home-case-studies-section.ts create mode 100644 cms-backend/src/api/home-case-studies-section/services/home-case-studies-section.ts create mode 100644 cms-backend/src/api/home-get-in-touch-section/content-types/home-get-in-touch-section/schema.json create mode 100644 cms-backend/src/api/home-get-in-touch-section/controllers/home-get-in-touch-section.ts create mode 100644 cms-backend/src/api/home-get-in-touch-section/routes/home-get-in-touch-section.ts create mode 100644 cms-backend/src/api/home-get-in-touch-section/services/home-get-in-touch-section.ts create mode 100644 cms-backend/src/api/home-how-kleros-works-section/content-types/home-how-kleros-works-section/schema.json create mode 100644 cms-backend/src/api/home-how-kleros-works-section/controllers/home-how-kleros-works-section.ts create mode 100644 cms-backend/src/api/home-how-kleros-works-section/routes/home-how-kleros-works-section.ts create mode 100644 cms-backend/src/api/home-how-kleros-works-section/services/home-how-kleros-works-section.ts create mode 100644 cms-backend/src/api/home-learn-posts-section/content-types/home-learn-posts-section/schema.json create mode 100644 cms-backend/src/api/home-learn-posts-section/controllers/home-learn-posts-section.ts create mode 100644 cms-backend/src/api/home-learn-posts-section/routes/home-learn-posts-section.ts create mode 100644 cms-backend/src/api/home-learn-posts-section/services/home-learn-posts-section.ts create mode 100644 cms-backend/src/api/home-start-earning-section/content-types/home-start-earning-section/schema.json create mode 100644 cms-backend/src/api/home-start-earning-section/controllers/home-start-earning-section.ts create mode 100644 cms-backend/src/api/home-start-earning-section/routes/home-start-earning-section.ts create mode 100644 cms-backend/src/api/home-start-earning-section/services/home-start-earning-section.ts create mode 100644 cms-backend/src/components/home-page/card.json diff --git a/cms-backend/src/api/blog-post/content-types/blog-post/schema.json b/cms-backend/src/api/blog-post/content-types/blog-post/schema.json new file mode 100644 index 0000000..5b5739f --- /dev/null +++ b/cms-backend/src/api/blog-post/content-types/blog-post/schema.json @@ -0,0 +1,40 @@ +{ + "kind": "collectionType", + "collectionName": "blog_posts", + "info": { + "singularName": "blog-post", + "pluralName": "blog-posts", + "displayName": "BlogPost" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "icon": { + "allowedTypes": [ + "images", + "files", + "videos", + "audios" + ], + "type": "media", + "multiple": false + }, + "title": { + "type": "string", + "required": true + }, + "subtitle": { + "type": "string" + }, + "url": { + "type": "string", + "required": true + }, + "urlName": { + "type": "string", + "required": false + } + } +} diff --git a/cms-backend/src/api/blog-post/controllers/blog-post.ts b/cms-backend/src/api/blog-post/controllers/blog-post.ts new file mode 100644 index 0000000..4e7c76b --- /dev/null +++ b/cms-backend/src/api/blog-post/controllers/blog-post.ts @@ -0,0 +1,7 @@ +/** + * blog-post controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::blog-post.blog-post'); diff --git a/cms-backend/src/api/blog-post/routes/blog-post.ts b/cms-backend/src/api/blog-post/routes/blog-post.ts new file mode 100644 index 0000000..965c3d7 --- /dev/null +++ b/cms-backend/src/api/blog-post/routes/blog-post.ts @@ -0,0 +1,7 @@ +/** + * blog-post router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::blog-post.blog-post'); diff --git a/cms-backend/src/api/blog-post/services/blog-post.ts b/cms-backend/src/api/blog-post/services/blog-post.ts new file mode 100644 index 0000000..b325fb3 --- /dev/null +++ b/cms-backend/src/api/blog-post/services/blog-post.ts @@ -0,0 +1,7 @@ +/** + * blog-post service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::blog-post.blog-post'); diff --git a/cms-backend/src/api/home-case-studies-section/content-types/home-case-studies-section/schema.json b/cms-backend/src/api/home-case-studies-section/content-types/home-case-studies-section/schema.json new file mode 100644 index 0000000..20d6abe --- /dev/null +++ b/cms-backend/src/api/home-case-studies-section/content-types/home-case-studies-section/schema.json @@ -0,0 +1,28 @@ +{ + "kind": "singleType", + "collectionName": "home_case_studies_sections", + "info": { + "singularName": "home-case-studies-section", + "pluralName": "home-case-studies-sections", + "displayName": "HomeCaseStudiesSection" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "title": { + "type": "string", + "required": true + }, + "subtitle": { + "type": "text", + "required": false + }, + "blog_posts": { + "type": "relation", + "relation": "oneToMany", + "target": "api::blog-post.blog-post" + } + } +} diff --git a/cms-backend/src/api/home-case-studies-section/controllers/home-case-studies-section.ts b/cms-backend/src/api/home-case-studies-section/controllers/home-case-studies-section.ts new file mode 100644 index 0000000..74620c3 --- /dev/null +++ b/cms-backend/src/api/home-case-studies-section/controllers/home-case-studies-section.ts @@ -0,0 +1,7 @@ +/** + * home-case-studies-section controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::home-case-studies-section.home-case-studies-section'); diff --git a/cms-backend/src/api/home-case-studies-section/routes/home-case-studies-section.ts b/cms-backend/src/api/home-case-studies-section/routes/home-case-studies-section.ts new file mode 100644 index 0000000..5877f33 --- /dev/null +++ b/cms-backend/src/api/home-case-studies-section/routes/home-case-studies-section.ts @@ -0,0 +1,7 @@ +/** + * home-case-studies-section router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::home-case-studies-section.home-case-studies-section'); diff --git a/cms-backend/src/api/home-case-studies-section/services/home-case-studies-section.ts b/cms-backend/src/api/home-case-studies-section/services/home-case-studies-section.ts new file mode 100644 index 0000000..eb5e450 --- /dev/null +++ b/cms-backend/src/api/home-case-studies-section/services/home-case-studies-section.ts @@ -0,0 +1,7 @@ +/** + * home-case-studies-section service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::home-case-studies-section.home-case-studies-section'); diff --git a/cms-backend/src/api/home-get-in-touch-section/content-types/home-get-in-touch-section/schema.json b/cms-backend/src/api/home-get-in-touch-section/content-types/home-get-in-touch-section/schema.json new file mode 100644 index 0000000..3b137cf --- /dev/null +++ b/cms-backend/src/api/home-get-in-touch-section/content-types/home-get-in-touch-section/schema.json @@ -0,0 +1,41 @@ +{ + "kind": "singleType", + "collectionName": "home_get_in_touch_sections", + "info": { + "singularName": "home-get-in-touch-section", + "pluralName": "home-get-in-touch-sections", + "displayName": "HomeGetInTouchSection" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "title": { + "type": "string", + "required": true + }, + "subtitle": { + "type": "string" + }, + "link": { + "type": "relation", + "relation": "oneToOne", + "target": "api::link.link" + }, + "cta_text": { + "type": "string", + "required": true + }, + "icon": { + "allowedTypes": [ + "images", + "files", + "videos", + "audios" + ], + "type": "media", + "multiple": false + } + } +} diff --git a/cms-backend/src/api/home-get-in-touch-section/controllers/home-get-in-touch-section.ts b/cms-backend/src/api/home-get-in-touch-section/controllers/home-get-in-touch-section.ts new file mode 100644 index 0000000..39baee5 --- /dev/null +++ b/cms-backend/src/api/home-get-in-touch-section/controllers/home-get-in-touch-section.ts @@ -0,0 +1,7 @@ +/** + * home-get-in-touch-section controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::home-get-in-touch-section.home-get-in-touch-section'); diff --git a/cms-backend/src/api/home-get-in-touch-section/routes/home-get-in-touch-section.ts b/cms-backend/src/api/home-get-in-touch-section/routes/home-get-in-touch-section.ts new file mode 100644 index 0000000..75ac443 --- /dev/null +++ b/cms-backend/src/api/home-get-in-touch-section/routes/home-get-in-touch-section.ts @@ -0,0 +1,7 @@ +/** + * home-get-in-touch-section router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::home-get-in-touch-section.home-get-in-touch-section'); diff --git a/cms-backend/src/api/home-get-in-touch-section/services/home-get-in-touch-section.ts b/cms-backend/src/api/home-get-in-touch-section/services/home-get-in-touch-section.ts new file mode 100644 index 0000000..b0e73ef --- /dev/null +++ b/cms-backend/src/api/home-get-in-touch-section/services/home-get-in-touch-section.ts @@ -0,0 +1,7 @@ +/** + * home-get-in-touch-section service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::home-get-in-touch-section.home-get-in-touch-section'); diff --git a/cms-backend/src/api/home-how-kleros-works-section/content-types/home-how-kleros-works-section/schema.json b/cms-backend/src/api/home-how-kleros-works-section/content-types/home-how-kleros-works-section/schema.json new file mode 100644 index 0000000..27ce80b --- /dev/null +++ b/cms-backend/src/api/home-how-kleros-works-section/content-types/home-how-kleros-works-section/schema.json @@ -0,0 +1,38 @@ +{ + "kind": "singleType", + "collectionName": "home_how_kleros_works_sections", + "info": { + "singularName": "home-how-kleros-works-section", + "pluralName": "home-how-kleros-works-sections", + "displayName": "HomeHowKlerosWorksSection" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "label": { + "type": "string", + "required": true + }, + "title": { + "type": "string", + "required": true + }, + "subtitle": { + "type": "string", + "required": true + }, + "explainer": { + "allowedTypes": [ + "images", + "files", + "videos", + "audios" + ], + "type": "media", + "multiple": false, + "required": true + } + } +} diff --git a/cms-backend/src/api/home-how-kleros-works-section/controllers/home-how-kleros-works-section.ts b/cms-backend/src/api/home-how-kleros-works-section/controllers/home-how-kleros-works-section.ts new file mode 100644 index 0000000..d290800 --- /dev/null +++ b/cms-backend/src/api/home-how-kleros-works-section/controllers/home-how-kleros-works-section.ts @@ -0,0 +1,7 @@ +/** + * home-how-kleros-works-section controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::home-how-kleros-works-section.home-how-kleros-works-section'); diff --git a/cms-backend/src/api/home-how-kleros-works-section/routes/home-how-kleros-works-section.ts b/cms-backend/src/api/home-how-kleros-works-section/routes/home-how-kleros-works-section.ts new file mode 100644 index 0000000..61f386d --- /dev/null +++ b/cms-backend/src/api/home-how-kleros-works-section/routes/home-how-kleros-works-section.ts @@ -0,0 +1,7 @@ +/** + * home-how-kleros-works-section router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::home-how-kleros-works-section.home-how-kleros-works-section'); diff --git a/cms-backend/src/api/home-how-kleros-works-section/services/home-how-kleros-works-section.ts b/cms-backend/src/api/home-how-kleros-works-section/services/home-how-kleros-works-section.ts new file mode 100644 index 0000000..86e89db --- /dev/null +++ b/cms-backend/src/api/home-how-kleros-works-section/services/home-how-kleros-works-section.ts @@ -0,0 +1,7 @@ +/** + * home-how-kleros-works-section service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::home-how-kleros-works-section.home-how-kleros-works-section'); diff --git a/cms-backend/src/api/home-learn-posts-section/content-types/home-learn-posts-section/schema.json b/cms-backend/src/api/home-learn-posts-section/content-types/home-learn-posts-section/schema.json new file mode 100644 index 0000000..bc303bb --- /dev/null +++ b/cms-backend/src/api/home-learn-posts-section/content-types/home-learn-posts-section/schema.json @@ -0,0 +1,27 @@ +{ + "kind": "singleType", + "collectionName": "home_learn_posts_sections", + "info": { + "singularName": "home-learn-posts-section", + "pluralName": "home-learn-posts-sections", + "displayName": "HomeLearnPostsSection" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "title": { + "type": "string", + "required": true + }, + "subtitle": { + "type": "string" + }, + "blog_posts": { + "type": "relation", + "relation": "oneToMany", + "target": "api::blog-post.blog-post" + } + } +} diff --git a/cms-backend/src/api/home-learn-posts-section/controllers/home-learn-posts-section.ts b/cms-backend/src/api/home-learn-posts-section/controllers/home-learn-posts-section.ts new file mode 100644 index 0000000..6b1501f --- /dev/null +++ b/cms-backend/src/api/home-learn-posts-section/controllers/home-learn-posts-section.ts @@ -0,0 +1,7 @@ +/** + * home-learn-posts-section controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::home-learn-posts-section.home-learn-posts-section'); diff --git a/cms-backend/src/api/home-learn-posts-section/routes/home-learn-posts-section.ts b/cms-backend/src/api/home-learn-posts-section/routes/home-learn-posts-section.ts new file mode 100644 index 0000000..d6ead6f --- /dev/null +++ b/cms-backend/src/api/home-learn-posts-section/routes/home-learn-posts-section.ts @@ -0,0 +1,7 @@ +/** + * home-learn-posts-section router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::home-learn-posts-section.home-learn-posts-section'); diff --git a/cms-backend/src/api/home-learn-posts-section/services/home-learn-posts-section.ts b/cms-backend/src/api/home-learn-posts-section/services/home-learn-posts-section.ts new file mode 100644 index 0000000..7976274 --- /dev/null +++ b/cms-backend/src/api/home-learn-posts-section/services/home-learn-posts-section.ts @@ -0,0 +1,7 @@ +/** + * home-learn-posts-section service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::home-learn-posts-section.home-learn-posts-section'); diff --git a/cms-backend/src/api/home-start-earning-section/content-types/home-start-earning-section/schema.json b/cms-backend/src/api/home-start-earning-section/content-types/home-start-earning-section/schema.json new file mode 100644 index 0000000..5cfc94a --- /dev/null +++ b/cms-backend/src/api/home-start-earning-section/content-types/home-start-earning-section/schema.json @@ -0,0 +1,33 @@ +{ + "kind": "singleType", + "collectionName": "home_start_earning_sections", + "info": { + "singularName": "home-start-earning-section", + "pluralName": "home-start-earning-sections", + "displayName": "HomeStartEarningSection", + "description": "" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "title": { + "type": "string", + "required": true + }, + "subtitle": { + "type": "string" + }, + "Cards": { + "type": "component", + "repeatable": true, + "component": "home-page.card" + }, + "cta": { + "type": "component", + "repeatable": true, + "component": "content.section" + } + } +} diff --git a/cms-backend/src/api/home-start-earning-section/controllers/home-start-earning-section.ts b/cms-backend/src/api/home-start-earning-section/controllers/home-start-earning-section.ts new file mode 100644 index 0000000..863ef7f --- /dev/null +++ b/cms-backend/src/api/home-start-earning-section/controllers/home-start-earning-section.ts @@ -0,0 +1,7 @@ +/** + * home-start-earning-section controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::home-start-earning-section.home-start-earning-section'); diff --git a/cms-backend/src/api/home-start-earning-section/routes/home-start-earning-section.ts b/cms-backend/src/api/home-start-earning-section/routes/home-start-earning-section.ts new file mode 100644 index 0000000..ee2285a --- /dev/null +++ b/cms-backend/src/api/home-start-earning-section/routes/home-start-earning-section.ts @@ -0,0 +1,7 @@ +/** + * home-start-earning-section router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::home-start-earning-section.home-start-earning-section'); diff --git a/cms-backend/src/api/home-start-earning-section/services/home-start-earning-section.ts b/cms-backend/src/api/home-start-earning-section/services/home-start-earning-section.ts new file mode 100644 index 0000000..14146c0 --- /dev/null +++ b/cms-backend/src/api/home-start-earning-section/services/home-start-earning-section.ts @@ -0,0 +1,7 @@ +/** + * home-start-earning-section service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::home-start-earning-section.home-start-earning-section'); diff --git a/cms-backend/src/components/home-page/card.json b/cms-backend/src/components/home-page/card.json new file mode 100644 index 0000000..b366465 --- /dev/null +++ b/cms-backend/src/components/home-page/card.json @@ -0,0 +1,32 @@ +{ + "collectionName": "components_home_page_cards", + "info": { + "displayName": "Card", + "description": "" + }, + "options": {}, + "attributes": { + "title": { + "type": "string", + "required": true + }, + "subtitle": { + "type": "string", + "required": true + }, + "icon": { + "type": "media", + "multiple": false, + "required": false, + "allowedTypes": [ + "images", + "files", + "videos", + "audios" + ] + }, + "url": { + "type": "string" + } + } +} diff --git a/cms-backend/types/generated/components.d.ts b/cms-backend/types/generated/components.d.ts index 1c8e381..05b40ef 100644 --- a/cms-backend/types/generated/components.d.ts +++ b/cms-backend/types/generated/components.d.ts @@ -24,6 +24,20 @@ export interface PnkTokenPageTokenStatDisplay extends Struct.ComponentSchema { }; } +export interface HomePageCard extends Struct.ComponentSchema { + collectionName: 'components_home_page_cards'; + info: { + displayName: 'Card'; + description: ''; + }; + attributes: { + title: Schema.Attribute.String & Schema.Attribute.Required; + subtitle: Schema.Attribute.String & Schema.Attribute.Required; + icon: Schema.Attribute.Media<'images' | 'files' | 'videos' | 'audios'>; + url: Schema.Attribute.String; + }; +} + export interface ForBuildersPageSolutionSection extends Struct.ComponentSchema { collectionName: 'solution_sections'; info: { @@ -201,6 +215,7 @@ declare module '@strapi/strapi' { export interface ComponentSchemas { 'r-and-d-page.kleros-book': RAndDPageKlerosBook; 'pnk-token-page.token-stat-display': PnkTokenPageTokenStatDisplay; + 'home-page.card': HomePageCard; 'for-builders-page.solution-section': ForBuildersPageSolutionSection; 'for-builders-page.key-challenge': ForBuildersPageKeyChallenge; 'for-builders-page.get-in-touch-section': ForBuildersPageGetInTouchSection; diff --git a/cms-backend/types/generated/contentTypes.d.ts b/cms-backend/types/generated/contentTypes.d.ts index 5d5ce4d..ca24a6a 100644 --- a/cms-backend/types/generated/contentTypes.d.ts +++ b/cms-backend/types/generated/contentTypes.d.ts @@ -515,6 +515,37 @@ export interface ApiAnnualReportAnnualReport }; } +export interface ApiBlogPostBlogPost extends Struct.CollectionTypeSchema { + collectionName: 'blog_posts'; + info: { + singularName: 'blog-post'; + pluralName: 'blog-posts'; + displayName: 'BlogPost'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + icon: Schema.Attribute.Media<'images' | 'files' | 'videos' | 'audios'>; + title: Schema.Attribute.String & Schema.Attribute.Required; + subtitle: Schema.Attribute.String; + url: Schema.Attribute.String & Schema.Attribute.Required; + urlName: Schema.Attribute.String; + createdAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + publishedAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::blog-post.blog-post' + >; + }; +} + export interface ApiCommunityCommunity extends Struct.CollectionTypeSchema { collectionName: 'communities'; info: { @@ -1083,6 +1114,138 @@ export interface ApiForBuildersPageUseCasesSectionForBuildersPageUseCasesSection }; } +export interface ApiHomeCaseStudiesSectionHomeCaseStudiesSection + extends Struct.SingleTypeSchema { + collectionName: 'home_case_studies_sections'; + info: { + singularName: 'home-case-studies-section'; + pluralName: 'home-case-studies-sections'; + displayName: 'HomeCaseStudiesSection'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + title: Schema.Attribute.String & Schema.Attribute.Required; + subtitle: Schema.Attribute.Text; + blog_posts: Schema.Attribute.Relation< + 'oneToMany', + 'api::blog-post.blog-post' + >; + createdAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + publishedAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::home-case-studies-section.home-case-studies-section' + >; + }; +} + +export interface ApiHomeGetInTouchSectionHomeGetInTouchSection + extends Struct.SingleTypeSchema { + collectionName: 'home_get_in_touch_sections'; + info: { + singularName: 'home-get-in-touch-section'; + pluralName: 'home-get-in-touch-sections'; + displayName: 'HomeGetInTouchSection'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + title: Schema.Attribute.String & Schema.Attribute.Required; + subtitle: Schema.Attribute.String; + link: Schema.Attribute.Relation<'oneToOne', 'api::link.link'>; + cta_text: Schema.Attribute.String & Schema.Attribute.Required; + icon: Schema.Attribute.Media<'images' | 'files' | 'videos' | 'audios'>; + createdAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + publishedAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::home-get-in-touch-section.home-get-in-touch-section' + >; + }; +} + +export interface ApiHomeHowKlerosWorksSectionHomeHowKlerosWorksSection + extends Struct.SingleTypeSchema { + collectionName: 'home_how_kleros_works_sections'; + info: { + singularName: 'home-how-kleros-works-section'; + pluralName: 'home-how-kleros-works-sections'; + displayName: 'HomeHowKlerosWorksSection'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + label: Schema.Attribute.String & Schema.Attribute.Required; + title: Schema.Attribute.String & Schema.Attribute.Required; + subtitle: Schema.Attribute.String & Schema.Attribute.Required; + explainer: Schema.Attribute.Media< + 'images' | 'files' | 'videos' | 'audios' + > & + Schema.Attribute.Required; + createdAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + publishedAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::home-how-kleros-works-section.home-how-kleros-works-section' + >; + }; +} + +export interface ApiHomeLearnPostsSectionHomeLearnPostsSection + extends Struct.SingleTypeSchema { + collectionName: 'home_learn_posts_sections'; + info: { + singularName: 'home-learn-posts-section'; + pluralName: 'home-learn-posts-sections'; + displayName: 'HomeLearnPostsSection'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + title: Schema.Attribute.String & Schema.Attribute.Required; + subtitle: Schema.Attribute.String; + blog_posts: Schema.Attribute.Relation< + 'oneToMany', + 'api::blog-post.blog-post' + >; + createdAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + publishedAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::home-learn-posts-section.home-learn-posts-section' + >; + }; +} + export interface ApiHomePageHeroHomePageHero extends Struct.SingleTypeSchema { collectionName: 'home_page_heroes'; info: { @@ -1118,6 +1281,38 @@ export interface ApiHomePageHeroHomePageHero extends Struct.SingleTypeSchema { }; } +export interface ApiHomeStartEarningSectionHomeStartEarningSection + extends Struct.SingleTypeSchema { + collectionName: 'home_start_earning_sections'; + info: { + singularName: 'home-start-earning-section'; + pluralName: 'home-start-earning-sections'; + displayName: 'HomeStartEarningSection'; + description: ''; + }; + options: { + draftAndPublish: true; + }; + attributes: { + title: Schema.Attribute.String & Schema.Attribute.Required; + subtitle: Schema.Attribute.String; + Cards: Schema.Attribute.Component<'home-page.card', true>; + cta: Schema.Attribute.Component<'content.section', true>; + createdAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + publishedAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::home-start-earning-section.home-start-earning-section' + >; + }; +} + export interface ApiKlerosLogoKlerosLogo extends Struct.SingleTypeSchema { collectionName: 'kleros_logo'; info: { @@ -2318,6 +2513,7 @@ declare module '@strapi/strapi' { 'plugin::users-permissions.role': PluginUsersPermissionsRole; 'plugin::users-permissions.user': PluginUsersPermissionsUser; 'api::annual-report.annual-report': ApiAnnualReportAnnualReport; + 'api::blog-post.blog-post': ApiBlogPostBlogPost; 'api::community.community': ApiCommunityCommunity; 'api::community-page-hero.community-page-hero': ApiCommunityPageHeroCommunityPageHero; 'api::cooperative-page-hero.cooperative-page-hero': ApiCooperativePageHeroCooperativePageHero; @@ -2335,7 +2531,12 @@ declare module '@strapi/strapi' { '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-use-cases-section.for-builders-page-use-cases-section': ApiForBuildersPageUseCasesSectionForBuildersPageUseCasesSection; + '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-start-earning-section.home-start-earning-section': ApiHomeStartEarningSectionHomeStartEarningSection; 'api::kleros-logo.kleros-logo': ApiKlerosLogoKlerosLogo; 'api::link.link': ApiLinkLink; 'api::navbar-apps-section.navbar-apps-section': ApiNavbarAppsSectionNavbarAppsSection; From 9f81968a0dbf553d1e5a3158ef3d9eeec01c87a0 Mon Sep 17 00:00:00 2001 From: alcercu <333aleix333@gmail.com> Date: Mon, 13 Jan 2025 17:07:48 +0100 Subject: [PATCH 2/2] refactor(cms): home types --- .../content-types/blog-post/schema.json | 40 -------------- .../api/blog-post/controllers/blog-post.ts | 7 --- .../src/api/blog-post/routes/blog-post.ts | 7 --- .../src/api/blog-post/services/blog-post.ts | 7 --- .../home-case-studies-section/schema.json | 5 -- .../home-get-in-touch-section/schema.json | 24 ++++----- .../home-how-kleros-works-section/schema.json | 17 ++++-- .../home-learn-posts-section/schema.json | 17 ++++-- .../home-start-earning-section/schema.json | 8 +-- .../card.json => content/link-card.json} | 23 ++++---- .../src/components/home/introduction.json | 20 +++++++ cms-backend/types/generated/components.d.ts | 31 +++++++---- cms-backend/types/generated/contentTypes.d.ts | 53 ++++--------------- 13 files changed, 105 insertions(+), 154 deletions(-) delete mode 100644 cms-backend/src/api/blog-post/content-types/blog-post/schema.json delete mode 100644 cms-backend/src/api/blog-post/controllers/blog-post.ts delete mode 100644 cms-backend/src/api/blog-post/routes/blog-post.ts delete mode 100644 cms-backend/src/api/blog-post/services/blog-post.ts rename cms-backend/src/components/{home-page/card.json => content/link-card.json} (67%) create mode 100644 cms-backend/src/components/home/introduction.json diff --git a/cms-backend/src/api/blog-post/content-types/blog-post/schema.json b/cms-backend/src/api/blog-post/content-types/blog-post/schema.json deleted file mode 100644 index 5b5739f..0000000 --- a/cms-backend/src/api/blog-post/content-types/blog-post/schema.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "kind": "collectionType", - "collectionName": "blog_posts", - "info": { - "singularName": "blog-post", - "pluralName": "blog-posts", - "displayName": "BlogPost" - }, - "options": { - "draftAndPublish": true - }, - "pluginOptions": {}, - "attributes": { - "icon": { - "allowedTypes": [ - "images", - "files", - "videos", - "audios" - ], - "type": "media", - "multiple": false - }, - "title": { - "type": "string", - "required": true - }, - "subtitle": { - "type": "string" - }, - "url": { - "type": "string", - "required": true - }, - "urlName": { - "type": "string", - "required": false - } - } -} diff --git a/cms-backend/src/api/blog-post/controllers/blog-post.ts b/cms-backend/src/api/blog-post/controllers/blog-post.ts deleted file mode 100644 index 4e7c76b..0000000 --- a/cms-backend/src/api/blog-post/controllers/blog-post.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * blog-post controller - */ - -import { factories } from '@strapi/strapi' - -export default factories.createCoreController('api::blog-post.blog-post'); diff --git a/cms-backend/src/api/blog-post/routes/blog-post.ts b/cms-backend/src/api/blog-post/routes/blog-post.ts deleted file mode 100644 index 965c3d7..0000000 --- a/cms-backend/src/api/blog-post/routes/blog-post.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * blog-post router - */ - -import { factories } from '@strapi/strapi'; - -export default factories.createCoreRouter('api::blog-post.blog-post'); diff --git a/cms-backend/src/api/blog-post/services/blog-post.ts b/cms-backend/src/api/blog-post/services/blog-post.ts deleted file mode 100644 index b325fb3..0000000 --- a/cms-backend/src/api/blog-post/services/blog-post.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * blog-post service - */ - -import { factories } from '@strapi/strapi'; - -export default factories.createCoreService('api::blog-post.blog-post'); diff --git a/cms-backend/src/api/home-case-studies-section/content-types/home-case-studies-section/schema.json b/cms-backend/src/api/home-case-studies-section/content-types/home-case-studies-section/schema.json index 20d6abe..61ea101 100644 --- a/cms-backend/src/api/home-case-studies-section/content-types/home-case-studies-section/schema.json +++ b/cms-backend/src/api/home-case-studies-section/content-types/home-case-studies-section/schema.json @@ -18,11 +18,6 @@ "subtitle": { "type": "text", "required": false - }, - "blog_posts": { - "type": "relation", - "relation": "oneToMany", - "target": "api::blog-post.blog-post" } } } diff --git a/cms-backend/src/api/home-get-in-touch-section/content-types/home-get-in-touch-section/schema.json b/cms-backend/src/api/home-get-in-touch-section/content-types/home-get-in-touch-section/schema.json index 3b137cf..cb8b8ba 100644 --- a/cms-backend/src/api/home-get-in-touch-section/content-types/home-get-in-touch-section/schema.json +++ b/cms-backend/src/api/home-get-in-touch-section/content-types/home-get-in-touch-section/schema.json @@ -4,7 +4,8 @@ "info": { "singularName": "home-get-in-touch-section", "pluralName": "home-get-in-touch-sections", - "displayName": "HomeGetInTouchSection" + "displayName": "HomeGetInTouchSection", + "description": "" }, "options": { "draftAndPublish": true @@ -18,24 +19,21 @@ "subtitle": { "type": "string" }, - "link": { - "type": "relation", - "relation": "oneToOne", - "target": "api::link.link" - }, - "cta_text": { - "type": "string", - "required": true - }, "icon": { + "type": "media", + "multiple": false, + "required": false, "allowedTypes": [ "images", "files", "videos", "audios" - ], - "type": "media", - "multiple": false + ] + }, + "link": { + "type": "component", + "repeatable": false, + "component": "content.button-link" } } } diff --git a/cms-backend/src/api/home-how-kleros-works-section/content-types/home-how-kleros-works-section/schema.json b/cms-backend/src/api/home-how-kleros-works-section/content-types/home-how-kleros-works-section/schema.json index 27ce80b..0e2caf9 100644 --- a/cms-backend/src/api/home-how-kleros-works-section/content-types/home-how-kleros-works-section/schema.json +++ b/cms-backend/src/api/home-how-kleros-works-section/content-types/home-how-kleros-works-section/schema.json @@ -4,7 +4,8 @@ "info": { "singularName": "home-how-kleros-works-section", "pluralName": "home-how-kleros-works-sections", - "displayName": "HomeHowKlerosWorksSection" + "displayName": "HomeHowKlerosWorksSection", + "description": "" }, "options": { "draftAndPublish": true @@ -24,6 +25,17 @@ "required": true }, "explainer": { + "type": "media", + "multiple": false, + "required": true, + "allowedTypes": [ + "images", + "files", + "videos", + "audios" + ] + }, + "explainer_desktop": { "allowedTypes": [ "images", "files", @@ -31,8 +43,7 @@ "audios" ], "type": "media", - "multiple": false, - "required": true + "multiple": false } } } diff --git a/cms-backend/src/api/home-learn-posts-section/content-types/home-learn-posts-section/schema.json b/cms-backend/src/api/home-learn-posts-section/content-types/home-learn-posts-section/schema.json index bc303bb..954d857 100644 --- a/cms-backend/src/api/home-learn-posts-section/content-types/home-learn-posts-section/schema.json +++ b/cms-backend/src/api/home-learn-posts-section/content-types/home-learn-posts-section/schema.json @@ -4,7 +4,8 @@ "info": { "singularName": "home-learn-posts-section", "pluralName": "home-learn-posts-sections", - "displayName": "HomeLearnPostsSection" + "displayName": "HomeLearnPostsSection", + "description": "" }, "options": { "draftAndPublish": true @@ -18,10 +19,16 @@ "subtitle": { "type": "string" }, - "blog_posts": { - "type": "relation", - "relation": "oneToMany", - "target": "api::blog-post.blog-post" + "cards": { + "type": "component", + "repeatable": true, + "component": "content.link-card" + }, + "introduction": { + "displayName": "introduction", + "type": "component", + "repeatable": false, + "component": "home.introduction" } } } diff --git a/cms-backend/src/api/home-start-earning-section/content-types/home-start-earning-section/schema.json b/cms-backend/src/api/home-start-earning-section/content-types/home-start-earning-section/schema.json index 5cfc94a..23f0bf5 100644 --- a/cms-backend/src/api/home-start-earning-section/content-types/home-start-earning-section/schema.json +++ b/cms-backend/src/api/home-start-earning-section/content-types/home-start-earning-section/schema.json @@ -19,15 +19,15 @@ "subtitle": { "type": "string" }, - "Cards": { + "cta": { "type": "component", "repeatable": true, - "component": "home-page.card" + "component": "content.section" }, - "cta": { + "cards": { "type": "component", "repeatable": true, - "component": "content.section" + "component": "content.link-card" } } } diff --git a/cms-backend/src/components/home-page/card.json b/cms-backend/src/components/content/link-card.json similarity index 67% rename from cms-backend/src/components/home-page/card.json rename to cms-backend/src/components/content/link-card.json index b366465..5bfaacd 100644 --- a/cms-backend/src/components/home-page/card.json +++ b/cms-backend/src/components/content/link-card.json @@ -1,19 +1,11 @@ { - "collectionName": "components_home_page_cards", + "collectionName": "components_content_link_cards", "info": { - "displayName": "Card", + "displayName": "LinkCard", "description": "" }, "options": {}, "attributes": { - "title": { - "type": "string", - "required": true - }, - "subtitle": { - "type": "string", - "required": true - }, "icon": { "type": "media", "multiple": false, @@ -25,8 +17,17 @@ "audios" ] }, - "url": { + "title": { + "type": "string", + "required": true + }, + "subtitle": { "type": "string" + }, + "link": { + "type": "component", + "repeatable": false, + "component": "content.button-link" } } } diff --git a/cms-backend/src/components/home/introduction.json b/cms-backend/src/components/home/introduction.json new file mode 100644 index 0000000..8f94e94 --- /dev/null +++ b/cms-backend/src/components/home/introduction.json @@ -0,0 +1,20 @@ +{ + "collectionName": "components_home_introductions", + "info": { + "displayName": "introduction" + }, + "options": {}, + "attributes": { + "heading_text": { + "type": "string" + }, + "link": { + "type": "component", + "repeatable": false, + "component": "content.button-link" + }, + "closing_text": { + "type": "string" + } + } +} diff --git a/cms-backend/types/generated/components.d.ts b/cms-backend/types/generated/components.d.ts index f118f31..31dd963 100644 --- a/cms-backend/types/generated/components.d.ts +++ b/cms-backend/types/generated/components.d.ts @@ -37,17 +37,15 @@ export interface PnkTokenPageTokenStatDisplay extends Struct.ComponentSchema { }; } -export interface HomePageCard extends Struct.ComponentSchema { - collectionName: 'components_home_page_cards'; +export interface HomeIntroduction extends Struct.ComponentSchema { + collectionName: 'components_home_introductions'; info: { - displayName: 'Card'; - description: ''; + displayName: 'introduction'; }; attributes: { - title: Schema.Attribute.String & Schema.Attribute.Required; - subtitle: Schema.Attribute.String & Schema.Attribute.Required; - icon: Schema.Attribute.Media<'images' | 'files' | 'videos' | 'audios'>; - url: Schema.Attribute.String; + heading_text: Schema.Attribute.String; + link: Schema.Attribute.Component<'content.button-link', false>; + closing_text: Schema.Attribute.String; }; } @@ -198,6 +196,20 @@ export interface ContentNavlink extends Struct.ComponentSchema { }; } +export interface ContentLinkCard extends Struct.ComponentSchema { + collectionName: 'components_content_link_cards'; + info: { + displayName: 'LinkCard'; + description: ''; + }; + attributes: { + icon: Schema.Attribute.Media<'images' | 'files' | 'videos' | 'audios'>; + title: Schema.Attribute.String & Schema.Attribute.Required; + subtitle: Schema.Attribute.String; + link: Schema.Attribute.Component<'content.button-link', false>; + }; +} + export interface ContentCtaCard extends Struct.ComponentSchema { collectionName: 'components_content_cta_cards'; info: { @@ -229,7 +241,7 @@ declare module '@strapi/strapi' { 'r-and-d-page.waitlist-section': RAndDPageWaitlistSection; 'r-and-d-page.kleros-book': RAndDPageKlerosBook; 'pnk-token-page.token-stat-display': PnkTokenPageTokenStatDisplay; - 'home-page.card': HomePageCard; + 'home.introduction': HomeIntroduction; 'for-builders-page.solution-section': ForBuildersPageSolutionSection; 'for-builders-page.key-challenge': ForBuildersPageKeyChallenge; 'for-builders-page.get-in-touch-section': ForBuildersPageGetInTouchSection; @@ -240,6 +252,7 @@ declare module '@strapi/strapi' { 'content.stat-display': ContentStatDisplay; 'content.section': ContentSection; 'content.navlink': ContentNavlink; + 'content.link-card': ContentLinkCard; 'content.cta-card': ContentCtaCard; 'content.button-link': ContentButtonLink; } diff --git a/cms-backend/types/generated/contentTypes.d.ts b/cms-backend/types/generated/contentTypes.d.ts index 9ec4123..2544281 100644 --- a/cms-backend/types/generated/contentTypes.d.ts +++ b/cms-backend/types/generated/contentTypes.d.ts @@ -515,37 +515,6 @@ export interface ApiAnnualReportAnnualReport }; } -export interface ApiBlogPostBlogPost extends Struct.CollectionTypeSchema { - collectionName: 'blog_posts'; - info: { - singularName: 'blog-post'; - pluralName: 'blog-posts'; - displayName: 'BlogPost'; - }; - options: { - draftAndPublish: true; - }; - attributes: { - icon: Schema.Attribute.Media<'images' | 'files' | 'videos' | 'audios'>; - title: Schema.Attribute.String & Schema.Attribute.Required; - subtitle: Schema.Attribute.String; - url: Schema.Attribute.String & Schema.Attribute.Required; - urlName: Schema.Attribute.String; - createdAt: Schema.Attribute.DateTime; - updatedAt: Schema.Attribute.DateTime; - publishedAt: Schema.Attribute.DateTime; - createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & - Schema.Attribute.Private; - updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & - Schema.Attribute.Private; - locale: Schema.Attribute.String; - localizations: Schema.Attribute.Relation< - 'oneToMany', - 'api::blog-post.blog-post' - >; - }; -} - export interface ApiCommunityCommunity extends Struct.CollectionTypeSchema { collectionName: 'communities'; info: { @@ -1128,10 +1097,6 @@ export interface ApiHomeCaseStudiesSectionHomeCaseStudiesSection attributes: { title: Schema.Attribute.String & Schema.Attribute.Required; subtitle: Schema.Attribute.Text; - blog_posts: Schema.Attribute.Relation< - 'oneToMany', - 'api::blog-post.blog-post' - >; createdAt: Schema.Attribute.DateTime; updatedAt: Schema.Attribute.DateTime; publishedAt: Schema.Attribute.DateTime; @@ -1154,6 +1119,7 @@ export interface ApiHomeGetInTouchSectionHomeGetInTouchSection singularName: 'home-get-in-touch-section'; pluralName: 'home-get-in-touch-sections'; displayName: 'HomeGetInTouchSection'; + description: ''; }; options: { draftAndPublish: true; @@ -1161,9 +1127,8 @@ export interface ApiHomeGetInTouchSectionHomeGetInTouchSection attributes: { title: Schema.Attribute.String & Schema.Attribute.Required; subtitle: Schema.Attribute.String; - link: Schema.Attribute.Relation<'oneToOne', 'api::link.link'>; - cta_text: Schema.Attribute.String & Schema.Attribute.Required; icon: Schema.Attribute.Media<'images' | 'files' | 'videos' | 'audios'>; + link: Schema.Attribute.Component<'content.button-link', false>; createdAt: Schema.Attribute.DateTime; updatedAt: Schema.Attribute.DateTime; publishedAt: Schema.Attribute.DateTime; @@ -1186,6 +1151,7 @@ export interface ApiHomeHowKlerosWorksSectionHomeHowKlerosWorksSection singularName: 'home-how-kleros-works-section'; pluralName: 'home-how-kleros-works-sections'; displayName: 'HomeHowKlerosWorksSection'; + description: ''; }; options: { draftAndPublish: true; @@ -1198,6 +1164,9 @@ export interface ApiHomeHowKlerosWorksSectionHomeHowKlerosWorksSection 'images' | 'files' | 'videos' | 'audios' > & Schema.Attribute.Required; + explainer_desktop: Schema.Attribute.Media< + 'images' | 'files' | 'videos' | 'audios' + >; createdAt: Schema.Attribute.DateTime; updatedAt: Schema.Attribute.DateTime; publishedAt: Schema.Attribute.DateTime; @@ -1220,6 +1189,7 @@ export interface ApiHomeLearnPostsSectionHomeLearnPostsSection singularName: 'home-learn-posts-section'; pluralName: 'home-learn-posts-sections'; displayName: 'HomeLearnPostsSection'; + description: ''; }; options: { draftAndPublish: true; @@ -1227,10 +1197,8 @@ export interface ApiHomeLearnPostsSectionHomeLearnPostsSection attributes: { title: Schema.Attribute.String & Schema.Attribute.Required; subtitle: Schema.Attribute.String; - blog_posts: Schema.Attribute.Relation< - 'oneToMany', - 'api::blog-post.blog-post' - >; + cards: Schema.Attribute.Component<'content.link-card', true>; + introduction: Schema.Attribute.Component<'home.introduction', false>; createdAt: Schema.Attribute.DateTime; updatedAt: Schema.Attribute.DateTime; publishedAt: Schema.Attribute.DateTime; @@ -1296,8 +1264,8 @@ export interface ApiHomeStartEarningSectionHomeStartEarningSection attributes: { title: Schema.Attribute.String & Schema.Attribute.Required; subtitle: Schema.Attribute.String; - Cards: Schema.Attribute.Component<'home-page.card', true>; cta: Schema.Attribute.Component<'content.section', true>; + cards: Schema.Attribute.Component<'content.link-card', true>; createdAt: Schema.Attribute.DateTime; updatedAt: Schema.Attribute.DateTime; publishedAt: Schema.Attribute.DateTime; @@ -2486,7 +2454,6 @@ declare module '@strapi/strapi' { 'plugin::users-permissions.role': PluginUsersPermissionsRole; 'plugin::users-permissions.user': PluginUsersPermissionsUser; 'api::annual-report.annual-report': ApiAnnualReportAnnualReport; - 'api::blog-post.blog-post': ApiBlogPostBlogPost; 'api::community.community': ApiCommunityCommunity; 'api::community-page-hero.community-page-hero': ApiCommunityPageHeroCommunityPageHero; 'api::cooperative-page-hero.cooperative-page-hero': ApiCooperativePageHeroCooperativePageHero;