From 554fa6adc0ed34cced9bccd789485a2b5be7b474 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Wed, 12 Feb 2025 11:16:44 +0300 Subject: [PATCH] add type 'service' --- src/api/order/content-types/order/schema.json | 8 ++++- .../service/content-types/service/schema.json | 24 ++++++++++++++ src/api/service/controllers/service.ts | 7 ++++ src/api/service/routes/service.ts | 7 ++++ src/api/service/services/service.ts | 7 ++++ types/generated/contentTypes.d.ts | 33 ++++++++++++++++++- 6 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 src/api/service/content-types/service/schema.json create mode 100644 src/api/service/controllers/service.ts create mode 100644 src/api/service/routes/service.ts create mode 100644 src/api/service/services/service.ts diff --git a/src/api/order/content-types/order/schema.json b/src/api/order/content-types/order/schema.json index a6b8aaf..16ff12f 100644 --- a/src/api/order/content-types/order/schema.json +++ b/src/api/order/content-types/order/schema.json @@ -26,7 +26,7 @@ "price": { "type": "integer" }, - "service": { + "service_description": { "type": "text" }, "client": { @@ -55,6 +55,12 @@ }, "time_end": { "type": "time" + }, + "services": { + "type": "relation", + "relation": "manyToMany", + "target": "api::service.service", + "inversedBy": "orders" } } } diff --git a/src/api/service/content-types/service/schema.json b/src/api/service/content-types/service/schema.json new file mode 100644 index 0000000..4d57222 --- /dev/null +++ b/src/api/service/content-types/service/schema.json @@ -0,0 +1,24 @@ +{ + "kind": "collectionType", + "collectionName": "services", + "info": { + "singularName": "service", + "pluralName": "services", + "displayName": "service" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "name": { + "type": "string" + }, + "orders": { + "type": "relation", + "relation": "manyToMany", + "target": "api::order.order", + "mappedBy": "services" + } + } +} diff --git a/src/api/service/controllers/service.ts b/src/api/service/controllers/service.ts new file mode 100644 index 0000000..2c95500 --- /dev/null +++ b/src/api/service/controllers/service.ts @@ -0,0 +1,7 @@ +/** + * service controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::service.service'); diff --git a/src/api/service/routes/service.ts b/src/api/service/routes/service.ts new file mode 100644 index 0000000..40f9a0b --- /dev/null +++ b/src/api/service/routes/service.ts @@ -0,0 +1,7 @@ +/** + * service router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::service.service'); diff --git a/src/api/service/services/service.ts b/src/api/service/services/service.ts new file mode 100644 index 0000000..1184a25 --- /dev/null +++ b/src/api/service/services/service.ts @@ -0,0 +1,7 @@ +/** + * service service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::service.service'); diff --git a/types/generated/contentTypes.d.ts b/types/generated/contentTypes.d.ts index cb8b1ee..fd2fe62 100644 --- a/types/generated/contentTypes.d.ts +++ b/types/generated/contentTypes.d.ts @@ -471,7 +471,8 @@ export interface ApiOrderOrder extends Struct.CollectionTypeSchema { order_number: Schema.Attribute.Integer; price: Schema.Attribute.Integer; publishedAt: Schema.Attribute.DateTime; - service: Schema.Attribute.Text; + service_description: Schema.Attribute.Text; + services: Schema.Attribute.Relation<'manyToMany', 'api::service.service'>; slot: Schema.Attribute.Relation<'manyToOne', 'api::slot.slot'>; state: Schema.Attribute.Enumeration< ['created', 'scheduled', 'approved', 'completed', 'cancelled'] @@ -485,6 +486,35 @@ export interface ApiOrderOrder extends Struct.CollectionTypeSchema { }; } +export interface ApiServiceService extends Struct.CollectionTypeSchema { + collectionName: 'services'; + info: { + displayName: 'service'; + pluralName: 'services'; + singularName: 'service'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::service.service' + > & + Schema.Attribute.Private; + name: Schema.Attribute.String; + orders: Schema.Attribute.Relation<'manyToMany', 'api::order.order'>; + publishedAt: Schema.Attribute.DateTime; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiSettingSetting extends Struct.CollectionTypeSchema { collectionName: 'settings'; info: { @@ -1058,6 +1088,7 @@ declare module '@strapi/strapi' { 'api::block.block': ApiBlockBlock; 'api::customer.customer': ApiCustomerCustomer; 'api::order.order': ApiOrderOrder; + 'api::service.service': ApiServiceService; 'api::setting.setting': ApiSettingSetting; 'api::slot.slot': ApiSlotSlot; 'plugin::content-releases.release': PluginContentReleasesRelease;