From d14a8279c09406bc649c5d94f2a77e6e87fcff04 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Wed, 4 Dec 2024 19:04:41 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20anna=20k?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/block/content-types/block/schema.json | 9 +++- .../content-types/customer/schema.json | 12 ++++++ src/api/order/content-types/order/schema.json | 17 +++++++- .../setting/content-types/setting/schema.json | 25 +++++++++++ src/api/setting/controllers/setting.ts | 7 +++ src/api/setting/routes/setting.ts | 7 +++ src/api/setting/services/setting.ts | 7 +++ src/api/slot/content-types/slot/schema.json | 5 ++- types/generated/contentTypes.d.ts | 43 +++++++++++++++++-- 9 files changed, 124 insertions(+), 8 deletions(-) create mode 100644 src/api/setting/content-types/setting/schema.json create mode 100644 src/api/setting/controllers/setting.ts create mode 100644 src/api/setting/routes/setting.ts create mode 100644 src/api/setting/services/setting.ts diff --git a/src/api/block/content-types/block/schema.json b/src/api/block/content-types/block/schema.json index 37f52c1..b3326d7 100644 --- a/src/api/block/content-types/block/schema.json +++ b/src/api/block/content-types/block/schema.json @@ -24,7 +24,8 @@ "type": "enumeration", "enum": [ "created", - "paid" + "paid", + "deleted" ], "default": "created" }, @@ -48,6 +49,12 @@ "relation": "manyToOne", "target": "api::customer.customer", "inversedBy": "blocks" + }, + "orders": { + "type": "relation", + "relation": "oneToMany", + "target": "api::order.order", + "mappedBy": "block" } } } diff --git a/src/api/customer/content-types/customer/schema.json b/src/api/customer/content-types/customer/schema.json index 18623ad..c426fe3 100644 --- a/src/api/customer/content-types/customer/schema.json +++ b/src/api/customer/content-types/customer/schema.json @@ -61,6 +61,18 @@ "relation": "oneToMany", "target": "api::slot.slot", "mappedBy": "master" + }, + "orders": { + "type": "relation", + "relation": "oneToMany", + "target": "api::order.order", + "mappedBy": "client" + }, + "setting": { + "type": "relation", + "relation": "oneToOne", + "target": "api::setting.setting", + "mappedBy": "customer" } } } diff --git a/src/api/order/content-types/order/schema.json b/src/api/order/content-types/order/schema.json index 3f81e05..3ab7d42 100644 --- a/src/api/order/content-types/order/schema.json +++ b/src/api/order/content-types/order/schema.json @@ -4,7 +4,8 @@ "info": { "singularName": "order", "pluralName": "orders", - "displayName": "Order" + "displayName": "Order", + "description": "" }, "options": { "draftAndPublish": true @@ -32,7 +33,19 @@ "type": "relation", "relation": "oneToOne", "target": "api::slot.slot", - "inversedBy": "order" + "mappedBy": "orders" + }, + "client": { + "type": "relation", + "relation": "manyToOne", + "target": "api::customer.customer", + "inversedBy": "orders" + }, + "block": { + "type": "relation", + "relation": "manyToOne", + "target": "api::block.block", + "inversedBy": "orders" } } } diff --git a/src/api/setting/content-types/setting/schema.json b/src/api/setting/content-types/setting/schema.json new file mode 100644 index 0000000..893cd6a --- /dev/null +++ b/src/api/setting/content-types/setting/schema.json @@ -0,0 +1,25 @@ +{ + "kind": "collectionType", + "collectionName": "settings", + "info": { + "singularName": "setting", + "pluralName": "settings", + "displayName": "Setting" + }, + "options": { + "draftAndPublish": true + }, + "pluginOptions": {}, + "attributes": { + "customer": { + "type": "relation", + "relation": "oneToOne", + "target": "api::customer.customer", + "inversedBy": "setting" + }, + "recordingByBlocks": { + "type": "boolean", + "default": false + } + } +} diff --git a/src/api/setting/controllers/setting.ts b/src/api/setting/controllers/setting.ts new file mode 100644 index 0000000..e5fae09 --- /dev/null +++ b/src/api/setting/controllers/setting.ts @@ -0,0 +1,7 @@ +/** + * setting controller + */ + +import { factories } from '@strapi/strapi' + +export default factories.createCoreController('api::setting.setting'); diff --git a/src/api/setting/routes/setting.ts b/src/api/setting/routes/setting.ts new file mode 100644 index 0000000..05a279d --- /dev/null +++ b/src/api/setting/routes/setting.ts @@ -0,0 +1,7 @@ +/** + * setting router + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreRouter('api::setting.setting'); diff --git a/src/api/setting/services/setting.ts b/src/api/setting/services/setting.ts new file mode 100644 index 0000000..52b9212 --- /dev/null +++ b/src/api/setting/services/setting.ts @@ -0,0 +1,7 @@ +/** + * setting service + */ + +import { factories } from '@strapi/strapi'; + +export default factories.createCoreService('api::setting.setting'); diff --git a/src/api/slot/content-types/slot/schema.json b/src/api/slot/content-types/slot/schema.json index 1f18a36..6843a7e 100644 --- a/src/api/slot/content-types/slot/schema.json +++ b/src/api/slot/content-types/slot/schema.json @@ -24,14 +24,15 @@ "type": "enumeration", "enum": [ "open", + "reserved", "closed" ] }, - "order": { + "orders": { "type": "relation", "relation": "oneToOne", "target": "api::order.order", - "mappedBy": "slot" + "inversedBy": "slot" }, "master": { "type": "relation", diff --git a/types/generated/contentTypes.d.ts b/types/generated/contentTypes.d.ts index 9fa8e41..c27c54a 100644 --- a/types/generated/contentTypes.d.ts +++ b/types/generated/contentTypes.d.ts @@ -391,12 +391,13 @@ export interface ApiBlockBlock extends Struct.CollectionTypeSchema { localizations: Schema.Attribute.Relation<'oneToMany', 'api::block.block'> & Schema.Attribute.Private; master: Schema.Attribute.Relation<'manyToOne', 'api::customer.customer'>; + orders: Schema.Attribute.Relation<'oneToMany', 'api::order.order'>; publishedAt: Schema.Attribute.DateTime; sessionsCompleted: Schema.Attribute.Integer & Schema.Attribute.DefaultTo<0>; sessionsTotal: Schema.Attribute.Integer & Schema.Attribute.Required & Schema.Attribute.DefaultTo<10>; - state: Schema.Attribute.Enumeration<['created', 'paid']> & + state: Schema.Attribute.Enumeration<['created', 'paid', 'deleted']> & Schema.Attribute.DefaultTo<'created'>; updatedAt: Schema.Attribute.DateTime; updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & @@ -430,12 +431,14 @@ export interface ApiCustomerCustomer extends Struct.CollectionTypeSchema { Schema.Attribute.Private; masters: Schema.Attribute.Relation<'manyToMany', 'api::customer.customer'>; name: Schema.Attribute.String & Schema.Attribute.Required; + orders: Schema.Attribute.Relation<'oneToMany', 'api::order.order'>; phone: Schema.Attribute.String & Schema.Attribute.Required & Schema.Attribute.Unique; publishedAt: Schema.Attribute.DateTime; role: Schema.Attribute.Enumeration<['client', 'master']> & Schema.Attribute.Required; + setting: Schema.Attribute.Relation<'oneToOne', 'api::setting.setting'>; slots: Schema.Attribute.Relation<'oneToMany', 'api::slot.slot'>; telegramId: Schema.Attribute.BigInteger & Schema.Attribute.Unique; updatedAt: Schema.Attribute.DateTime; @@ -447,6 +450,7 @@ export interface ApiCustomerCustomer extends Struct.CollectionTypeSchema { export interface ApiOrderOrder extends Struct.CollectionTypeSchema { collectionName: 'orders'; info: { + description: ''; displayName: 'Order'; pluralName: 'orders'; singularName: 'order'; @@ -455,6 +459,8 @@ export interface ApiOrderOrder extends Struct.CollectionTypeSchema { draftAndPublish: true; }; attributes: { + block: Schema.Attribute.Relation<'manyToOne', 'api::block.block'>; + client: Schema.Attribute.Relation<'manyToOne', 'api::customer.customer'>; createdAt: Schema.Attribute.DateTime; createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & Schema.Attribute.Private; @@ -475,6 +481,36 @@ export interface ApiOrderOrder extends Struct.CollectionTypeSchema { }; } +export interface ApiSettingSetting extends Struct.CollectionTypeSchema { + collectionName: 'settings'; + info: { + displayName: 'Setting'; + pluralName: 'settings'; + singularName: 'setting'; + }; + options: { + draftAndPublish: true; + }; + attributes: { + createdAt: Schema.Attribute.DateTime; + createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + customer: Schema.Attribute.Relation<'oneToOne', 'api::customer.customer'>; + locale: Schema.Attribute.String & Schema.Attribute.Private; + localizations: Schema.Attribute.Relation< + 'oneToMany', + 'api::setting.setting' + > & + Schema.Attribute.Private; + publishedAt: Schema.Attribute.DateTime; + recordingByBlocks: Schema.Attribute.Boolean & + Schema.Attribute.DefaultTo; + updatedAt: Schema.Attribute.DateTime; + updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & + Schema.Attribute.Private; + }; +} + export interface ApiSlotSlot extends Struct.CollectionTypeSchema { collectionName: 'slots'; info: { @@ -496,9 +532,9 @@ export interface ApiSlotSlot extends Struct.CollectionTypeSchema { localizations: Schema.Attribute.Relation<'oneToMany', 'api::slot.slot'> & Schema.Attribute.Private; master: Schema.Attribute.Relation<'manyToOne', 'api::customer.customer'>; - order: Schema.Attribute.Relation<'oneToOne', 'api::order.order'>; + orders: Schema.Attribute.Relation<'oneToOne', 'api::order.order'>; publishedAt: Schema.Attribute.DateTime; - state: Schema.Attribute.Enumeration<['open', 'closed']>; + state: Schema.Attribute.Enumeration<['open', 'reserved', 'closed']>; updatedAt: Schema.Attribute.DateTime; updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & Schema.Attribute.Private; @@ -1017,6 +1053,7 @@ declare module '@strapi/strapi' { 'api::block.block': ApiBlockBlock; 'api::customer.customer': ApiCustomerCustomer; 'api::order.order': ApiOrderOrder; + 'api::setting.setting': ApiSettingSetting; 'api::slot.slot': ApiSlotSlot; 'plugin::content-releases.release': PluginContentReleasesRelease; 'plugin::content-releases.release-action': PluginContentReleasesReleaseAction;