Compare commits
5 Commits
release/rc
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b788a9024 | ||
|
|
0e58a8cef7 | ||
|
|
a63eff9f46 | ||
|
|
e0a9f55eeb | ||
|
|
ccd0947334 |
28
docker-compose.dev.yml
Normal file
28
docker-compose.dev.yml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres
|
||||||
|
ports:
|
||||||
|
- '127.0.0.1:5432:5432'
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: ${DATABASE_USERNAME}
|
||||||
|
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
|
||||||
|
POSTGRES_DB: ${DATABASE_NAME}
|
||||||
|
strapi:
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- '127.0.0.1:1337:1337'
|
||||||
|
environment:
|
||||||
|
APP_KEYS: ${APP_KEYS}
|
||||||
|
API_TOKEN_SALT: ${API_TOKEN_SALT}
|
||||||
|
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
|
||||||
|
TRANSFER_TOKEN_SALT: ${TRANSFER_TOKEN_SALT}
|
||||||
|
JWT_SECRET: ${JWT_SECRET}
|
||||||
|
DATABASE_HOST: ${DATABASE_HOST}
|
||||||
|
DATABASE_PORT: ${DATABASE_PORT}
|
||||||
|
DATABASE_NAME: ${DATABASE_NAME}
|
||||||
|
DATABASE_USERNAME: ${DATABASE_USERNAME}
|
||||||
|
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
|
||||||
|
DATABASE_SSL: 'false'
|
||||||
|
BOT_TOKEN: ${BOT_TOKEN}
|
||||||
|
|
||||||
|
|
||||||
@ -1,60 +0,0 @@
|
|||||||
{
|
|
||||||
"kind": "collectionType",
|
|
||||||
"collectionName": "blocks",
|
|
||||||
"info": {
|
|
||||||
"singularName": "block",
|
|
||||||
"pluralName": "blocks",
|
|
||||||
"displayName": "Block",
|
|
||||||
"description": ""
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"draftAndPublish": true
|
|
||||||
},
|
|
||||||
"pluginOptions": {},
|
|
||||||
"attributes": {
|
|
||||||
"datetime_start": {
|
|
||||||
"type": "datetime",
|
|
||||||
"required": true
|
|
||||||
},
|
|
||||||
"datetime_end": {
|
|
||||||
"type": "datetime",
|
|
||||||
"required": true
|
|
||||||
},
|
|
||||||
"state": {
|
|
||||||
"type": "enumeration",
|
|
||||||
"enum": [
|
|
||||||
"created",
|
|
||||||
"paid",
|
|
||||||
"deleted"
|
|
||||||
],
|
|
||||||
"default": "created"
|
|
||||||
},
|
|
||||||
"sessions_total": {
|
|
||||||
"type": "integer",
|
|
||||||
"default": 10,
|
|
||||||
"required": true
|
|
||||||
},
|
|
||||||
"sessions_completed": {
|
|
||||||
"type": "integer",
|
|
||||||
"default": 0
|
|
||||||
},
|
|
||||||
"master": {
|
|
||||||
"type": "relation",
|
|
||||||
"relation": "manyToOne",
|
|
||||||
"target": "api::customer.customer",
|
|
||||||
"inversedBy": "blocks"
|
|
||||||
},
|
|
||||||
"client": {
|
|
||||||
"type": "relation",
|
|
||||||
"relation": "manyToOne",
|
|
||||||
"target": "api::customer.customer",
|
|
||||||
"inversedBy": "blocks"
|
|
||||||
},
|
|
||||||
"orders": {
|
|
||||||
"type": "relation",
|
|
||||||
"relation": "oneToMany",
|
|
||||||
"target": "api::order.order",
|
|
||||||
"mappedBy": "block"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* block controller
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { factories } from '@strapi/strapi'
|
|
||||||
|
|
||||||
export default factories.createCoreController('api::block.block');
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* block router
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { factories } from '@strapi/strapi';
|
|
||||||
|
|
||||||
export default factories.createCoreRouter('api::block.block');
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* block service
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { factories } from '@strapi/strapi';
|
|
||||||
|
|
||||||
export default factories.createCoreService('api::block.block');
|
|
||||||
24
src/api/customer/content-types/customer-setting/schema.json
Normal file
24
src/api/customer/content-types/customer-setting/schema.json
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"kind": "collectionType",
|
||||||
|
"collectionName": "customer_settings",
|
||||||
|
"info": {
|
||||||
|
"singularName": "customer-setting",
|
||||||
|
"pluralName": "customer-settings",
|
||||||
|
"displayName": "CustomerSettings"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"draftAndPublish": false
|
||||||
|
},
|
||||||
|
"pluginOptions": {},
|
||||||
|
"attributes": {
|
||||||
|
"autoRenewSubscription": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"customer": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToOne",
|
||||||
|
"target": "api::customer.customer",
|
||||||
|
"mappedBy": "customer_setting"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -17,6 +17,11 @@
|
|||||||
"maxLength": 100,
|
"maxLength": 100,
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
|
"surname": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 100,
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
"telegramId": {
|
"telegramId": {
|
||||||
"type": "biginteger",
|
"type": "biginteger",
|
||||||
"unique": true
|
"unique": true
|
||||||
@ -40,23 +45,17 @@
|
|||||||
"required": false,
|
"required": false,
|
||||||
"default": false
|
"default": false
|
||||||
},
|
},
|
||||||
"clients": {
|
"invited": {
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
"relation": "manyToMany",
|
"relation": "manyToMany",
|
||||||
"target": "api::customer.customer",
|
"target": "api::customer.customer",
|
||||||
"inversedBy": "masters"
|
"inversedBy": "invitedBy"
|
||||||
},
|
},
|
||||||
"masters": {
|
"invitedBy": {
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
"relation": "manyToMany",
|
"relation": "manyToMany",
|
||||||
"target": "api::customer.customer",
|
"target": "api::customer.customer",
|
||||||
"mappedBy": "clients"
|
"mappedBy": "invited"
|
||||||
},
|
|
||||||
"blocks": {
|
|
||||||
"type": "relation",
|
|
||||||
"relation": "oneToMany",
|
|
||||||
"target": "api::block.block",
|
|
||||||
"mappedBy": "client"
|
|
||||||
},
|
},
|
||||||
"slots": {
|
"slots": {
|
||||||
"type": "relation",
|
"type": "relation",
|
||||||
@ -78,6 +77,27 @@
|
|||||||
"relation": "oneToMany",
|
"relation": "oneToMany",
|
||||||
"target": "api::service.service",
|
"target": "api::service.service",
|
||||||
"mappedBy": "master"
|
"mappedBy": "master"
|
||||||
|
},
|
||||||
|
"subscriptions": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToMany",
|
||||||
|
"target": "api::subscription.subscription",
|
||||||
|
"mappedBy": "customer"
|
||||||
|
},
|
||||||
|
"bannedUntil": {
|
||||||
|
"type": "datetime"
|
||||||
|
},
|
||||||
|
"subscription_rewards": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToMany",
|
||||||
|
"target": "api::subscription-reward.subscription-reward",
|
||||||
|
"mappedBy": "owner"
|
||||||
|
},
|
||||||
|
"customer_setting": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToOne",
|
||||||
|
"target": "api::customer.customer-setting",
|
||||||
|
"inversedBy": "customer"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,12 +30,6 @@
|
|||||||
"target": "api::customer.customer",
|
"target": "api::customer.customer",
|
||||||
"inversedBy": "orders"
|
"inversedBy": "orders"
|
||||||
},
|
},
|
||||||
"block": {
|
|
||||||
"type": "relation",
|
|
||||||
"relation": "manyToOne",
|
|
||||||
"target": "api::block.block",
|
|
||||||
"inversedBy": "orders"
|
|
||||||
},
|
|
||||||
"order_number": {
|
"order_number": {
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"singularName": "service",
|
"singularName": "service",
|
||||||
"pluralName": "services",
|
"pluralName": "services",
|
||||||
"displayName": "service",
|
"displayName": "Service",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
"options": {
|
"options": {
|
||||||
|
|||||||
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"kind": "collectionType",
|
|
||||||
"collectionName": "settings",
|
|
||||||
"info": {
|
|
||||||
"singularName": "setting",
|
|
||||||
"pluralName": "settings",
|
|
||||||
"displayName": "Setting",
|
|
||||||
"description": ""
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"draftAndPublish": true
|
|
||||||
},
|
|
||||||
"pluginOptions": {},
|
|
||||||
"attributes": {
|
|
||||||
"recording_by_blocks": {
|
|
||||||
"type": "boolean",
|
|
||||||
"default": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* setting controller
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { factories } from '@strapi/strapi'
|
|
||||||
|
|
||||||
export default factories.createCoreController('api::setting.setting');
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* setting router
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { factories } from '@strapi/strapi';
|
|
||||||
|
|
||||||
export default factories.createCoreRouter('api::setting.setting');
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* setting service
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { factories } from '@strapi/strapi';
|
|
||||||
|
|
||||||
export default factories.createCoreService('api::setting.setting');
|
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"kind": "collectionType",
|
||||||
|
"collectionName": "subscription_histories",
|
||||||
|
"info": {
|
||||||
|
"singularName": "subscription-history",
|
||||||
|
"pluralName": "subscription-histories",
|
||||||
|
"displayName": "SubscriptionHistory"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"draftAndPublish": true
|
||||||
|
},
|
||||||
|
"pluginOptions": {},
|
||||||
|
"attributes": {
|
||||||
|
"subscription": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToOne",
|
||||||
|
"target": "api::subscription.subscription",
|
||||||
|
"mappedBy": "subscription_history"
|
||||||
|
},
|
||||||
|
"subscription_price": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToOne",
|
||||||
|
"target": "api::subscription-price.subscription-price"
|
||||||
|
},
|
||||||
|
"amount": {
|
||||||
|
"type": "decimal",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
"currency": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "RUB",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"type": "enumeration",
|
||||||
|
"required": true,
|
||||||
|
"enum": [
|
||||||
|
"success",
|
||||||
|
"failed",
|
||||||
|
"pending"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"paymentId": {
|
||||||
|
"type": "string",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"type": "enumeration",
|
||||||
|
"required": true,
|
||||||
|
"default": "payment",
|
||||||
|
"enum": [
|
||||||
|
"payment",
|
||||||
|
"trial",
|
||||||
|
"reward",
|
||||||
|
"admin",
|
||||||
|
"renewal"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"type": "string",
|
||||||
|
"maxLength": 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-history controller
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi'
|
||||||
|
|
||||||
|
export default factories.createCoreController('api::subscription-history.subscription-history');
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-history router
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreRouter('api::subscription-history.subscription-history');
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-history service
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreService('api::subscription-history.subscription-history');
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
"kind": "collectionType",
|
||||||
|
"collectionName": "subscription_prices",
|
||||||
|
"info": {
|
||||||
|
"singularName": "subscription-price",
|
||||||
|
"pluralName": "subscription-prices",
|
||||||
|
"displayName": "SubscriptionPrice"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"draftAndPublish": true
|
||||||
|
},
|
||||||
|
"pluginOptions": {},
|
||||||
|
"attributes": {
|
||||||
|
"period": {
|
||||||
|
"type": "enumeration",
|
||||||
|
"required": true,
|
||||||
|
"enum": [
|
||||||
|
"trial",
|
||||||
|
"day",
|
||||||
|
"week",
|
||||||
|
"month",
|
||||||
|
"half_year",
|
||||||
|
"year"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"amount": {
|
||||||
|
"type": "decimal",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
"currency": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "RUB",
|
||||||
|
"required": false
|
||||||
|
},
|
||||||
|
"active": {
|
||||||
|
"type": "boolean",
|
||||||
|
"required": false,
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"days": {
|
||||||
|
"type": "integer",
|
||||||
|
"required": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-price controller
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi'
|
||||||
|
|
||||||
|
export default factories.createCoreController('api::subscription-price.subscription-price');
|
||||||
7
src/api/subscription-price/routes/subscription-price.ts
Normal file
7
src/api/subscription-price/routes/subscription-price.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-price router
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreRouter('api::subscription-price.subscription-price');
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-price service
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreService('api::subscription-price.subscription-price');
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"kind": "collectionType",
|
||||||
|
"collectionName": "subscription_rewards",
|
||||||
|
"info": {
|
||||||
|
"singularName": "subscription-reward",
|
||||||
|
"pluralName": "subscription-rewards",
|
||||||
|
"displayName": "SubscriptionReward"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"draftAndPublish": true
|
||||||
|
},
|
||||||
|
"pluginOptions": {},
|
||||||
|
"attributes": {
|
||||||
|
"activated": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"owner": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "manyToOne",
|
||||||
|
"target": "api::customer.customer",
|
||||||
|
"inversedBy": "subscription_rewards"
|
||||||
|
},
|
||||||
|
"invited": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToOne",
|
||||||
|
"target": "api::customer.customer"
|
||||||
|
},
|
||||||
|
"days": {
|
||||||
|
"type": "integer",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
"expiresAt": {
|
||||||
|
"type": "datetime",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "text"
|
||||||
|
},
|
||||||
|
"subscription": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "manyToOne",
|
||||||
|
"target": "api::subscription.subscription",
|
||||||
|
"inversedBy": "subscription_rewards"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-reward controller
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi'
|
||||||
|
|
||||||
|
export default factories.createCoreController('api::subscription-reward.subscription-reward');
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-reward router
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreRouter('api::subscription-reward.subscription-reward');
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-reward service
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreService('api::subscription-reward.subscription-reward');
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"kind": "singleType",
|
||||||
|
"collectionName": "subscription_settings",
|
||||||
|
"info": {
|
||||||
|
"singularName": "subscription-setting",
|
||||||
|
"pluralName": "subscription-settings",
|
||||||
|
"displayName": "SubscriptionSettings"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"draftAndPublish": true
|
||||||
|
},
|
||||||
|
"pluginOptions": {},
|
||||||
|
"attributes": {
|
||||||
|
"maxOrdersPerMonth": {
|
||||||
|
"type": "integer",
|
||||||
|
"required": true,
|
||||||
|
"default": 20
|
||||||
|
},
|
||||||
|
"referralRewardDays": {
|
||||||
|
"type": "integer",
|
||||||
|
"required": true,
|
||||||
|
"default": 1
|
||||||
|
},
|
||||||
|
"proEnabled": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-setting controller
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi'
|
||||||
|
|
||||||
|
export default factories.createCoreController('api::subscription-setting.subscription-setting');
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-setting router
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreRouter('api::subscription-setting.subscription-setting');
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription-setting service
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreService('api::subscription-setting.subscription-setting');
|
||||||
47
src/api/subscription/content-types/subscription/schema.json
Normal file
47
src/api/subscription/content-types/subscription/schema.json
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"kind": "collectionType",
|
||||||
|
"collectionName": "subscriptions",
|
||||||
|
"info": {
|
||||||
|
"singularName": "subscription",
|
||||||
|
"pluralName": "subscriptions",
|
||||||
|
"displayName": "Subscription"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"draftAndPublish": true
|
||||||
|
},
|
||||||
|
"pluginOptions": {},
|
||||||
|
"attributes": {
|
||||||
|
"customer": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "manyToOne",
|
||||||
|
"target": "api::customer.customer",
|
||||||
|
"inversedBy": "subscriptions"
|
||||||
|
},
|
||||||
|
"active": {
|
||||||
|
"type": "boolean",
|
||||||
|
"required": true,
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
"expiresAt": {
|
||||||
|
"type": "datetime",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
"subscription_history": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToOne",
|
||||||
|
"target": "api::subscription-history.subscription-history",
|
||||||
|
"inversedBy": "subscription"
|
||||||
|
},
|
||||||
|
"subscription_rewards": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToMany",
|
||||||
|
"target": "api::subscription-reward.subscription-reward",
|
||||||
|
"mappedBy": "subscription"
|
||||||
|
},
|
||||||
|
"nextSubscription": {
|
||||||
|
"type": "relation",
|
||||||
|
"relation": "oneToOne",
|
||||||
|
"target": "api::subscription.subscription"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
7
src/api/subscription/controllers/subscription.ts
Normal file
7
src/api/subscription/controllers/subscription.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription controller
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi'
|
||||||
|
|
||||||
|
export default factories.createCoreController('api::subscription.subscription');
|
||||||
7
src/api/subscription/routes/subscription.ts
Normal file
7
src/api/subscription/routes/subscription.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription router
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreRouter('api::subscription.subscription');
|
||||||
7
src/api/subscription/services/subscription.ts
Normal file
7
src/api/subscription/services/subscription.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* subscription service
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { factories } from '@strapi/strapi';
|
||||||
|
|
||||||
|
export default factories.createCoreService('api::subscription.subscription');
|
||||||
339
types/generated/contentTypes.d.ts
vendored
339
types/generated/contentTypes.d.ts
vendored
@ -373,43 +373,6 @@ export interface AdminUser extends Struct.CollectionTypeSchema {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ApiBlockBlock extends Struct.CollectionTypeSchema {
|
|
||||||
collectionName: 'blocks';
|
|
||||||
info: {
|
|
||||||
description: '';
|
|
||||||
displayName: 'Block';
|
|
||||||
pluralName: 'blocks';
|
|
||||||
singularName: 'block';
|
|
||||||
};
|
|
||||||
options: {
|
|
||||||
draftAndPublish: true;
|
|
||||||
};
|
|
||||||
attributes: {
|
|
||||||
client: Schema.Attribute.Relation<'manyToOne', 'api::customer.customer'>;
|
|
||||||
createdAt: Schema.Attribute.DateTime;
|
|
||||||
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
|
||||||
Schema.Attribute.Private;
|
|
||||||
datetime_end: Schema.Attribute.DateTime & Schema.Attribute.Required;
|
|
||||||
datetime_start: Schema.Attribute.DateTime & Schema.Attribute.Required;
|
|
||||||
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
|
||||||
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;
|
|
||||||
sessions_completed: Schema.Attribute.Integer &
|
|
||||||
Schema.Attribute.DefaultTo<0>;
|
|
||||||
sessions_total: Schema.Attribute.Integer &
|
|
||||||
Schema.Attribute.Required &
|
|
||||||
Schema.Attribute.DefaultTo<10>;
|
|
||||||
state: Schema.Attribute.Enumeration<['created', 'paid', 'deleted']> &
|
|
||||||
Schema.Attribute.DefaultTo<'created'>;
|
|
||||||
updatedAt: Schema.Attribute.DateTime;
|
|
||||||
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
|
||||||
Schema.Attribute.Private;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ApiCustomerCustomer extends Struct.CollectionTypeSchema {
|
export interface ApiCustomerCustomer extends Struct.CollectionTypeSchema {
|
||||||
collectionName: 'customers';
|
collectionName: 'customers';
|
||||||
info: {
|
info: {
|
||||||
@ -423,18 +386,25 @@ export interface ApiCustomerCustomer extends Struct.CollectionTypeSchema {
|
|||||||
};
|
};
|
||||||
attributes: {
|
attributes: {
|
||||||
active: Schema.Attribute.Boolean & Schema.Attribute.DefaultTo<false>;
|
active: Schema.Attribute.Boolean & Schema.Attribute.DefaultTo<false>;
|
||||||
blocks: Schema.Attribute.Relation<'oneToMany', 'api::block.block'>;
|
bannedUntil: Schema.Attribute.DateTime;
|
||||||
clients: Schema.Attribute.Relation<'manyToMany', 'api::customer.customer'>;
|
|
||||||
createdAt: Schema.Attribute.DateTime;
|
createdAt: Schema.Attribute.DateTime;
|
||||||
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
Schema.Attribute.Private;
|
Schema.Attribute.Private;
|
||||||
|
customer_setting: Schema.Attribute.Relation<
|
||||||
|
'oneToOne',
|
||||||
|
'api::customer.customer-setting'
|
||||||
|
>;
|
||||||
|
invited: Schema.Attribute.Relation<'manyToMany', 'api::customer.customer'>;
|
||||||
|
invitedBy: Schema.Attribute.Relation<
|
||||||
|
'manyToMany',
|
||||||
|
'api::customer.customer'
|
||||||
|
>;
|
||||||
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
||||||
localizations: Schema.Attribute.Relation<
|
localizations: Schema.Attribute.Relation<
|
||||||
'oneToMany',
|
'oneToMany',
|
||||||
'api::customer.customer'
|
'api::customer.customer'
|
||||||
> &
|
> &
|
||||||
Schema.Attribute.Private;
|
Schema.Attribute.Private;
|
||||||
masters: Schema.Attribute.Relation<'manyToMany', 'api::customer.customer'>;
|
|
||||||
name: Schema.Attribute.String &
|
name: Schema.Attribute.String &
|
||||||
Schema.Attribute.Required &
|
Schema.Attribute.Required &
|
||||||
Schema.Attribute.SetMinMaxLength<{
|
Schema.Attribute.SetMinMaxLength<{
|
||||||
@ -453,6 +423,18 @@ export interface ApiCustomerCustomer extends Struct.CollectionTypeSchema {
|
|||||||
Schema.Attribute.Required;
|
Schema.Attribute.Required;
|
||||||
services: Schema.Attribute.Relation<'oneToMany', 'api::service.service'>;
|
services: Schema.Attribute.Relation<'oneToMany', 'api::service.service'>;
|
||||||
slots: Schema.Attribute.Relation<'oneToMany', 'api::slot.slot'>;
|
slots: Schema.Attribute.Relation<'oneToMany', 'api::slot.slot'>;
|
||||||
|
subscription_rewards: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::subscription-reward.subscription-reward'
|
||||||
|
>;
|
||||||
|
subscriptions: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::subscription.subscription'
|
||||||
|
>;
|
||||||
|
surname: Schema.Attribute.String &
|
||||||
|
Schema.Attribute.SetMinMaxLength<{
|
||||||
|
maxLength: 100;
|
||||||
|
}>;
|
||||||
telegramId: Schema.Attribute.BigInteger & Schema.Attribute.Unique;
|
telegramId: Schema.Attribute.BigInteger & Schema.Attribute.Unique;
|
||||||
updatedAt: Schema.Attribute.DateTime;
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
@ -460,6 +442,36 @@ export interface ApiCustomerCustomer extends Struct.CollectionTypeSchema {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ApiCustomerCustomerSetting
|
||||||
|
extends Struct.CollectionTypeSchema {
|
||||||
|
collectionName: 'customer_settings';
|
||||||
|
info: {
|
||||||
|
displayName: 'CustomerSettings';
|
||||||
|
pluralName: 'customer-settings';
|
||||||
|
singularName: 'customer-setting';
|
||||||
|
};
|
||||||
|
options: {
|
||||||
|
draftAndPublish: false;
|
||||||
|
};
|
||||||
|
attributes: {
|
||||||
|
autoRenewSubscription: Schema.Attribute.Boolean;
|
||||||
|
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::customer.customer-setting'
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
publishedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export interface ApiOrderOrder extends Struct.CollectionTypeSchema {
|
export interface ApiOrderOrder extends Struct.CollectionTypeSchema {
|
||||||
collectionName: 'orders';
|
collectionName: 'orders';
|
||||||
info: {
|
info: {
|
||||||
@ -472,7 +484,6 @@ export interface ApiOrderOrder extends Struct.CollectionTypeSchema {
|
|||||||
draftAndPublish: true;
|
draftAndPublish: true;
|
||||||
};
|
};
|
||||||
attributes: {
|
attributes: {
|
||||||
block: Schema.Attribute.Relation<'manyToOne', 'api::block.block'>;
|
|
||||||
client: Schema.Attribute.Relation<'manyToOne', 'api::customer.customer'>;
|
client: Schema.Attribute.Relation<'manyToOne', 'api::customer.customer'>;
|
||||||
createdAt: Schema.Attribute.DateTime;
|
createdAt: Schema.Attribute.DateTime;
|
||||||
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
@ -507,7 +518,7 @@ export interface ApiServiceService extends Struct.CollectionTypeSchema {
|
|||||||
collectionName: 'services';
|
collectionName: 'services';
|
||||||
info: {
|
info: {
|
||||||
description: '';
|
description: '';
|
||||||
displayName: 'service';
|
displayName: 'Service';
|
||||||
pluralName: 'services';
|
pluralName: 'services';
|
||||||
singularName: 'service';
|
singularName: 'service';
|
||||||
};
|
};
|
||||||
@ -550,36 +561,6 @@ export interface ApiServiceService extends Struct.CollectionTypeSchema {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ApiSettingSetting extends Struct.CollectionTypeSchema {
|
|
||||||
collectionName: 'settings';
|
|
||||||
info: {
|
|
||||||
description: '';
|
|
||||||
displayName: 'Setting';
|
|
||||||
pluralName: 'settings';
|
|
||||||
singularName: 'setting';
|
|
||||||
};
|
|
||||||
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::setting.setting'
|
|
||||||
> &
|
|
||||||
Schema.Attribute.Private;
|
|
||||||
publishedAt: Schema.Attribute.DateTime;
|
|
||||||
recording_by_blocks: Schema.Attribute.Boolean &
|
|
||||||
Schema.Attribute.DefaultTo<false>;
|
|
||||||
updatedAt: Schema.Attribute.DateTime;
|
|
||||||
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
|
||||||
Schema.Attribute.Private;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface ApiSlotSlot extends Struct.CollectionTypeSchema {
|
export interface ApiSlotSlot extends Struct.CollectionTypeSchema {
|
||||||
collectionName: 'slots';
|
collectionName: 'slots';
|
||||||
info: {
|
info: {
|
||||||
@ -610,6 +591,212 @@ export interface ApiSlotSlot extends Struct.CollectionTypeSchema {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ApiSubscriptionHistorySubscriptionHistory
|
||||||
|
extends Struct.CollectionTypeSchema {
|
||||||
|
collectionName: 'subscription_histories';
|
||||||
|
info: {
|
||||||
|
displayName: 'SubscriptionHistory';
|
||||||
|
pluralName: 'subscription-histories';
|
||||||
|
singularName: 'subscription-history';
|
||||||
|
};
|
||||||
|
options: {
|
||||||
|
draftAndPublish: true;
|
||||||
|
};
|
||||||
|
attributes: {
|
||||||
|
amount: Schema.Attribute.Decimal & Schema.Attribute.Required;
|
||||||
|
createdAt: Schema.Attribute.DateTime;
|
||||||
|
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
currency: Schema.Attribute.String & Schema.Attribute.DefaultTo<'RUB'>;
|
||||||
|
description: Schema.Attribute.Text;
|
||||||
|
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
||||||
|
localizations: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::subscription-history.subscription-history'
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
paymentId: Schema.Attribute.String;
|
||||||
|
period: Schema.Attribute.String &
|
||||||
|
Schema.Attribute.SetMinMaxLength<{
|
||||||
|
maxLength: 20;
|
||||||
|
}>;
|
||||||
|
publishedAt: Schema.Attribute.DateTime;
|
||||||
|
source: Schema.Attribute.Enumeration<
|
||||||
|
['payment', 'trial', 'reward', 'admin', 'renewal']
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Required &
|
||||||
|
Schema.Attribute.DefaultTo<'payment'>;
|
||||||
|
state: Schema.Attribute.Enumeration<['success', 'failed', 'pending']> &
|
||||||
|
Schema.Attribute.Required;
|
||||||
|
subscription: Schema.Attribute.Relation<
|
||||||
|
'oneToOne',
|
||||||
|
'api::subscription.subscription'
|
||||||
|
>;
|
||||||
|
subscription_price: Schema.Attribute.Relation<
|
||||||
|
'oneToOne',
|
||||||
|
'api::subscription-price.subscription-price'
|
||||||
|
>;
|
||||||
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiSubscriptionPriceSubscriptionPrice
|
||||||
|
extends Struct.CollectionTypeSchema {
|
||||||
|
collectionName: 'subscription_prices';
|
||||||
|
info: {
|
||||||
|
displayName: 'SubscriptionPrice';
|
||||||
|
pluralName: 'subscription-prices';
|
||||||
|
singularName: 'subscription-price';
|
||||||
|
};
|
||||||
|
options: {
|
||||||
|
draftAndPublish: true;
|
||||||
|
};
|
||||||
|
attributes: {
|
||||||
|
active: Schema.Attribute.Boolean & Schema.Attribute.DefaultTo<true>;
|
||||||
|
amount: Schema.Attribute.Decimal & Schema.Attribute.Required;
|
||||||
|
createdAt: Schema.Attribute.DateTime;
|
||||||
|
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
currency: Schema.Attribute.String & Schema.Attribute.DefaultTo<'RUB'>;
|
||||||
|
days: Schema.Attribute.Integer & Schema.Attribute.Required;
|
||||||
|
description: Schema.Attribute.Text;
|
||||||
|
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
||||||
|
localizations: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::subscription-price.subscription-price'
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
period: Schema.Attribute.Enumeration<
|
||||||
|
['trial', 'day', 'week', 'month', 'half_year', 'year']
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Required;
|
||||||
|
publishedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiSubscriptionRewardSubscriptionReward
|
||||||
|
extends Struct.CollectionTypeSchema {
|
||||||
|
collectionName: 'subscription_rewards';
|
||||||
|
info: {
|
||||||
|
displayName: 'SubscriptionReward';
|
||||||
|
pluralName: 'subscription-rewards';
|
||||||
|
singularName: 'subscription-reward';
|
||||||
|
};
|
||||||
|
options: {
|
||||||
|
draftAndPublish: true;
|
||||||
|
};
|
||||||
|
attributes: {
|
||||||
|
activated: Schema.Attribute.Boolean & Schema.Attribute.DefaultTo<false>;
|
||||||
|
createdAt: Schema.Attribute.DateTime;
|
||||||
|
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
days: Schema.Attribute.Integer & Schema.Attribute.Required;
|
||||||
|
description: Schema.Attribute.Text;
|
||||||
|
expiresAt: Schema.Attribute.DateTime & Schema.Attribute.Required;
|
||||||
|
invited: Schema.Attribute.Relation<'oneToOne', 'api::customer.customer'>;
|
||||||
|
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
||||||
|
localizations: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::subscription-reward.subscription-reward'
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
owner: Schema.Attribute.Relation<'manyToOne', 'api::customer.customer'>;
|
||||||
|
publishedAt: Schema.Attribute.DateTime;
|
||||||
|
subscription: Schema.Attribute.Relation<
|
||||||
|
'manyToOne',
|
||||||
|
'api::subscription.subscription'
|
||||||
|
>;
|
||||||
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiSubscriptionSettingSubscriptionSetting
|
||||||
|
extends Struct.SingleTypeSchema {
|
||||||
|
collectionName: 'subscription_settings';
|
||||||
|
info: {
|
||||||
|
displayName: 'SubscriptionSettings';
|
||||||
|
pluralName: 'subscription-settings';
|
||||||
|
singularName: 'subscription-setting';
|
||||||
|
};
|
||||||
|
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::subscription-setting.subscription-setting'
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
maxOrdersPerMonth: Schema.Attribute.Integer &
|
||||||
|
Schema.Attribute.Required &
|
||||||
|
Schema.Attribute.DefaultTo<20>;
|
||||||
|
proEnabled: Schema.Attribute.Boolean & Schema.Attribute.DefaultTo<false>;
|
||||||
|
publishedAt: Schema.Attribute.DateTime;
|
||||||
|
referralRewardDays: Schema.Attribute.Integer &
|
||||||
|
Schema.Attribute.Required &
|
||||||
|
Schema.Attribute.DefaultTo<1>;
|
||||||
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiSubscriptionSubscription
|
||||||
|
extends Struct.CollectionTypeSchema {
|
||||||
|
collectionName: 'subscriptions';
|
||||||
|
info: {
|
||||||
|
displayName: 'Subscription';
|
||||||
|
pluralName: 'subscriptions';
|
||||||
|
singularName: 'subscription';
|
||||||
|
};
|
||||||
|
options: {
|
||||||
|
draftAndPublish: true;
|
||||||
|
};
|
||||||
|
attributes: {
|
||||||
|
active: Schema.Attribute.Boolean &
|
||||||
|
Schema.Attribute.Required &
|
||||||
|
Schema.Attribute.DefaultTo<false>;
|
||||||
|
createdAt: Schema.Attribute.DateTime;
|
||||||
|
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
customer: Schema.Attribute.Relation<'manyToOne', 'api::customer.customer'>;
|
||||||
|
expiresAt: Schema.Attribute.DateTime & Schema.Attribute.Required;
|
||||||
|
locale: Schema.Attribute.String & Schema.Attribute.Private;
|
||||||
|
localizations: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::subscription.subscription'
|
||||||
|
> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
nextSubscription: Schema.Attribute.Relation<
|
||||||
|
'oneToOne',
|
||||||
|
'api::subscription.subscription'
|
||||||
|
>;
|
||||||
|
publishedAt: Schema.Attribute.DateTime;
|
||||||
|
subscription_history: Schema.Attribute.Relation<
|
||||||
|
'oneToOne',
|
||||||
|
'api::subscription-history.subscription-history'
|
||||||
|
>;
|
||||||
|
subscription_rewards: Schema.Attribute.Relation<
|
||||||
|
'oneToMany',
|
||||||
|
'api::subscription-reward.subscription-reward'
|
||||||
|
>;
|
||||||
|
updatedAt: Schema.Attribute.DateTime;
|
||||||
|
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
|
||||||
|
Schema.Attribute.Private;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export interface PluginContentReleasesRelease
|
export interface PluginContentReleasesRelease
|
||||||
extends Struct.CollectionTypeSchema {
|
extends Struct.CollectionTypeSchema {
|
||||||
collectionName: 'strapi_releases';
|
collectionName: 'strapi_releases';
|
||||||
@ -1119,12 +1306,16 @@ declare module '@strapi/strapi' {
|
|||||||
'admin::transfer-token': AdminTransferToken;
|
'admin::transfer-token': AdminTransferToken;
|
||||||
'admin::transfer-token-permission': AdminTransferTokenPermission;
|
'admin::transfer-token-permission': AdminTransferTokenPermission;
|
||||||
'admin::user': AdminUser;
|
'admin::user': AdminUser;
|
||||||
'api::block.block': ApiBlockBlock;
|
|
||||||
'api::customer.customer': ApiCustomerCustomer;
|
'api::customer.customer': ApiCustomerCustomer;
|
||||||
|
'api::customer.customer-setting': ApiCustomerCustomerSetting;
|
||||||
'api::order.order': ApiOrderOrder;
|
'api::order.order': ApiOrderOrder;
|
||||||
'api::service.service': ApiServiceService;
|
'api::service.service': ApiServiceService;
|
||||||
'api::setting.setting': ApiSettingSetting;
|
|
||||||
'api::slot.slot': ApiSlotSlot;
|
'api::slot.slot': ApiSlotSlot;
|
||||||
|
'api::subscription-history.subscription-history': ApiSubscriptionHistorySubscriptionHistory;
|
||||||
|
'api::subscription-price.subscription-price': ApiSubscriptionPriceSubscriptionPrice;
|
||||||
|
'api::subscription-reward.subscription-reward': ApiSubscriptionRewardSubscriptionReward;
|
||||||
|
'api::subscription-setting.subscription-setting': ApiSubscriptionSettingSubscriptionSetting;
|
||||||
|
'api::subscription.subscription': ApiSubscriptionSubscription;
|
||||||
'plugin::content-releases.release': PluginContentReleasesRelease;
|
'plugin::content-releases.release': PluginContentReleasesRelease;
|
||||||
'plugin::content-releases.release-action': PluginContentReleasesReleaseAction;
|
'plugin::content-releases.release-action': PluginContentReleasesReleaseAction;
|
||||||
'plugin::i18n.locale': PluginI18NLocale;
|
'plugin::i18n.locale': PluginI18NLocale;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user