# huesos
Basis for developing chat-robots with "Web App" technology for Telegram
## Installation
### AnangoDB
1. Create a Graph with the specified values
**Name:** catalog
**edgeDefinition:** entry
**fromCollections:** categoy, product
**toCollections:** category
2. Create a Graph with the specified values
**Name:** sessions
**edgeDefinition:** connect
**fromCollections:** account
**toCollections:** session
3. Create indexes for the "product" collection
**Type:** "Inverted Index"
**Fields:** name.ru
**Analyzer:** "text_ru"
**Search field:** true
**Name:** name_ru
*Add indexes for all search parameters and for all languages (search language is selected based on the user's language,
otherwise from the default language specified in the active settings from **settings** collection document)*
*See fields in the `mirzaev/arming_bot/models/product`
**name.ru**, **description.ru** and **compatibility.ru***
4. Create a View with the specified values
**type:** search-alias (you can also use "arangosearch")
**name:** **product**s_search
**indexes:**
```json
"indexes": [
{
"collection": "product",
"index": "title_ru" # THIS IS AN EXAMPLE
}
]
```
### NGINX
1. Example of NGINX server file
```nginx
location / {
try_files $uri $uri/ /index.php;
}
location ~ /(?categories|products) {
root /var/www/arming_bot/mirzaev/arming_bot/system/storage;
try_files $uri =404;
}
location ~ \.php$ {
...
}
```
### SystemD (or any alternative you like)
1. Execute: `sudo cp telegram-huesos.service /etc/systemd/system/telegram-huesos.service`
*before you execute the command think about **what it does** and whether the **paths** are specified correctly*
*the configuration file is very simple and you can remake it for any alternative to SystemD that you like*
## Settings
Settings of chat-robot and Web App
Make sure you have a **settings** collection (can be created automatically) and at least one document with the "status" parameter set to "active"
```json
{
"status": "active",
"project": {
"name": "NAME_OF_THE_PROJECT"
},
"language": "en",
"currency": "usd"
}
```
### Language
Language for render of interface, if account or session language is not initialized
**Value:** en
**⚠️ The value will be converted to an instance of enumeration** `mirzaev\arming_bot\models\enumerations\language`
### Currency
Currency for calculations and render of interface, if account or session currency is not initialized
**Value:** usd
**⚠️ The value will be converted to an instance of enumeration** `mirzaev\arming_bot\models\enumerations\currency`
## Suspensions
System of suspensions of chat-robot and Web App
Make sure you have a **suspension** collection (can be created automatically)
```json
{
"end": 1726068961,
"targets": {
"chat-robot": true,
"web app": true
}
"access": {
"tester": true,
"developer": true
},
"description": {
"ru": "Разрабатываю каталог, поиск и корзину",
"en": "I am developing a catalog, search and cart"
}
}
```