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;