From 464b5174ca7cb0e38ff8e99386a415ce0232f6ab Mon Sep 17 00:00:00 2001 From: R2m1liA <15258427350@163.com> Date: Tue, 26 Aug 2025 07:15:50 +0000 Subject: [PATCH] =?UTF-8?q?Feature:=20=E6=B7=BB=E5=8A=A0Content=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../content-types/company-profile/schema.json | 27 + .../controllers/company-profile.ts | 7 + .../company-profile/routes/company-profile.ts | 7 + .../services/company-profile.ts | 7 + .../content-types/contact-info/schema.json | 27 + .../contact-info/controllers/contact-info.ts | 7 + src/api/contact-info/routes/contact-info.ts | 7 + src/api/contact-info/services/contact-info.ts | 7 + .../content-types/production-type/schema.json | 28 + .../controllers/production-type.ts | 7 + .../production-type/routes/production-type.ts | 7 + .../services/production-type.ts | 7 + .../content-types/production/schema.json | 108 ++ src/api/production/controllers/production.ts | 7 + src/api/production/routes/production.ts | 7 + src/api/production/services/production.ts | 7 + .../content-types/solution-type/schema.json | 28 + .../controllers/solution-type.ts | 7 + src/api/solution-type/routes/solution-type.ts | 7 + .../solution-type/services/solution-type.ts | 7 + .../content-types/solution/schema.json | 61 + src/api/solution/controllers/solution.ts | 7 + src/api/solution/routes/solution.ts | 7 + src/api/solution/services/solution.ts | 7 + src/components/production/spec-group.json | 19 + src/components/production/spec-item.json | 17 + types/generated/components.d.ts | 32 + types/generated/contentTypes.d.ts | 1204 +++++++++++++++++ 28 files changed, 1677 insertions(+) create mode 100644 src/api/company-profile/content-types/company-profile/schema.json create mode 100644 src/api/company-profile/controllers/company-profile.ts create mode 100644 src/api/company-profile/routes/company-profile.ts create mode 100644 src/api/company-profile/services/company-profile.ts create mode 100644 src/api/contact-info/content-types/contact-info/schema.json create mode 100644 src/api/contact-info/controllers/contact-info.ts create mode 100644 src/api/contact-info/routes/contact-info.ts create mode 100644 src/api/contact-info/services/contact-info.ts create mode 100644 src/api/production-type/content-types/production-type/schema.json create mode 100644 src/api/production-type/controllers/production-type.ts create mode 100644 src/api/production-type/routes/production-type.ts create mode 100644 src/api/production-type/services/production-type.ts create mode 100644 src/api/production/content-types/production/schema.json create mode 100644 src/api/production/controllers/production.ts create mode 100644 src/api/production/routes/production.ts create mode 100644 src/api/production/services/production.ts create mode 100644 src/api/solution-type/content-types/solution-type/schema.json create mode 100644 src/api/solution-type/controllers/solution-type.ts create mode 100644 src/api/solution-type/routes/solution-type.ts create mode 100644 src/api/solution-type/services/solution-type.ts create mode 100644 src/api/solution/content-types/solution/schema.json create mode 100644 src/api/solution/controllers/solution.ts create mode 100644 src/api/solution/routes/solution.ts create mode 100644 src/api/solution/services/solution.ts create mode 100644 src/components/production/spec-group.json create mode 100644 src/components/production/spec-item.json create mode 100644 types/generated/components.d.ts create mode 100644 types/generated/contentTypes.d.ts diff --git a/src/api/company-profile/content-types/company-profile/schema.json b/src/api/company-profile/content-types/company-profile/schema.json new file mode 100644 index 0000000..24c7dcf --- /dev/null +++ b/src/api/company-profile/content-types/company-profile/schema.json @@ -0,0 +1,27 @@ +{ + "kind": "singleType", + "collectionName": "company_profiles", + "info": { + "singularName": "company-profile", + "pluralName": "company-profiles", + "displayName": "CompanyProfile" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "attributes": { + "content": { + "type": "richtext", + "pluginOptions": { + "i18n": { + "localized": true + } + } + } + } +} diff --git a/src/api/company-profile/controllers/company-profile.ts b/src/api/company-profile/controllers/company-profile.ts new file mode 100644 index 0000000..4899242 --- /dev/null +++ b/src/api/company-profile/controllers/company-profile.ts @@ -0,0 +1,7 @@ +/** + * company-profile controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::company-profile.company-profile'); diff --git a/src/api/company-profile/routes/company-profile.ts b/src/api/company-profile/routes/company-profile.ts new file mode 100644 index 0000000..aec4e99 --- /dev/null +++ b/src/api/company-profile/routes/company-profile.ts @@ -0,0 +1,7 @@ +/** + * company-profile router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::company-profile.company-profile'); diff --git a/src/api/company-profile/services/company-profile.ts b/src/api/company-profile/services/company-profile.ts new file mode 100644 index 0000000..09921aa --- /dev/null +++ b/src/api/company-profile/services/company-profile.ts @@ -0,0 +1,7 @@ +/** + * company-profile service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::company-profile.company-profile'); diff --git a/src/api/contact-info/content-types/contact-info/schema.json b/src/api/contact-info/content-types/contact-info/schema.json new file mode 100644 index 0000000..b940d26 --- /dev/null +++ b/src/api/contact-info/content-types/contact-info/schema.json @@ -0,0 +1,27 @@ +{ + "kind": "singleType", + "collectionName": "contact_infos", + "info": { + "singularName": "contact-info", + "pluralName": "contact-infos", + "displayName": "ContactInfo" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "attributes": { + "content": { + "type": "richtext", + "pluginOptions": { + "i18n": { + "localized": true + } + } + } + } +} diff --git a/src/api/contact-info/controllers/contact-info.ts b/src/api/contact-info/controllers/contact-info.ts new file mode 100644 index 0000000..a21e747 --- /dev/null +++ b/src/api/contact-info/controllers/contact-info.ts @@ -0,0 +1,7 @@ +/** + * contact-info controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::contact-info.contact-info'); diff --git a/src/api/contact-info/routes/contact-info.ts b/src/api/contact-info/routes/contact-info.ts new file mode 100644 index 0000000..cf5f0d9 --- /dev/null +++ b/src/api/contact-info/routes/contact-info.ts @@ -0,0 +1,7 @@ +/** + * contact-info router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::contact-info.contact-info'); diff --git a/src/api/contact-info/services/contact-info.ts b/src/api/contact-info/services/contact-info.ts new file mode 100644 index 0000000..469cc4b --- /dev/null +++ b/src/api/contact-info/services/contact-info.ts @@ -0,0 +1,7 @@ +/** + * contact-info service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::contact-info.contact-info'); diff --git a/src/api/production-type/content-types/production-type/schema.json b/src/api/production-type/content-types/production-type/schema.json new file mode 100644 index 0000000..ad6d439 --- /dev/null +++ b/src/api/production-type/content-types/production-type/schema.json @@ -0,0 +1,28 @@ +{ + "kind": "collectionType", + "collectionName": "production_types", + "info": { + "singularName": "production-type", + "pluralName": "production-types", + "displayName": "Production Type" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "attributes": { + "type": { + "type": "string", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "required": true + } + } +} diff --git a/src/api/production-type/controllers/production-type.ts b/src/api/production-type/controllers/production-type.ts new file mode 100644 index 0000000..78795ae --- /dev/null +++ b/src/api/production-type/controllers/production-type.ts @@ -0,0 +1,7 @@ +/** + * production-type controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::production-type.production-type'); diff --git a/src/api/production-type/routes/production-type.ts b/src/api/production-type/routes/production-type.ts new file mode 100644 index 0000000..d70e14b --- /dev/null +++ b/src/api/production-type/routes/production-type.ts @@ -0,0 +1,7 @@ +/** + * production-type router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::production-type.production-type'); diff --git a/src/api/production-type/services/production-type.ts b/src/api/production-type/services/production-type.ts new file mode 100644 index 0000000..1b09848 --- /dev/null +++ b/src/api/production-type/services/production-type.ts @@ -0,0 +1,7 @@ +/** + * production-type service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::production-type.production-type'); diff --git a/src/api/production/content-types/production/schema.json b/src/api/production/content-types/production/schema.json new file mode 100644 index 0000000..9b18d09 --- /dev/null +++ b/src/api/production/content-types/production/schema.json @@ -0,0 +1,108 @@ +{ + "kind": "collectionType", + "collectionName": "productions", + "info": { + "singularName": "production", + "pluralName": "productions", + "displayName": "Production" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "attributes": { + "title": { + "type": "string", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "required": true + }, + "summary": { + "type": "string", + "pluginOptions": { + "i18n": { + "localized": true + } + } + }, + "production_type": { + "type": "relation", + "relation": "oneToOne", + "target": "api::production-type.production-type" + }, + "cover": { + "type": "media", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "multiple": false, + "allowedTypes": [ + "images" + ] + }, + "production_images": { + "type": "media", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "multiple": true, + "allowedTypes": [ + "images" + ] + }, + "production_details": { + "type": "richtext", + "pluginOptions": { + "i18n": { + "localized": true + } + } + }, + "production_specs": { + "type": "dynamiczone", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "components": [ + "production.spec-group" + ] + }, + "documents": { + "type": "media", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "multiple": true, + "allowedTypes": [ + "images", + "files", + "videos", + "audios" + ] + }, + "show_in_production_list": { + "type": "boolean", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "default": true + } + } +} diff --git a/src/api/production/controllers/production.ts b/src/api/production/controllers/production.ts new file mode 100644 index 0000000..0208e9c --- /dev/null +++ b/src/api/production/controllers/production.ts @@ -0,0 +1,7 @@ +/** + * production controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::production.production'); diff --git a/src/api/production/routes/production.ts b/src/api/production/routes/production.ts new file mode 100644 index 0000000..e6e533e --- /dev/null +++ b/src/api/production/routes/production.ts @@ -0,0 +1,7 @@ +/** + * production router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::production.production'); diff --git a/src/api/production/services/production.ts b/src/api/production/services/production.ts new file mode 100644 index 0000000..ae8163a --- /dev/null +++ b/src/api/production/services/production.ts @@ -0,0 +1,7 @@ +/** + * production service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::production.production'); diff --git a/src/api/solution-type/content-types/solution-type/schema.json b/src/api/solution-type/content-types/solution-type/schema.json new file mode 100644 index 0000000..6a15d57 --- /dev/null +++ b/src/api/solution-type/content-types/solution-type/schema.json @@ -0,0 +1,28 @@ +{ + "kind": "collectionType", + "collectionName": "solution_types", + "info": { + "singularName": "solution-type", + "pluralName": "solution-types", + "displayName": "Solution Type" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "attributes": { + "type": { + "type": "string", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "required": true + } + } +} diff --git a/src/api/solution-type/controllers/solution-type.ts b/src/api/solution-type/controllers/solution-type.ts new file mode 100644 index 0000000..6ebecf6 --- /dev/null +++ b/src/api/solution-type/controllers/solution-type.ts @@ -0,0 +1,7 @@ +/** + * solution-type controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::solution-type.solution-type'); diff --git a/src/api/solution-type/routes/solution-type.ts b/src/api/solution-type/routes/solution-type.ts new file mode 100644 index 0000000..ae93189 --- /dev/null +++ b/src/api/solution-type/routes/solution-type.ts @@ -0,0 +1,7 @@ +/** + * solution-type router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::solution-type.solution-type'); diff --git a/src/api/solution-type/services/solution-type.ts b/src/api/solution-type/services/solution-type.ts new file mode 100644 index 0000000..f70d833 --- /dev/null +++ b/src/api/solution-type/services/solution-type.ts @@ -0,0 +1,7 @@ +/** + * solution-type service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::solution-type.solution-type'); diff --git a/src/api/solution/content-types/solution/schema.json b/src/api/solution/content-types/solution/schema.json new file mode 100644 index 0000000..dbaa0a6 --- /dev/null +++ b/src/api/solution/content-types/solution/schema.json @@ -0,0 +1,61 @@ +{ + "kind": "collectionType", + "collectionName": "solutions", + "info": { + "singularName": "solution", + "pluralName": "solutions", + "displayName": "Solution" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "attributes": { + "title": { + "type": "string", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "required": true + }, + "summary": { + "type": "string", + "pluginOptions": { + "i18n": { + "localized": true + } + } + }, + "cover": { + "type": "media", + "pluginOptions": { + "i18n": { + "localized": true + } + }, + "multiple": false, + "allowedTypes": [ + "images" + ] + }, + "solution_type": { + "type": "relation", + "relation": "oneToOne", + "target": "api::solution-type.solution-type" + }, + "content": { + "type": "richtext", + "pluginOptions": { + "i18n": { + "localized": true + } + } + } + } +} diff --git a/src/api/solution/controllers/solution.ts b/src/api/solution/controllers/solution.ts new file mode 100644 index 0000000..47489cc --- /dev/null +++ b/src/api/solution/controllers/solution.ts @@ -0,0 +1,7 @@ +/** + * solution controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::solution.solution'); diff --git a/src/api/solution/routes/solution.ts b/src/api/solution/routes/solution.ts new file mode 100644 index 0000000..7792a23 --- /dev/null +++ b/src/api/solution/routes/solution.ts @@ -0,0 +1,7 @@ +/** + * solution router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::solution.solution'); diff --git a/src/api/solution/services/solution.ts b/src/api/solution/services/solution.ts new file mode 100644 index 0000000..0674f4f --- /dev/null +++ b/src/api/solution/services/solution.ts @@ -0,0 +1,7 @@ +/** + * solution service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::solution.solution'); diff --git a/src/components/production/spec-group.json b/src/components/production/spec-group.json new file mode 100644 index 0000000..e69930f --- /dev/null +++ b/src/components/production/spec-group.json @@ -0,0 +1,19 @@ +{ + "collectionName": "components_production_spec_groups", + "info": { + "displayName": "Spec Group" + }, + "options": {}, + "attributes": { + "title": { + "type": "string", + "required": true + }, + "items": { + "type": "component", + "component": "production.spec-item", + "repeatable": true + } + }, + "config": {} +} diff --git a/src/components/production/spec-item.json b/src/components/production/spec-item.json new file mode 100644 index 0000000..a39ade7 --- /dev/null +++ b/src/components/production/spec-item.json @@ -0,0 +1,17 @@ +{ + "collectionName": "components_production_spec_items", + "info": { + "displayName": "Spec Item" + }, + "options": {}, + "attributes": { + "label": { + "type": "string", + "required": true + }, + "value": { + "type": "string" + } + }, + "config": {} +} diff --git a/types/generated/components.d.ts b/types/generated/components.d.ts new file mode 100644 index 0000000..76d759c --- /dev/null +++ b/types/generated/components.d.ts @@ -0,0 +1,32 @@ +import type { Schema, Struct } from '@strapi/strapi'; + +export interface ProductionSpecGroup extends Struct.ComponentSchema { + collectionName: 'components_production_spec_groups'; + info: { + displayName: 'Spec Group'; + }; + attributes: { + items: Schema.Attribute.Component<'production.spec-item', true>; + title: Schema.Attribute.String & Schema.Attribute.Required; + }; +} + +export interface ProductionSpecItem extends Struct.ComponentSchema { + collectionName: 'components_production_spec_items'; + info: { + displayName: 'Spec Item'; + }; + attributes: { + label: Schema.Attribute.String & Schema.Attribute.Required; + value: Schema.Attribute.String; + }; +} + +declare module '@strapi/strapi' { + export module Public { + export interface ComponentSchemas { + 'production.spec-group': ProductionSpecGroup; + 'production.spec-item': ProductionSpecItem; + } + } +} diff --git a/types/generated/contentTypes.d.ts b/types/generated/contentTypes.d.ts new file mode 100644 index 0000000..d87d602 --- /dev/null +++ b/types/generated/contentTypes.d.ts @@ -0,0 +1,1204 @@ +import type { Schema, Struct } from '@strapi/strapi'; + +export interface AdminApiToken extends Struct.CollectionTypeSchema { + collectionName: 'strapi_api_tokens'; + info: { + description: ''; + displayName: 'Api Token'; + name: 'Api Token'; + pluralName: 'api-tokens'; + singularName: 'api-token'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + accessKey: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + description: Schema.Attribute.String & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }> & + Schema.Attribute.DefaultTo<''>; + encryptedKey: Schema.Attribute.Text & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + expiresAt: Schema.Attribute.DateTime; + lastUsedAt: Schema.Attribute.DateTime; + lifespan: Schema.Attribute.BigInteger; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation<'oneToMany', 'admin::api-token'> & + Schema.Attribute.Private; + name: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.Unique & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + permissions: Schema.Attribute.Relation< + 'oneToMany', + 'admin::api-token-permission' + >; + publishedAt: Schema.Attribute.DateTime; + type: Schema.Attribute.Enumeration<['read-only', 'full-access', 'custom']> & + Schema.Attribute.Required & + Schema.Attribute.DefaultTo<'read-only'>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface AdminApiTokenPermission extends Struct.CollectionTypeSchema { + collectionName: 'strapi_api_token_permissions'; + info: { + description: ''; + displayName: 'API Token Permission'; + name: 'API Token Permission'; + pluralName: 'api-token-permissions'; + singularName: 'api-token-permission'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + action: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + 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', + 'admin::api-token-permission' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + token: Schema.Attribute.Relation<'manyToOne', 'admin::api-token'>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface AdminPermission extends Struct.CollectionTypeSchema { + collectionName: 'admin_permissions'; + info: { + description: ''; + displayName: 'Permission'; + name: 'Permission'; + pluralName: 'permissions'; + singularName: 'permission'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + action: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + actionParameters: Schema.Attribute.JSON & Schema.Attribute.DefaultTo<{}>; + conditions: Schema.Attribute.JSON & Schema.Attribute.DefaultTo<[]>; + 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', 'admin::permission'> & + Schema.Attribute.Private; + properties: Schema.Attribute.JSON & Schema.Attribute.DefaultTo<{}>; + publishedAt: Schema.Attribute.DateTime; + role: Schema.Attribute.Relation<'manyToOne', 'admin::role'>; + subject: Schema.Attribute.String & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface AdminRole extends Struct.CollectionTypeSchema { + collectionName: 'admin_roles'; + info: { + description: ''; + displayName: 'Role'; + name: 'Role'; + pluralName: 'roles'; + singularName: 'role'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + code: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.Unique & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + description: Schema.Attribute.String; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation<'oneToMany', 'admin::role'> & + Schema.Attribute.Private; + name: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.Unique & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + permissions: Schema.Attribute.Relation<'oneToMany', 'admin::permission'>; + publishedAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + users: Schema.Attribute.Relation<'manyToMany', 'admin::user'>; + }; +} + +export interface AdminTransferToken extends Struct.CollectionTypeSchema { + collectionName: 'strapi_transfer_tokens'; + info: { + description: ''; + displayName: 'Transfer Token'; + name: 'Transfer Token'; + pluralName: 'transfer-tokens'; + singularName: 'transfer-token'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + accessKey: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + description: Schema.Attribute.String & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }> & + Schema.Attribute.DefaultTo<''>; + expiresAt: Schema.Attribute.DateTime; + lastUsedAt: Schema.Attribute.DateTime; + lifespan: Schema.Attribute.BigInteger; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'admin::transfer-token' + > & + Schema.Attribute.Private; + name: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.Unique & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + permissions: Schema.Attribute.Relation< + 'oneToMany', + 'admin::transfer-token-permission' + >; + publishedAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface AdminTransferTokenPermission + extends Struct.CollectionTypeSchema { + collectionName: 'strapi_transfer_token_permissions'; + info: { + description: ''; + displayName: 'Transfer Token Permission'; + name: 'Transfer Token Permission'; + pluralName: 'transfer-token-permissions'; + singularName: 'transfer-token-permission'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + action: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + 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', + 'admin::transfer-token-permission' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + token: Schema.Attribute.Relation<'manyToOne', 'admin::transfer-token'>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface AdminUser extends Struct.CollectionTypeSchema { + collectionName: 'admin_users'; + info: { + description: ''; + displayName: 'User'; + name: 'User'; + pluralName: 'users'; + singularName: 'user'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + blocked: Schema.Attribute.Boolean & + Schema.Attribute.Private & + Schema.Attribute.DefaultTo; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + email: Schema.Attribute.Email & + Schema.Attribute.Required & + Schema.Attribute.Private & + Schema.Attribute.Unique & + Schema.Attribute.SetMinMaxLength<{ + minLength: 6; + }>; + firstname: Schema.Attribute.String & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + isActive: Schema.Attribute.Boolean & + Schema.Attribute.Private & + Schema.Attribute.DefaultTo; + lastname: Schema.Attribute.String & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation<'oneToMany', 'admin::user'> & + Schema.Attribute.Private; + password: Schema.Attribute.Password & + Schema.Attribute.Private & + Schema.Attribute.SetMinMaxLength<{ + minLength: 6; + }>; + preferedLanguage: Schema.Attribute.String; + publishedAt: Schema.Attribute.DateTime; + registrationToken: Schema.Attribute.String & Schema.Attribute.Private; + resetPasswordToken: Schema.Attribute.String & Schema.Attribute.Private; + roles: Schema.Attribute.Relation<'manyToMany', 'admin::role'> & + Schema.Attribute.Private; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + username: Schema.Attribute.String; + }; +} + +export interface ApiCompanyProfileCompanyProfile + extends Struct.SingleTypeSchema { + collectionName: 'company_profiles'; + info: { + displayName: 'CompanyProfile'; + pluralName: 'company-profiles'; + singularName: 'company-profile'; + }; + options: { + draftAndPublish: true; + }; + pluginOptions: { + i18n: { + localized: true; + }; + }; + attributes: { + content: Schema.Attribute.RichText & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::company-profile.company-profile' + >; + publishedAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface ApiContactInfoContactInfo extends Struct.SingleTypeSchema { + collectionName: 'contact_infos'; + info: { + displayName: 'ContactInfo'; + pluralName: 'contact-infos'; + singularName: 'contact-info'; + }; + options: { + draftAndPublish: true; + }; + pluginOptions: { + i18n: { + localized: true; + }; + }; + attributes: { + content: Schema.Attribute.RichText & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::contact-info.contact-info' + >; + publishedAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface ApiProductionTypeProductionType + extends Struct.CollectionTypeSchema { + collectionName: 'production_types'; + info: { + displayName: 'Production Type'; + pluralName: 'production-types'; + singularName: 'production-type'; + }; + options: { + draftAndPublish: true; + }; + pluginOptions: { + i18n: { + localized: true; + }; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::production-type.production-type' + >; + publishedAt: Schema.Attribute.DateTime; + type: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface ApiProductionProduction extends Struct.CollectionTypeSchema { + collectionName: 'productions'; + info: { + displayName: 'Production'; + pluralName: 'productions'; + singularName: 'production'; + }; + options: { + draftAndPublish: true; + }; + pluginOptions: { + i18n: { + localized: true; + }; + }; + attributes: { + cover: Schema.Attribute.Media<'images'> & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + documents: Schema.Attribute.Media< + 'images' | 'files' | 'videos' | 'audios', + true + > & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::production.production' + >; + production_details: Schema.Attribute.RichText & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + production_images: Schema.Attribute.Media<'images', true> & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + production_specs: Schema.Attribute.DynamicZone<['production.spec-group']> & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + production_type: Schema.Attribute.Relation< + 'oneToOne', + 'api::production-type.production-type' + >; + publishedAt: Schema.Attribute.DateTime; + show_in_production_list: Schema.Attribute.Boolean & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }> & + Schema.Attribute.DefaultTo; + summary: Schema.Attribute.String & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + title: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface ApiSolutionTypeSolutionType + extends Struct.CollectionTypeSchema { + collectionName: 'solution_types'; + info: { + displayName: 'Solution Type'; + pluralName: 'solution-types'; + singularName: 'solution-type'; + }; + options: { + draftAndPublish: true; + }; + pluginOptions: { + i18n: { + localized: true; + }; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::solution-type.solution-type' + >; + publishedAt: Schema.Attribute.DateTime; + type: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface ApiSolutionSolution extends Struct.CollectionTypeSchema { + collectionName: 'solutions'; + info: { + displayName: 'Solution'; + pluralName: 'solutions'; + singularName: 'solution'; + }; + options: { + draftAndPublish: true; + }; + pluginOptions: { + i18n: { + localized: true; + }; + }; + attributes: { + content: Schema.Attribute.RichText & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + cover: Schema.Attribute.Media<'images'> & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::solution.solution' + >; + publishedAt: Schema.Attribute.DateTime; + solution_type: Schema.Attribute.Relation< + 'oneToOne', + 'api::solution-type.solution-type' + >; + summary: Schema.Attribute.String & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + title: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetPluginOptions<{ + i18n: { + localized: true; + }; + }>; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface PluginContentReleasesRelease + extends Struct.CollectionTypeSchema { + collectionName: 'strapi_releases'; + info: { + displayName: 'Release'; + pluralName: 'releases'; + singularName: 'release'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + actions: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::content-releases.release-action' + >; + 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', + 'plugin::content-releases.release' + > & + Schema.Attribute.Private; + name: Schema.Attribute.String & Schema.Attribute.Required; + publishedAt: Schema.Attribute.DateTime; + releasedAt: Schema.Attribute.DateTime; + scheduledAt: Schema.Attribute.DateTime; + status: Schema.Attribute.Enumeration< + ['ready', 'blocked', 'failed', 'done', 'empty'] + > & + Schema.Attribute.Required; + timezone: Schema.Attribute.String; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface PluginContentReleasesReleaseAction + extends Struct.CollectionTypeSchema { + collectionName: 'strapi_release_actions'; + info: { + displayName: 'Release Action'; + pluralName: 'release-actions'; + singularName: 'release-action'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + contentType: Schema.Attribute.String & Schema.Attribute.Required; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + entryDocumentId: Schema.Attribute.String; + isEntryValid: Schema.Attribute.Boolean; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::content-releases.release-action' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + release: Schema.Attribute.Relation< + 'manyToOne', + 'plugin::content-releases.release' + >; + type: Schema.Attribute.Enumeration<['publish', 'unpublish']> & + Schema.Attribute.Required; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface PluginI18NLocale extends Struct.CollectionTypeSchema { + collectionName: 'i18n_locale'; + info: { + collectionName: 'locales'; + description: ''; + displayName: 'Locale'; + pluralName: 'locales'; + singularName: 'locale'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + code: Schema.Attribute.String & Schema.Attribute.Unique; + 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', + 'plugin::i18n.locale' + > & + Schema.Attribute.Private; + name: Schema.Attribute.String & + Schema.Attribute.SetMinMax< + { + max: 50; + min: 1; + }, + number + >; + publishedAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface PluginReviewWorkflowsWorkflow + extends Struct.CollectionTypeSchema { + collectionName: 'strapi_workflows'; + info: { + description: ''; + displayName: 'Workflow'; + name: 'Workflow'; + pluralName: 'workflows'; + singularName: 'workflow'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + contentTypes: Schema.Attribute.JSON & + Schema.Attribute.Required & + Schema.Attribute.DefaultTo<'[]'>; + 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', + 'plugin::review-workflows.workflow' + > & + Schema.Attribute.Private; + name: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.Unique; + publishedAt: Schema.Attribute.DateTime; + stageRequiredToPublish: Schema.Attribute.Relation< + 'oneToOne', + 'plugin::review-workflows.workflow-stage' + >; + stages: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::review-workflows.workflow-stage' + >; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface PluginReviewWorkflowsWorkflowStage + extends Struct.CollectionTypeSchema { + collectionName: 'strapi_workflows_stages'; + info: { + description: ''; + displayName: 'Stages'; + name: 'Workflow Stage'; + pluralName: 'workflow-stages'; + singularName: 'workflow-stage'; + }; + options: { + draftAndPublish: false; + version: '1.1.0'; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + color: Schema.Attribute.String & Schema.Attribute.DefaultTo<'#4945FF'>; + 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', + 'plugin::review-workflows.workflow-stage' + > & + Schema.Attribute.Private; + name: Schema.Attribute.String; + permissions: Schema.Attribute.Relation<'manyToMany', 'admin::permission'>; + publishedAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + workflow: Schema.Attribute.Relation< + 'manyToOne', + 'plugin::review-workflows.workflow' + >; + }; +} + +export interface PluginUploadFile extends Struct.CollectionTypeSchema { + collectionName: 'files'; + info: { + description: ''; + displayName: 'File'; + pluralName: 'files'; + singularName: 'file'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + alternativeText: Schema.Attribute.String; + caption: Schema.Attribute.String; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + ext: Schema.Attribute.String; + folder: Schema.Attribute.Relation<'manyToOne', 'plugin::upload.folder'> & + Schema.Attribute.Private; + folderPath: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.Private & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + formats: Schema.Attribute.JSON; + hash: Schema.Attribute.String & Schema.Attribute.Required; + height: Schema.Attribute.Integer; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::upload.file' + > & + Schema.Attribute.Private; + mime: Schema.Attribute.String & Schema.Attribute.Required; + name: Schema.Attribute.String & Schema.Attribute.Required; + previewUrl: Schema.Attribute.String; + provider: Schema.Attribute.String & Schema.Attribute.Required; + provider_metadata: Schema.Attribute.JSON; + publishedAt: Schema.Attribute.DateTime; + related: Schema.Attribute.Relation<'morphToMany'>; + size: Schema.Attribute.Decimal & Schema.Attribute.Required; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + url: Schema.Attribute.String & Schema.Attribute.Required; + width: Schema.Attribute.Integer; + }; +} + +export interface PluginUploadFolder extends Struct.CollectionTypeSchema { + collectionName: 'upload_folders'; + info: { + displayName: 'Folder'; + pluralName: 'folders'; + singularName: 'folder'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + children: Schema.Attribute.Relation<'oneToMany', 'plugin::upload.folder'>; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + files: Schema.Attribute.Relation<'oneToMany', 'plugin::upload.file'>; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::upload.folder' + > & + Schema.Attribute.Private; + name: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + parent: Schema.Attribute.Relation<'manyToOne', 'plugin::upload.folder'>; + path: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 1; + }>; + pathId: Schema.Attribute.Integer & + Schema.Attribute.Required & + Schema.Attribute.Unique; + publishedAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface PluginUsersPermissionsPermission + extends Struct.CollectionTypeSchema { + collectionName: 'up_permissions'; + info: { + description: ''; + displayName: 'Permission'; + name: 'permission'; + pluralName: 'permissions'; + singularName: 'permission'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + action: Schema.Attribute.String & Schema.Attribute.Required; + 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', + 'plugin::users-permissions.permission' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + role: Schema.Attribute.Relation< + 'manyToOne', + 'plugin::users-permissions.role' + >; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + +export interface PluginUsersPermissionsRole + extends Struct.CollectionTypeSchema { + collectionName: 'up_roles'; + info: { + description: ''; + displayName: 'Role'; + name: 'role'; + pluralName: 'roles'; + singularName: 'role'; + }; + options: { + draftAndPublish: false; + }; + pluginOptions: { + 'content-manager': { + visible: false; + }; + 'content-type-builder': { + visible: false; + }; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + description: Schema.Attribute.String; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::users-permissions.role' + > & + Schema.Attribute.Private; + name: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 3; + }>; + permissions: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::users-permissions.permission' + >; + publishedAt: Schema.Attribute.DateTime; + type: Schema.Attribute.String & Schema.Attribute.Unique; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + users: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::users-permissions.user' + >; + }; +} + +export interface PluginUsersPermissionsUser + extends Struct.CollectionTypeSchema { + collectionName: 'up_users'; + info: { + description: ''; + displayName: 'User'; + name: 'user'; + pluralName: 'users'; + singularName: 'user'; + }; + options: { + draftAndPublish: false; + timestamps: true; + }; + attributes: { + blocked: Schema.Attribute.Boolean & Schema.Attribute.DefaultTo; + confirmationToken: Schema.Attribute.String & Schema.Attribute.Private; + confirmed: Schema.Attribute.Boolean & Schema.Attribute.DefaultTo; + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + email: Schema.Attribute.Email & + Schema.Attribute.Required & + Schema.Attribute.SetMinMaxLength<{ + minLength: 6; + }>; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'plugin::users-permissions.user' + > & + Schema.Attribute.Private; + password: Schema.Attribute.Password & + Schema.Attribute.Private & + Schema.Attribute.SetMinMaxLength<{ + minLength: 6; + }>; + provider: Schema.Attribute.String; + publishedAt: Schema.Attribute.DateTime; + resetPasswordToken: Schema.Attribute.String & Schema.Attribute.Private; + role: Schema.Attribute.Relation< + 'manyToOne', + 'plugin::users-permissions.role' + >; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + username: Schema.Attribute.String & + Schema.Attribute.Required & + Schema.Attribute.Unique & + Schema.Attribute.SetMinMaxLength<{ + minLength: 3; + }>; + }; +} + +declare module '@strapi/strapi' { + export module Public { + export interface ContentTypeSchemas { + 'admin::api-token': AdminApiToken; + 'admin::api-token-permission': AdminApiTokenPermission; + 'admin::permission': AdminPermission; + 'admin::role': AdminRole; + 'admin::transfer-token': AdminTransferToken; + 'admin::transfer-token-permission': AdminTransferTokenPermission; + 'admin::user': AdminUser; + 'api::company-profile.company-profile': ApiCompanyProfileCompanyProfile; + 'api::contact-info.contact-info': ApiContactInfoContactInfo; + 'api::production-type.production-type': ApiProductionTypeProductionType; + 'api::production.production': ApiProductionProduction; + 'api::solution-type.solution-type': ApiSolutionTypeSolutionType; + 'api::solution.solution': ApiSolutionSolution; + 'plugin::content-releases.release': PluginContentReleasesRelease; + 'plugin::content-releases.release-action': PluginContentReleasesReleaseAction; + 'plugin::i18n.locale': PluginI18NLocale; + 'plugin::review-workflows.workflow': PluginReviewWorkflowsWorkflow; + 'plugin::review-workflows.workflow-stage': PluginReviewWorkflowsWorkflowStage; + 'plugin::upload.file': PluginUploadFile; + 'plugin::upload.folder': PluginUploadFolder; + 'plugin::users-permissions.permission': PluginUsersPermissionsPermission; + 'plugin::users-permissions.role': PluginUsersPermissionsRole; + 'plugin::users-permissions.user': PluginUsersPermissionsUser; + } + } +}