1
0
Fork 0
mirror of synced 2025-04-07 07:03:31 +03:00

Compare commits

...

92 commits

Author SHA1 Message Date
7a87f2669b
Merge pull request #54 from Chupocabra/refactor-members_req
Use CommonFields in MembersRequest
2025-03-26 11:42:56 +03:00
Alex Komarichev
f65dcac9f5 ignore phpstan setID type error 2025-03-26 11:33:11 +03:00
Alex Komarichev
9a23562cbd Use CommonFields in MembersRequest 2025-03-26 11:14:48 +03:00
141c2c9bc3
update actions version in ci 2025-03-26 11:09:50 +03:00
46e0f84265
Merge pull request #53 from kifril-ltd/role-hidden
Add new bot role `hidden`
2024-11-15 14:40:13 +03:00
Kirill Sukhorukov
dc0ead717e Add new bot role hidden 2024-11-14 15:46:02 +03:00
2d5a8ceaed
Added is_system to User 2024-11-05 12:42:01 +03:00
Alex Komarichev
2b798fa877 Added is_system to User 2024-11-05 12:28:27 +03:00
95520bb1e7
Add include_mass_communication param to requests 2024-09-16 15:29:00 +03:00
Opheugene
bd0c267f09 fix tests 2024-09-16 13:53:48 +02:00
Opheugene
f0ba8e65f3 Added include_mass_communication param for requests 2024-09-16 13:44:41 +02:00
fb0e9404a5
Add audio transcription field 2024-09-13 15:22:17 +03:00
Opheugene
b1fd78d2b5 fix phpstan 2024-09-13 13:06:04 +02:00
Opheugene
5da993d598 Add Item transcription 2024-09-13 13:00:57 +02:00
4b6e9e0dff
Add chat reply_deadline field 2024-08-14 17:10:27 +03:00
2640e661cf
Add responsible external_id field 2024-08-14 17:10:14 +03:00
Alex Komarichev
d34270121c Add responsible external_id field 2024-08-14 17:02:07 +03:00
Alex Komarichev
93777973b5 Add reply_deadline to chats.json 2024-08-14 10:00:37 +03:00
Alex Komarichev
bcf3d0974b Add chat reply_deadline field 2024-08-13 19:52:44 +03:00
6e4dd6af44
Add since_id field to ChatsRequest 2024-07-16 13:02:55 +03:00
Vlasov
370fd04824 Added since_id field to ChatsRequest 2024-07-16 12:45:06 +03:00
26aa42ce67
Add template attachments 2024-07-02 16:38:51 +03:00
Alex Komarichev
290d5f87e5 phpstan 2024-07-02 15:35:20 +03:00
Alex Komarichev
54486d4008 Add template attachments 2024-07-02 15:30:36 +03:00
1fc8ccda10
Add templates interaction 2024-06-25 12:05:14 +03:00
Alex Komarichev
33e816ce97 Add templateSend phpdoc 2024-06-25 11:20:01 +03:00
Alex Komarichev
4b5041b05b phpstan 2024-06-24 21:07:47 +03:00
Alex Komarichev
8a20b86b17 Add templates interaction 2024-06-24 20:21:41 +03:00
a05cf2cc09
Add note to SendMessageRequest 2024-06-21 14:02:54 +03:00
Alex Komarichev
be857dd1ac Add note to SendMessageRequest 2024-06-20 19:14:50 +03:00
90b90c0f8d
Add working with customer utm 2024-05-22 16:54:37 +03:00
Alex Komarichev
5aaed7ab7d Add working with customer utm 2024-05-21 20:25:44 +03:00
Chupocabra
6682b9b02c
Add working with dialog tags 2024-02-29 12:01:40 +03:00
41cb22a720
Add suggestions to ChannelSettings 2024-02-06 15:01:55 +03:00
Alex Komarichev
8892e5fe5a Phpstan fixes 2024-02-06 12:05:24 +03:00
Alex Komarichev
e14afbf773 Add suggestions to ChannelSettings 2024-02-05 19:21:42 +03:00
93924bf3b5
add limit field to MessagesRequest 2023-10-26 10:16:31 +03:00
3d7a10f7c6 update phpstan baseline 2023-10-26 10:13:42 +03:00
7dd570ffc3 add limit field to MessagesRequest 2023-10-26 09:50:02 +03:00
Ilyas Salikhov
d92b89ad37
Merge pull request #39 from retailcrm/dialog-list-since-id-filter
Filter sinceId in dialog list method
2023-08-10 19:04:04 +03:00
Ilyas Salikhov
8b9afc52af Filter sinceId in dialog list method 2023-08-10 18:57:40 +03:00
Ilyas Salikhov
d9192f963c
Merge pull request #38 from retailcrm/php-env-and-version
Php ENV and actual version
2023-08-10 18:56:49 +03:00
Ilyas Salikhov
b478dd6f25 Ability to run tests in docker 2023-08-10 18:40:29 +03:00
Ilyas Salikhov
29d6732404 Actualized PHP version in README and composer.json according to the versions in CI 2023-08-10 18:31:31 +03:00
59e9c8d3be
add quote field to the message type 2023-06-07 16:00:13 +03:00
Ruslan Efanov
e1e484e046 add field quote for message 2023-06-05 14:31:09 +03:00
516e7855a0
add note field support 2023-05-24 16:04:21 +03:00
a08a03c1c8 phpstan fix 2023-05-24 15:59:04 +03:00
016f152fef add note field support 2023-05-24 15:56:55 +03:00
max-baranikov
c024350882
Fixed url deserialization in getFileById() method (#35)
* Added tests to reproduce issue
* Fixed url deserialization in getFileById() method
2023-04-27 14:27:18 +03:00
6ec1f00df9
add limit to requests 2023-02-07 16:14:01 +03:00
Ruslan Efanov
58aa909473 add using limit in requests 2023-02-07 12:50:29 +03:00
1650ff34aa
Parse dates with and without nanoseconds 2023-01-20 13:09:15 +03:00
aac414ecd5 parse dates without nanoseconds 2023-01-20 13:06:36 +03:00
181a9703a5
fix for /chats request 2022-12-22 15:41:11 +03:00
910bf5e118
update dependencies 2022-12-22 15:40:59 +03:00
7e1ed1a241 additional fixes 2022-12-22 15:21:14 +03:00
45b1012632 update test matrix 2022-12-22 14:57:29 +03:00
2c5fe64779 update dependencies 2022-12-22 14:55:13 +03:00
0631c80ebb fix for typos 2022-12-22 14:03:10 +03:00
c931b2622c fix for /chats request 2022-12-22 13:46:12 +03:00
7a92435f9f
Add test for GET request of chats by customer_id 2022-12-07 17:03:52 +03:00
Ruslan Efanov
4b898fdc95 Add test for GET request of chats by customer_id 2022-11-16 16:19:27 +03:00
62ff2ec979
update ChatsRequest 2022-11-16 10:01:25 +03:00
6476caf9b9 fix for linter notifications 2022-11-16 09:57:29 +03:00
92a0eb0c0b update ChatsRequest 2022-11-16 09:54:56 +03:00
6fbddeb2a9
Bump guzzlehttp/guzzle from 6.5.7 to 6.5.8 2022-06-22 09:52:14 +03:00
dependabot[bot]
00a8764edb
Bump guzzlehttp/guzzle from 6.5.7 to 6.5.8
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 6.5.7 to 6.5.8.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/6.5.8/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/6.5.7...6.5.8)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-21 20:51:06 +00:00
c9a992bf6b
Bump guzzlehttp/guzzle from 6.5.6 to 6.5.7 2022-06-15 09:25:32 +03:00
dependabot[bot]
fff4e6d3fa
Bump guzzlehttp/guzzle from 6.5.6 to 6.5.7
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 6.5.6 to 6.5.7.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/6.5.7/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/6.5.6...6.5.7)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-10 06:40:35 +00:00
6f277f6ccd
Update guzzlehttp/guzzle to 6.5.6 2022-05-27 11:21:27 +03:00
dependabot[bot]
f56720289b
Bump guzzlehttp/guzzle from 6.5.5 to 6.5.6
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 6.5.5 to 6.5.6.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/6.5.6/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/6.5.5...6.5.6)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-25 18:14:00 +00:00
dependabot[bot]
04cd471765
Bump guzzlehttp/psr7 from 1.8.3 to 1.8.5 (#25)
Bumps [guzzlehttp/psr7](https://github.com/guzzle/psr7) from 1.8.3 to 1.8.5.
- [Release notes](https://github.com/guzzle/psr7/releases)
- [Changelog](https://github.com/guzzle/psr7/blob/1.8.5/CHANGELOG.md)
- [Commits](https://github.com/guzzle/psr7/compare/1.8.3...1.8.5)

---
updated-dependencies:
- dependency-name: guzzlehttp/psr7
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-31 15:03:29 +03:00
tishmaria90
cb94fd8e02
Keep false values while deserializing (#24)
Co-authored-by: Maria Tyschitskaya <tyschitskaya@retailcrm.ru>
2021-12-23 14:33:44 +03:00
tishmaria90
98563e2e60
Update php version (#20) 2021-12-13 10:48:18 +03:00
max-baranikov
c6a44ea2b3
Added suggestions to MessageSendRequest (#16) 2021-10-15 13:39:36 +03:00
Opheugene
bb78a4ffb3
Add dialogUnassign method for the client (#15) 2021-09-02 11:17:59 +03:00
Alex Lushpai
84ecba8714
Update product name, cleanup annotations (#14) 2020-12-15 13:34:43 +03:00
Akolzin Dmitry
b7f214a212
Move CI to GitHub Actions (#13) 2020-11-26 15:57:53 +03:00
Alex Lushpai
c758c27e98
Update README.md 2020-11-12 13:58:50 +03:00
Alex Lushpai
ed2efc4d1d
Merge pull request #12 from open-source-contributions/test_enhancement
Test enhancement
2019-10-23 23:41:13 +03:00
peter279k
316836aca7 Test enhancement 2019-10-24 02:35:21 +08:00
Alex Lushpai
0534f31c34
Merge pull request #11 from Neur0toxine/master
[fix] update phpdoc for getters
2019-10-08 17:06:37 +03:00
91453308fe [fix] update phpdoc for getters 2019-10-08 17:02:39 +03:00
Alex Lushpai
9e18bba010
Merge pull request #10 from Neur0toxine/master
[fix] make all getters nullable
2019-10-08 12:33:34 +03:00
49045777d3 [fix] make all getters nullable 2019-10-08 09:12:36 +03:00
Alex Lushpai
6594182fb0
Merge pull request #9 from Neur0toxine/master
[fix] nullable types to avoid exceptions when properties is not set
2019-10-07 10:14:01 +03:00
e111b8d882 [fix] nullable types to avoid exceptions when properties is not set 2019-10-07 09:09:49 +03:00
Alex Lushpai
5f6179ea1c
Merge pull request #8 from Neur0toxine/master
[fix] removed models duplicates, fixed several errors
2019-09-30 17:23:11 +03:00
1929afe400 [fix] removed models duplicates, fixed several errors 2019-09-30 17:02:48 +03:00
Alex Lushpai
93e06271c7
Merge pull request #7 from Neur0toxine/master
fix: change Register::active type from string to boolean
2019-07-23 17:33:34 +03:00
561737ffbc fix: change Register::active type from string to boolean 2019-07-23 17:25:59 +03:00
118 changed files with 5981 additions and 6130 deletions

36
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,36 @@
name: ci
on:
push:
branches:
- '**'
tags-ignore:
- '*.*'
pull_request:
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['7.3', '7.4', '8.0', '8.1']
steps:
- uses: actions/checkout@v4
- name: Setup PHP ${{ matrix.php-version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
tools: composer:v1
- name: Composer cache
uses: actions/cache@v4
with:
path: ${{ env.HOME }}/.composer/cache
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
- name: Install dependencies
run: composer install -o
- name: Phpstan analysis
run: make stan
- name: Run tests
run: make test
- name: Coverage
run: bash <(curl -s https://codecov.io/bash)

3
.gitignore vendored
View file

@ -194,4 +194,7 @@ build/*
# Test report & coverage
test-report.xml
.phpunit.result.cache
clover.xml
composer.lock
docker-compose.yml

View file

@ -1,19 +0,0 @@
language: php
cache:
directories:
- $HOME/.composer/cache
php:
- '7.1'
- '7.2'
- '7.3'
before_script:
- flags="-o"
- composer install $flags
script: make travis
after_success:
- bash <(curl -s https://codecov.io/bash)

View file

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2018-2019 RetailDriver LLC
Copyright (c) 2018-2020 RetailDriver LLC
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View file

@ -1,18 +1,16 @@
ROOT_DIR=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
SRC_DIR=$(ROOT_DIR)/src
BIN_DIR=$(ROOT_DIR)/vendor/bin
ifneq ("$(wildcard docker-compose.yml)","")
PHP=docker-compose run --rm --no-deps php php
else
PHP=php
endif
test:
@echo "==> Running tests"
@cd $(ROOT_DIR)
@cp .env.dist .env
@php -d memory_limit=-1 $(BIN_DIR)/phpunit -c phpunit.xml.dist
@$(PHP) -d memory_limit=-1 vendor/bin/phpunit -c phpunit.xml.dist
@echo "==> Testing complete"
stan:
@echo "==> Running analysis"
@php $(BIN_DIR)/phpstan analyse
@$(PHP) vendor/bin/phpstan analyse
@echo "==> Analysis complete"
travis: test stan
@echo "==> Completed"

View file

@ -1,16 +1,14 @@
[![Build Status](https://img.shields.io/travis/retailcrm/mg-bot-api-client-php/master.svg?style=flat-square)](https://travis-ci.org/retailcrm/mg-bot-api-client-php)
[![Covarage](https://img.shields.io/codecov/c/gh/retailcrm/mg-bot-api-client-php/master.svg?style=flat-square)](https://codecov.io/gh/retailcrm/mg-bot-api-client-php)
[![Latest stable](https://img.shields.io/packagist/v/retailcrm/mg-bot-api-client-php.svg?style=flat-square)](https://packagist.org/packages/retailcrm/mg-bot-api-client-php)
[![PHP from Packagist](https://img.shields.io/packagist/php-v/retailcrm/mg-bot-api-client-php.svg?style=flat-square)](https://packagist.org/packages/retailcrm/mg-bot-api-client-php)
[![Build Status](https://github.com/retailcrm/mg-bot-api-client-php/workflows/ci/badge.svg)](https://github.com/retailcrm/mg-bot-api-client-php/actions)
[![Coverage](https://img.shields.io/codecov/c/gh/retailcrm/mg-bot-api-client-php/master.svg?logo=codecov&logoColor=white)](https://codecov.io/gh/retailcrm/mg-bot-api-client-php)
[![Latest stable](https://img.shields.io/packagist/v/retailcrm/mg-bot-api-client-php.svg)](https://packagist.org/packages/retailcrm/mg-bot-api-client-php)
[![PHP from Packagist](https://img.shields.io/packagist/php-v/retailcrm/mg-bot-api-client-php.svg?logo=php&logoColor=white)](https://packagist.org/packages/retailcrm/mg-bot-api-client-php)
# Message Gateway Bot API PHP client
This is php library for retailCRM MG Bot API.
## Requirements
* PHP 7.1 and above
* PHP 7.3 and above
* PHP's cURL support
* PHP's JSON support
@ -53,8 +51,3 @@ try {
echo $response->getPreviousResponsible();
```
### Documentation
* [English](https://139810.selcdn.ru/download/doc/mg-bot-api/bot.v1.en.html)
* [Russian](https://help.retailcrm.ru/Developers/MgBot)

View file

@ -1,43 +1,50 @@
{
"name": "retailcrm/mg-bot-api-client-php",
"description": "PHP client for retailCRM MG Bot API",
"description": "PHP client for MG Bot API",
"type": "library",
"keywords": ["API", "retailCRM", "REST", "bot"],
"keywords": ["API", "RetailCRM", "REST", "bot"],
"homepage": "http://www.retailcrm.ru/",
"license": "MIT",
"authors": [
{
"name": "retailCRM",
"email": "support@retailcrm.ru"
"name": "RetailCRM",
"email": "support@retailcrm.pro"
}
],
"require": {
"php": ">=7.1",
"php": ">=7.3",
"ext-curl": "*",
"ext-json": "*",
"jms/serializer": "1.14.*",
"symfony/validator": "4.3.*",
"doctrine/annotations": "1.6.*",
"doctrine/cache": "1.6.*",
"guzzlehttp/guzzle": "6.*"
"jms/serializer": "3.*",
"symfony/validator": "5.4.*|^6",
"doctrine/annotations": "^1",
"guzzlehttp/guzzle": "7.*",
"symfony/intl": "5.4.*|^6",
"symfony/cache": "5.4.*|^6"
},
"require-dev": {
"phpmd/phpmd": "2.*",
"squizlabs/php_codesniffer": "3.4.*",
"symfony/dotenv": "4.3.*",
"phpunit/phpunit": "7.*",
"phpstan/phpstan": "0.11.*"
"symfony/dotenv": "5.4.*",
"phpunit/phpunit": "^9",
"phpstan/phpstan": "0.12.*"
},
"support": {
"email": "support@retailcrm.ru"
"email": "support@retailcrm.pro"
},
"autoload": {
"psr-4": {
"RetailCrm\\Mg\\": ["src/", "tests/"],
"RetailCrm\\Common\\": ["src/", "tests/"]
"RetailCrm\\Mg\\": "src/",
"RetailCrm\\Common\\": "src/"
},
"files": ["extra/autoloader.php"]
},
"autoload-dev": {
"psr-4": {
"RetailCrm\\Mg\\": "tests/",
"RetailCrm\\Common\\": "tests/"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.x-dev"

4023
composer.lock generated

File diff suppressed because it is too large Load diff

1932
phpstan-baseline.neon Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,7 @@
includes:
- phpstan-baseline.neon
parameters:
autoload_files:
- %currentWorkingDirectory%/vendor/autoload.php
level: 7
paths:
- %currentWorkingDirectory%/src

View file

@ -1,8 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.5/phpunit.xsd"
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
backupGlobals="false"
colors="false"
bootstrap="tests/bootstrap.php"
@ -15,22 +13,21 @@
stopOnFailure="false"
stopOnIncomplete="false"
stopOnSkipped="false"
stopOnRisky="false"
>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
</whitelist>
</filter>
<logging>
<log type="coverage-clover" target="clover.xml"/>
<log type="junit" target="/tmp/logfile.xml"/>
</logging>
stopOnRisky="false">
<coverage>
<include>
<directory>src</directory>
</include>
<report>
<clover outputFile="clover.xml"/>
</report>
</coverage>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<logging>
<junit outputFile="/tmp/logfile.xml"/>
</logging>
</phpunit>

View file

@ -6,17 +6,13 @@
* Client
*
* @package RetailCrm\Mg\Bot
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot;
use Psr\Http\Message\ResponseInterface;
use RetailCrm\Common\Url;
use RetailCrm\Common\Serializer;
use RetailCrm\Mg\Bot\Model\ModelAdapter;
use RetailCrm\Common\Url;
use RetailCrm\Mg\Bot\Model\Entity\Bot;
use RetailCrm\Mg\Bot\Model\Entity\Channel\Channel;
use RetailCrm\Mg\Bot\Model\Entity\Chat\Chat;
@ -25,21 +21,22 @@ use RetailCrm\Mg\Bot\Model\Entity\Command;
use RetailCrm\Mg\Bot\Model\Entity\Customer;
use RetailCrm\Mg\Bot\Model\Entity\Dialog;
use RetailCrm\Mg\Bot\Model\Entity\Message\Message;
use RetailCrm\Mg\Bot\Model\Entity\Template\Template;
use RetailCrm\Mg\Bot\Model\Entity\User;
use RetailCrm\Mg\Bot\Model\ModelAdapter;
use RetailCrm\Mg\Bot\Model\ModelInterface;
use RetailCrm\Mg\Bot\Model\Request\UploadFileByUrlRequest;
use RetailCrm\Mg\Bot\Model\Response\AssignResponse;
use RetailCrm\Mg\Bot\Model\Response\ErrorOnlyResponse;
use RetailCrm\Mg\Bot\Model\Response\FullFileResponse;
use RetailCrm\Mg\Bot\Model\Response\MessageSendResponse;
use RetailCrm\Mg\Bot\Model\Response\UnassignResponse;
use RetailCrm\Mg\Bot\Model\Response\UploadFileResponse;
/**
* Class Client
*
* @package RetailCrm\Mg\Bot
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Client
{
@ -276,6 +273,27 @@ class Client
return $adapter->getResponseModel($response);
}
/**
* Unassigning a dialog from a manager or a bot
*
* @param string $request Request parameters
*
* @return \RetailCrm\Mg\Bot\Model\ModelInterface
* @throws \Exception
*/
public function dialogUnassign(string $request)
{
$response = $this->client->makeRequest(
sprintf("/dialogs/%d/unassign", $request),
HttpClient::METHOD_PATCH,
null
);
$adapter = new ModelAdapter(UnassignResponse::class);
return $adapter->getResponseModel($response);
}
/**
* Close exact dialog
*
@ -297,6 +315,48 @@ class Client
return $adapter->getResponseModel($response);
}
/**
* Add tag to dialog
*
* @param Model\Request\DialogTagRequest $request Request parameters
*
* @return \RetailCrm\Mg\Bot\Model\ModelInterface
* @throws \Exception
*/
public function dialogAddTag(Model\Request\DialogTagRequest $request)
{
$response = $this->client->makeRequest(
sprintf("/dialogs/%d/tags/add", $request->getDialogId()),
HttpClient::METHOD_PATCH,
$request
);
$adapter = new ModelAdapter(ErrorOnlyResponse::class);
return $adapter->getResponseModel($response);
}
/**
* Delete tag from dialog
*
* @param Model\Request\DialogTagRequest $request Request parameters
*
* @return \RetailCrm\Mg\Bot\Model\ModelInterface
* @throws \Exception
*/
public function dialogDeleteTag(Model\Request\DialogTagRequest $request)
{
$response = $this->client->makeRequest(
sprintf("/dialogs/%d/tags/delete", $request->getDialogId()),
HttpClient::METHOD_PATCH,
$request
);
$adapter = new ModelAdapter(ErrorOnlyResponse::class);
return $adapter->getResponseModel($response);
}
/**
* Returns filtered members list
*
@ -402,6 +462,47 @@ class Client
return $adapter->getResponseModel($response);
}
/**
* Returns templates list
*
* @return Template[]
* @throws \Exception
*/
public function templates(): array
{
$response = $this->client->makeRequest(
'/templates',
HttpClient::METHOD_GET
);
$adapter = new ModelAdapter(Template::class);
return $adapter->getResponseList($response);
}
/**
* Send a template message
*
* @param string $templateId
* @param Model\Request\TemplateSendRequest $request Request parameters
*
* @return \RetailCrm\Mg\Bot\Model\ModelInterface
* @throws \Exception
*/
public function templateSend(string $templateId, Model\Request\TemplateSendRequest $request): ModelInterface
{
$response = $this->client->makeRequest(
sprintf('/templates/%d/send', $templateId),
HttpClient::METHOD_POST,
$request
);
$adapter = new ModelAdapter(MessageSendResponse::class);
return $adapter->getResponseModel($response);
}
/**
* Returns filtered users list
*

View file

@ -6,9 +6,6 @@
* HttpClient
*
* @package RetailCrm\Mg\Bot
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot;
@ -16,7 +13,12 @@ namespace RetailCrm\Mg\Bot;
use BadMethodCallException;
use ErrorException;
use Exception;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Psr7\Utils;
use InvalidArgumentException;
use Psr\Http\Message\ResponseInterface;
use RetailCrm\Common\Exception\InvalidJsonException;
use RetailCrm\Common\Exception\LimitException;
use RetailCrm\Common\Exception\NotFoundException;
@ -25,19 +27,11 @@ use RetailCrm\Common\Serializer;
use RetailCrm\Common\Url;
use RuntimeException;
use Symfony\Component\Validator\Validation;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use GuzzleHttp\Exception\GuzzleException;
use Psr\Http\Message\ResponseInterface;
use function GuzzleHttp\Psr7\stream_for;
/**
* Class HttpClient
*
* @package RetailCrm\Mg\Bot
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class HttpClient
{
@ -143,7 +137,7 @@ class HttpClient
[self::METHOD_POST, self::METHOD_PUT, self::METHOD_PATCH, self::METHOD_DELETE]
) && is_string($requestBody)
) {
$request = $request->withBody(stream_for($requestBody));
$request = $request->withBody(Utils::streamFor($requestBody));
}
$responseObject = null;
@ -222,14 +216,15 @@ class HttpClient
/**
* Validate given class
*
* @param string $class
* @param object $class
*
* @return void
*/
private function validateRequest($class)
private function validateRequest(object $class)
{
$validator = Validation::createValidatorBuilder()
->enableAnnotationMapping()
->addDefaultDoctrineAnnotationReader()
->getValidator();
$errors = $validator->validate($class);
@ -238,7 +233,7 @@ class HttpClient
$message = '';
foreach ($errors as $error) {
$message .= (string)$error;
$message .= $error->getMessage();
}
throw new InvalidArgumentException($message);

View file

@ -6,9 +6,6 @@
* Constants
*
* @package RetailCrm\Mg\Bot\Model
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model;
@ -17,9 +14,6 @@ namespace RetailCrm\Mg\Bot\Model;
* Constants class
*
* @package RetailCrm\Mg\Bot\Model
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Constants
{
@ -44,6 +38,7 @@ class Constants
const BOT_ROLE_DISTRIBUTOR = "distributor";
const BOT_ROLE_RESPONSIBLE = "responsible";
const BOT_ROLE_HIDDEN = "hidden";
const MESSAGE_SCOPE_PUBLIC = "public";
const MESSAGE_SCOPE_PRIVATE = "private";

View file

@ -6,9 +6,6 @@
* Bot entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Bot class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Bot implements ModelInterface
{
@ -39,7 +33,7 @@ class Bot implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
* @SkipWhenEmpty()
*/
@ -48,7 +42,7 @@ class Bot implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
* @SkipWhenEmpty()
*/
@ -136,9 +130,9 @@ class Bot implements ModelInterface
private $isSystem;
/**
* @return string
* @return string|null
*/
public function getId(): string
public function getId(): ?string
{
return $this->id;
}
@ -154,7 +148,7 @@ class Bot implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): \DateTime
public function getCreatedAt(): ?\DateTime
{
return $this->createdAt;
}
@ -170,7 +164,7 @@ class Bot implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): \DateTime
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
@ -184,9 +178,9 @@ class Bot implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getName(): string
public function getName(): ?string
{
return $this->name;
}
@ -200,9 +194,9 @@ class Bot implements ModelInterface
}
/**
* @return array
* @return array|null
*/
public function getEvents(): array
public function getEvents(): ?array
{
return $this->events;
}
@ -216,9 +210,9 @@ class Bot implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getClientId(): string
public function getClientId(): ?string
{
return $this->clientId;
}
@ -232,9 +226,9 @@ class Bot implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getAvatarUrl(): string
public function getAvatarUrl(): ?string
{
return $this->avatarUrl;
}
@ -248,9 +242,9 @@ class Bot implements ModelInterface
}
/**
* @return array
* @return array|null
*/
public function getRoles(): array
public function getRoles(): ?array
{
return $this->roles;
}
@ -264,9 +258,9 @@ class Bot implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getDeactivatedAt(): string
public function getDeactivatedAt(): ?string
{
return $this->deactivatedAt;
}
@ -280,9 +274,9 @@ class Bot implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isActive(): bool
public function isActive(): ?bool
{
return $this->isActive;
}
@ -296,9 +290,9 @@ class Bot implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isSelf(): bool
public function isSelf(): ?bool
{
return $this->isSelf;
}
@ -312,9 +306,9 @@ class Bot implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isSystem(): bool
public function isSystem(): ?bool
{
return $this->isSystem;
}

View file

@ -6,9 +6,6 @@
* Channel entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Channel;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Class Channel
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Channel implements ModelInterface
{
@ -39,7 +33,7 @@ class Channel implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
*/
private $createdAt;
@ -47,7 +41,7 @@ class Channel implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
*/
private $updatedAt;
@ -55,7 +49,7 @@ class Channel implements ModelInterface
/**
* @var \DateTime $activatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getActivatedAt",setter="setActivatedAt")
*/
private $activatedAt;
@ -63,7 +57,7 @@ class Channel implements ModelInterface
/**
* @var \DateTime $deactivatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getDeactivatedAt",setter="setDeactivatedAt")
*/
private $deactivatedAt;
@ -101,9 +95,9 @@ class Channel implements ModelInterface
private $name;
/**
* @return string
* @return string|null
*/
public function getId(): string
public function getId(): ?string
{
return $this->id;
}
@ -119,7 +113,7 @@ class Channel implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): DateTime
public function getCreatedAt(): ?DateTime
{
return $this->createdAt;
}
@ -135,7 +129,7 @@ class Channel implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): DateTime
public function getUpdatedAt(): ?DateTime
{
return $this->updatedAt;
}
@ -151,7 +145,7 @@ class Channel implements ModelInterface
/**
* @return \DateTime
*/
public function getActivatedAt(): DateTime
public function getActivatedAt(): ?DateTime
{
return $this->activatedAt;
}
@ -167,7 +161,7 @@ class Channel implements ModelInterface
/**
* @return \DateTime
*/
public function getDeactivatedAt(): DateTime
public function getDeactivatedAt(): ?DateTime
{
return $this->deactivatedAt;
}
@ -181,9 +175,9 @@ class Channel implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isActive(): bool
public function isActive(): ?bool
{
return $this->isActive;
}
@ -197,9 +191,9 @@ class Channel implements ModelInterface
}
/**
* @return ChannelSettings
* @return ChannelSettings|null
*/
public function getSettings(): ChannelSettings
public function getSettings(): ?ChannelSettings
{
return $this->settings;
}
@ -213,9 +207,9 @@ class Channel implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getType(): string
public function getType(): ?string
{
return $this->type;
}
@ -229,9 +223,9 @@ class Channel implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getName(): string
public function getName(): ?string
{
return $this->name;
}
@ -239,7 +233,7 @@ class Channel implements ModelInterface
/**
* @param string $name
*/
public function setName(string $name)
public function setName($name)
{
$this->name = $name;
}

View file

@ -6,9 +6,6 @@
* ChannelSettings entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Channel;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Class ChannelSettings
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ChannelSettings implements ModelInterface
{
@ -90,9 +84,18 @@ class ChannelSettings implements ModelInterface
private $file;
/**
* @return ChannelSettingsStatus
* @var ChannelSettingsSuggestions $suggestions
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\Channel\ChannelSettingsSuggestions")
* @Accessor(getter="getSuggestions",setter="setSuggestions")
* @SkipWhenEmpty()
*/
public function getStatus(): ChannelSettingsStatus
private $suggestions;
/**
* @return ChannelSettingsStatus|null
*/
public function getStatus(): ?ChannelSettingsStatus
{
return $this->status;
}
@ -106,9 +109,9 @@ class ChannelSettings implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isSpamAllowed(): bool
public function isSpamAllowed(): ?bool
{
return $this->spamAllowed;
}
@ -122,9 +125,9 @@ class ChannelSettings implements ModelInterface
}
/**
* @return ChannelSettingsItem
* @return ChannelSettingsItem|null
*/
public function getText(): ChannelSettingsItem
public function getText(): ?ChannelSettingsItem
{
return $this->text;
}
@ -138,9 +141,9 @@ class ChannelSettings implements ModelInterface
}
/**
* @return ChannelSettingsItem
* @return ChannelSettingsItem|null
*/
public function getProduct(): ChannelSettingsItem
public function getProduct(): ?ChannelSettingsItem
{
return $this->product;
}
@ -154,9 +157,9 @@ class ChannelSettings implements ModelInterface
}
/**
* @return ChannelSettingsItem
* @return ChannelSettingsItem|null
*/
public function getOrder(): ChannelSettingsItem
public function getOrder(): ?ChannelSettingsItem
{
return $this->order;
}
@ -170,9 +173,9 @@ class ChannelSettings implements ModelInterface
}
/**
* @return ChannelSettingsItem
* @return ChannelSettingsItem|null
*/
public function getImage(): ChannelSettingsItem
public function getImage(): ?ChannelSettingsItem
{
return $this->image;
}
@ -186,9 +189,9 @@ class ChannelSettings implements ModelInterface
}
/**
* @return ChannelSettingsItem
* @return ChannelSettingsItem|null
*/
public function getFile(): ChannelSettingsItem
public function getFile(): ?ChannelSettingsItem
{
return $this->file;
}
@ -200,4 +203,20 @@ class ChannelSettings implements ModelInterface
{
$this->file = $file;
}
/**
* @return ChannelSettingsSuggestions|null
*/
public function getSuggestions(): ?ChannelSettingsSuggestions
{
return $this->suggestions;
}
/**
* @param ChannelSettingsSuggestions $suggestions
*/
public function setSuggestions(ChannelSettingsSuggestions $suggestions): void
{
$this->suggestions = $suggestions;
}
}

View file

@ -6,9 +6,6 @@
* ChannelSettingsItem entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Channel;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* ChannelSettingsItem class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ChannelSettingsItem implements ModelInterface
{
@ -101,9 +95,9 @@ class ChannelSettingsItem implements ModelInterface
private $noteMaxCharsCount;
/**
* @return string
* @return string|null
*/
public function getCreating(): string
public function getCreating(): ?string
{
return $this->creating;
}
@ -117,9 +111,9 @@ class ChannelSettingsItem implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getEditing(): string
public function getEditing(): ?string
{
return $this->editing;
}
@ -133,9 +127,9 @@ class ChannelSettingsItem implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getQuoting(): string
public function getQuoting(): ?string
{
return $this->quoting;
}
@ -149,9 +143,9 @@ class ChannelSettingsItem implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getDeleting(): string
public function getDeleting(): ?string
{
return $this->deleting;
}
@ -165,9 +159,9 @@ class ChannelSettingsItem implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getDelivered(): string
public function getDelivered(): ?string
{
return $this->delivered;
}
@ -181,9 +175,9 @@ class ChannelSettingsItem implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getMaxCharsCount(): int
public function getMaxCharsCount(): ?int
{
return $this->maxCharsCount;
}
@ -197,9 +191,9 @@ class ChannelSettingsItem implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getMaxItemsCount(): int
public function getMaxItemsCount(): ?int
{
return $this->maxItemsCount;
}
@ -213,9 +207,9 @@ class ChannelSettingsItem implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getNoteMaxCharsCount(): int
public function getNoteMaxCharsCount(): ?int
{
return $this->noteMaxCharsCount;
}

View file

@ -6,9 +6,6 @@
* ChannelSettingsStatus entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Channel;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* ChannelSettingsStatus class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ChannelSettingsStatus implements ModelInterface
{
@ -47,9 +41,9 @@ class ChannelSettingsStatus implements ModelInterface
private $read;
/**
* @return string
* @return string|null
*/
public function getDelivered(): string
public function getDelivered(): ?string
{
return $this->delivered;
}
@ -63,9 +57,9 @@ class ChannelSettingsStatus implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getRead(): string
public function getRead(): ?string
{
return $this->read;
}

View file

@ -0,0 +1,100 @@
<?php
/**
* PHP version 7.1
*
* ChannelSettingsSuggestions entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Channel;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* ChannelSettingsSuggestions class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Channel
*/
class ChannelSettingsSuggestions implements ModelInterface
{
/**
* @var string $email
*
* @Type("string")
* @Accessor(getter="getEmail", setter="setEmail")
* @SkipWhenEmpty()
*/
private $email;
/**
* @var string $phone
*
* @Type("string")
* @Accessor(getter="getPhone", setter="setPhone")
* @SkipWhenEmpty()
*/
private $phone;
/**
* @var string $text
*
*
* @Type("string")
* @Accessor(getter="getText", setter="setText")
* @SkipWhenEmpty()
*/
private $text;
/**
* @return string|null
*/
public function getEmail(): ?string
{
return $this->email;
}
/**
* @param string $email
*/
public function setEmail(string $email): void
{
$this->email = $email;
}
/**
* @return string|null
*/
public function getPhone(): ?string
{
return $this->phone;
}
/**
* @param string $phone
*/
public function setPhone(string $phone): void
{
$this->phone = $phone;
}
/**
* @return string|null
*/
public function getText(): ?string
{
return $this->text;
}
/**
* @param string $text
*/
public function setText(string $text): void
{
$this->text = $text;
}
}

View file

@ -6,9 +6,6 @@
* Chat entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Chat
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Chat;
@ -24,9 +21,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Chat class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Chat
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Chat implements ModelInterface
{
@ -41,7 +35,7 @@ class Chat implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
*/
private $createdAt;
@ -49,7 +43,7 @@ class Chat implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
*/
private $updatedAt;
@ -106,7 +100,7 @@ class Chat implements ModelInterface
/**
* @var ChatLastMessage $lastMessage
*
* @Type("ChatLastMessage")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Chat\ChatLastMessage")
* @Accessor(getter="getLastMessage",setter="setLastMessage")
*/
private $lastMessage;
@ -120,9 +114,17 @@ class Chat implements ModelInterface
private $lastActivity;
/**
* @return string
* @var \DateTime $replyDeadline
*
* @Type("DateTime<'Y-m-d\TH:i:sP'>")
* @Accessor(getter="getReplyDeadline",setter="setReplyDeadline")
*/
public function getId(): string
private $replyDeadline;
/**
* @return string|null
*/
public function getId(): ?string
{
return $this->id;
}
@ -138,7 +140,7 @@ class Chat implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): \DateTime
public function getCreatedAt(): ?\DateTime
{
return $this->createdAt;
}
@ -154,7 +156,7 @@ class Chat implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): \DateTime
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
@ -168,9 +170,9 @@ class Chat implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getAvatar(): string
public function getAvatar(): ?string
{
return $this->avatar;
}
@ -184,9 +186,9 @@ class Chat implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getName(): string
public function getName(): ?string
{
return $this->name;
}
@ -200,9 +202,9 @@ class Chat implements ModelInterface
}
/**
* @return Channel
* @return Channel|null
*/
public function getChannel(): Channel
public function getChannel(): ?Channel
{
return $this->channel;
}
@ -216,9 +218,9 @@ class Chat implements ModelInterface
}
/**
* @return array
* @return array|null
*/
public function getMembers(): array
public function getMembers(): ?array
{
return $this->members;
}
@ -232,9 +234,9 @@ class Chat implements ModelInterface
}
/**
* @return Customer
* @return Customer|null
*/
public function getCustomer(): Customer
public function getCustomer(): ?Customer
{
return $this->customer;
}
@ -248,9 +250,9 @@ class Chat implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getAuthorId(): int
public function getAuthorId(): ?int
{
return $this->authorId;
}
@ -264,9 +266,9 @@ class Chat implements ModelInterface
}
/**
* @return ChatLastMessage
* @return ChatLastMessage|null
*/
public function getLastMessage(): ChatLastMessage
public function getLastMessage(): ?ChatLastMessage
{
return $this->lastMessage;
}
@ -282,7 +284,7 @@ class Chat implements ModelInterface
/**
* @return \DateTime
*/
public function getLastActivity(): \DateTime
public function getLastActivity(): ?\DateTime
{
return $this->lastActivity;
}
@ -294,4 +296,20 @@ class Chat implements ModelInterface
{
$this->lastActivity = $lastActivity;
}
/**
* @return \DateTime
*/
public function getReplyDeadline(): ?\DateTime
{
return $this->replyDeadline;
}
/**
* @param \DateTime $replyDeadline
*/
public function setReplyDeadline(\DateTime $replyDeadline): void
{
$this->replyDeadline = $replyDeadline;
}
}

View file

@ -6,9 +6,6 @@
* ChatLastMessage entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Chat
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Chat;
@ -16,15 +13,13 @@ namespace RetailCrm\Mg\Bot\Model\Entity\Chat;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\Entity\Customer;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* ChatLastMessage class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Chat
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ChatLastMessage implements ModelInterface
{
@ -40,7 +35,7 @@ class ChatLastMessage implements ModelInterface
/**
* @var \DateTime $time
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:sP'>")
* @Accessor(getter="getTime",setter="setTime")
* @SkipWhenEmpty()
*/
@ -56,9 +51,80 @@ class ChatLastMessage implements ModelInterface
private $type;
/**
* @return int
* @var string $scope
*
* @Type("string")
* @Accessor(getter="getScope",setter="setScope")
* @SkipWhenEmpty()
*/
public function getId(): int
private $scope;
/**
* @var int $chatId
*
* @Type("int")
* @Accessor(getter="getChatId",setter="setChatId")
* @SkipWhenEmpty()
*/
private $chatId;
/**
* @var bool $isRead
*
* @Type("bool")
* @Accessor(getter="getIsRead",setter="setIsRead")
* @SkipWhenEmpty()
*/
private $isRead;
/**
* @var bool $isEdit
*
* @Type("bool")
* @Accessor(getter="getIsEdit",setter="setIsEdit")
* @SkipWhenEmpty()
*/
private $isEdit;
/**
* @var string $status
*
* @Type("string")
* @Accessor(getter="getStatus",setter="setStatus")
* @SkipWhenEmpty()
*/
private $status;
/**
* @var Customer $from
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\Customer")
* @Accessor(getter="getFrom",setter="setFrom")
*/
private $from;
/**
* @var string $content
*
* @Type("string")
* @Accessor(getter="getContent",setter="setContent")
* @SkipWhenEmpty()
*/
private $content;
/**
* @var \RetailCrm\Mg\Bot\Model\Entity\Message\MessageQuote $quote
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageQuote")
* @Accessor(getter="getQuote",setter="setQuote")
* @SkipWhenEmpty()
*/
private $quote;
/**
* @return int|null
*/
public function getId(): ?int
{
return $this->id;
}
@ -74,7 +140,7 @@ class ChatLastMessage implements ModelInterface
/**
* @return \DateTime
*/
public function getTime(): \DateTime
public function getTime(): ?\DateTime
{
return $this->time;
}
@ -88,9 +154,9 @@ class ChatLastMessage implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getType(): string
public function getType(): ?string
{
return $this->type;
}
@ -102,4 +168,132 @@ class ChatLastMessage implements ModelInterface
{
$this->type = $type;
}
/**
* @return mixed
*/
public function getScope()
{
return $this->scope;
}
/**
* @param mixed $scope
*/
public function setScope($scope): void
{
$this->scope = $scope;
}
/**
* @return mixed
*/
public function getChatId()
{
return $this->chatId;
}
/**
* @param mixed $chatId
*/
public function setChatId($chatId): void
{
$this->chatId = $chatId;
}
/**
* @return mixed
*/
public function getIsRead()
{
return $this->isRead;
}
/**
* @param mixed $isRead
*/
public function setIsRead($isRead): void
{
$this->isRead = $isRead;
}
/**
* @return mixed
*/
public function getIsEdit()
{
return $this->isEdit;
}
/**
* @param mixed $isEdit
*/
public function setIsEdit($isEdit): void
{
$this->isEdit = $isEdit;
}
/**
* @return mixed
*/
public function getStatus()
{
return $this->status;
}
/**
* @param mixed $status
*/
public function setStatus($status): void
{
$this->status = $status;
}
/**
* @return mixed
*/
public function getFrom()
{
return $this->from;
}
/**
* @param mixed $from
*/
public function setFrom($from): void
{
$this->from = $from;
}
/**
* @return mixed
*/
public function getContent()
{
return $this->content;
}
/**
* @param mixed $content
*/
public function setContent($content): void
{
$this->content = $content;
}
/**
* @return mixed
*/
public function getQuote()
{
return $this->quote;
}
/**
* @param mixed $quote
*/
public function setQuote($quote): void
{
$this->quote = $quote;
}
}

View file

@ -6,9 +6,6 @@
* ChatMember entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Chat
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Chat;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* ChatMember class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Chat
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ChatMember implements ModelInterface
{
@ -39,7 +33,7 @@ class ChatMember implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
*/
private $createdAt;
@ -47,7 +41,7 @@ class ChatMember implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
* @SkipWhenEmpty()
*/
@ -90,9 +84,9 @@ class ChatMember implements ModelInterface
private $state;
/**
* @return string
* @return string|null
*/
public function getId(): string
public function getId(): ?string
{
return $this->id;
}
@ -108,7 +102,7 @@ class ChatMember implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): \DateTime
public function getCreatedAt(): ?\DateTime
{
return $this->createdAt;
}
@ -124,7 +118,7 @@ class ChatMember implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): \DateTime
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
@ -138,9 +132,9 @@ class ChatMember implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getChatId(): int
public function getChatId(): ?int
{
return $this->chatId;
}
@ -154,9 +148,9 @@ class ChatMember implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getUserId(): int
public function getUserId(): ?int
{
return $this->userId;
}
@ -170,9 +164,9 @@ class ChatMember implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isAuthor(): bool
public function isAuthor(): ?bool
{
return $this->isAuthor;
}
@ -186,9 +180,9 @@ class ChatMember implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getState(): string
public function getState(): ?string
{
return $this->state;
}

View file

@ -6,9 +6,6 @@
* Command entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Command class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Command implements ModelInterface
{
@ -39,7 +33,7 @@ class Command implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
*/
private $createdAt;
@ -47,7 +41,7 @@ class Command implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
* @SkipWhenEmpty()
*/
@ -72,9 +66,9 @@ class Command implements ModelInterface
private $description;
/**
* @return string
* @return string|null
*/
public function getId(): string
public function getId(): ?string
{
return $this->id;
}
@ -90,7 +84,7 @@ class Command implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): \DateTime
public function getCreatedAt(): ?\DateTime
{
return $this->createdAt;
}
@ -106,7 +100,7 @@ class Command implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): \DateTime
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
@ -120,9 +114,9 @@ class Command implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getName(): string
public function getName(): ?string
{
return $this->name;
}
@ -136,9 +130,9 @@ class Command implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getDescription(): string
public function getDescription(): ?string
{
return $this->description;
}

View file

@ -1,81 +0,0 @@
<?php
/**
* PHP version 7.1
*
* Cost entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Cost class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Cost implements ModelInterface
{
/**
* @var float $value
*
* @Type("float")
* @Accessor(getter="getValue",setter="setValue")
* @SkipWhenEmpty()
*/
private $value;
/**
* @var string $currency
*
* @Type("string")
* @Accessor(getter="getCurrency",setter="setCurrency")
*
* @Assert\Currency
*/
private $currency;
/**
* @return float
*/
public function getValue()
{
return $this->value;
}
/**
* @param float $value
*/
public function setValue(float $value)
{
$this->value = $value;
}
/**
* @return string
*/
public function getCurrency()
{
return $this->currency;
}
/**
* @param string $currency
*/
public function setCurrency(string $currency)
{
$this->currency = $currency;
}
}

View file

@ -6,9 +6,6 @@
* Customer entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
@ -23,9 +20,6 @@ use JMS\Serializer\Annotation\Type;
* Customer class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Customer implements ModelInterface
{
@ -40,7 +34,7 @@ class Customer implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
*/
private $createdAt;
@ -48,7 +42,7 @@ class Customer implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
* @SkipWhenEmpty()
*/
@ -174,9 +168,18 @@ class Customer implements ModelInterface
private $email;
/**
* @return string
* @var Utm $utm
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\Utm")
* @Accessor(getter="getUtm",setter="setUtm")
* @SkipWhenEmpty()
*/
public function getId(): string
private $utm;
/**
* @return string|null
*/
public function getId(): ?string
{
return $this->id;
}
@ -192,7 +195,7 @@ class Customer implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): \DateTime
public function getCreatedAt(): ?\DateTime
{
return $this->createdAt;
}
@ -208,7 +211,7 @@ class Customer implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): \DateTime
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
@ -222,9 +225,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getExternalId(): string
public function getExternalId(): ?string
{
return $this->externalId;
}
@ -238,9 +241,9 @@ class Customer implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getChannelId(): int
public function getChannelId(): ?int
{
return $this->channelId;
}
@ -254,9 +257,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getUsername(): string
public function getUsername(): ?string
{
return $this->username;
}
@ -270,9 +273,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getFirstName(): string
public function getFirstName(): ?string
{
return $this->firstName;
}
@ -286,9 +289,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getLastName(): string
public function getLastName(): ?string
{
return $this->lastName;
}
@ -302,9 +305,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getAvatarUrl(): string
public function getAvatarUrl(): ?string
{
return $this->avatarUrl;
}
@ -318,9 +321,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getProfileUrl(): string
public function getProfileUrl(): ?string
{
return $this->profileUrl;
}
@ -334,9 +337,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getRevokedAt(): string
public function getRevokedAt(): ?string
{
return $this->revokedAt;
}
@ -350,9 +353,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getCountry(): string
public function getCountry(): ?string
{
return $this->country;
}
@ -366,9 +369,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getLanguage(): string
public function getLanguage(): ?string
{
return $this->language;
}
@ -382,9 +385,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getPhone(): string
public function getPhone(): ?string
{
return $this->phone;
}
@ -398,9 +401,9 @@ class Customer implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getEmail(): string
public function getEmail(): ?string
{
return $this->email;
}
@ -412,4 +415,21 @@ class Customer implements ModelInterface
{
$this->email = $email;
}
/**
* @return Utm|null
*/
public function getUtm(): ?Utm
{
return $this->utm;
}
/**
* @param Utm $utm
* @return void
*/
public function setUtm(Utm $utm): void
{
$this->utm = $utm;
}
}

View file

@ -1,132 +0,0 @@
<?php
/**
* PHP version 7.1
*
* Delivery entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Delivery class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Delivery implements ModelInterface
{
/**
* @var string $name
*
* @Type("string")
* @Accessor(getter="getName",setter="setName")
*
* @Assert\NotBlank
*/
private $name;
/**
* @var Cost $price
*
* @Type("Cost")
* @Accessor(getter="getPrice",setter="setPrice")
*
* @Assert\Currency
*/
private $price;
/**
* @var string $address
*
* @Type("string")
* @Accessor(getter="getAddress",setter="setAddress")
* @SkipWhenEmpty()
*/
private $address;
/**
* @var string $comment
*
* @Type("string")
* @Accessor(getter="getComment",setter="setComment")
* @SkipWhenEmpty()
*/
private $comment;
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name)
{
$this->name = $name;
}
/**
* @return Cost
*/
public function getPrice()
{
return $this->price;
}
/**
* @param Cost $price
*/
public function setPrice(Cost $price)
{
$this->price = $price;
}
/**
* @return string
*/
public function getAddress()
{
return $this->address;
}
/**
* @param string $address
*/
public function setAddress(string $address)
{
$this->address = $address;
}
/**
* @return string
*/
public function getComment()
{
return $this->comment;
}
/**
* @param string $comment
*/
public function setComment(string $comment)
{
$this->comment = $comment;
}
}

View file

@ -6,9 +6,6 @@
* Dialog entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Dialog class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Dialog implements ModelInterface
{
@ -39,7 +33,7 @@ class Dialog implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
*/
private $createdAt;
@ -47,7 +41,7 @@ class Dialog implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
* @SkipWhenEmpty()
*/
@ -92,7 +86,7 @@ class Dialog implements ModelInterface
/**
* @var \DateTime $closedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getClosedAt",setter="setClosedAt")
* @SkipWhenEmpty()
*/
@ -126,9 +120,9 @@ class Dialog implements ModelInterface
private $isActive;
/**
* @return string
* @return string|null
*/
public function getId(): string
public function getId(): ?string
{
return $this->id;
}
@ -144,7 +138,7 @@ class Dialog implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): \DateTime
public function getCreatedAt(): ?\DateTime
{
return $this->createdAt;
}
@ -160,7 +154,7 @@ class Dialog implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): \DateTime
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
@ -174,9 +168,9 @@ class Dialog implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getBotId(): int
public function getBotId(): ?int
{
return $this->botId;
}
@ -190,9 +184,9 @@ class Dialog implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getChatId(): int
public function getChatId(): ?int
{
return $this->chatId;
}
@ -206,9 +200,9 @@ class Dialog implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getBeginMessageId(): int
public function getBeginMessageId(): ?int
{
return $this->beginMessageId;
}
@ -222,9 +216,9 @@ class Dialog implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getEndingMessageId(): int
public function getEndingMessageId(): ?int
{
return $this->endingMessageId;
}
@ -240,7 +234,7 @@ class Dialog implements ModelInterface
/**
* @return \DateTime
*/
public function getClosedAt(): \DateTime
public function getClosedAt(): ?\DateTime
{
return $this->closedAt;
}
@ -254,9 +248,9 @@ class Dialog implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isAssigned(): bool
public function isAssigned(): ?bool
{
return $this->isAssigned;
}
@ -270,9 +264,9 @@ class Dialog implements ModelInterface
}
/**
* @return Responsible
* @return Responsible|null
*/
public function getResponsible(): Responsible
public function getResponsible(): ?Responsible
{
return $this->responsible;
}
@ -286,9 +280,9 @@ class Dialog implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isActive(): bool
public function isActive(): ?bool
{
return $this->isActive;
}

View file

@ -6,9 +6,6 @@
* FileMeta entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* FileMeta class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class FileMeta implements ModelInterface
{
@ -47,9 +41,9 @@ class FileMeta implements ModelInterface
private $width;
/**
* @return int
* @return int|null
*/
public function getHeight(): int
public function getHeight(): ?int
{
return $this->height;
}
@ -63,9 +57,9 @@ class FileMeta implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getWidth(): int
public function getWidth(): ?int
{
return $this->width;
}

View file

@ -6,9 +6,6 @@
* Item entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Item class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Item implements ModelInterface
{
@ -56,9 +50,18 @@ class Item implements ModelInterface
private $caption;
/**
* @return string
* @var string $transcription
*
* @Type("string")
* @Accessor(getter="getTranscription",setter="setTranscription")
* @SkipWhenEmpty()
*/
public function getId()
private $transcription;
/**
* @return string|null
*/
public function getId(): ?string
{
return $this->id;
}
@ -72,9 +75,9 @@ class Item implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getSize(): int
public function getSize(): ?int
{
return $this->size;
}
@ -88,7 +91,7 @@ class Item implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getCaption()
{
@ -102,4 +105,20 @@ class Item implements ModelInterface
{
$this->caption = $caption;
}
/**
* @return string|null
*/
public function getTranscription(): ?string
{
return $this->transcription;
}
/**
* @param string $transcription
*/
public function setTranscription(string $transcription): void
{
$this->transcription = $transcription;
}
}

View file

@ -6,9 +6,6 @@
* Message entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
@ -24,9 +21,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Message class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Message implements ModelInterface
{
@ -41,7 +35,7 @@ class Message implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
*/
private $createdAt;
@ -49,7 +43,7 @@ class Message implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
* @SkipWhenEmpty()
*/
@ -127,11 +121,28 @@ class Message implements ModelInterface
*/
private $content;
/**
* @var string $note
*
* @Type("string")
* @Accessor(getter="getNote",setter="setNote")
* @SkipWhenEmpty()
*/
private $note;
/**
* @var ?Quote $quote
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\Quote")
* @SkipWhenEmpty()
*/
private $quote;
/**
* @var bool $isRead
*
* @Type("bool")
* @Accessor(getter="getIsRead",setter="setIsRead")
* @Accessor(getter="isRead",setter="setIsRead")
* @SkipWhenEmpty()
*/
private $isRead;
@ -140,7 +151,7 @@ class Message implements ModelInterface
* @var bool $isEdit
*
* @Type("bool")
* @Accessor(getter="getIsEdit",setter="setIsEdit")
* @Accessor(getter="isEdit",setter="setIsEdit")
* @SkipWhenEmpty()
*/
private $isEdit;
@ -166,7 +177,7 @@ class Message implements ModelInterface
/**
* @var Dialog $dialog
*
* @Type("Dialog")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Dialog")
* @Accessor(getter="getDialog",setter="setDialog")
* @SkipWhenEmpty()
*/
@ -184,7 +195,7 @@ class Message implements ModelInterface
/**
* @var \DateTime $channelSentAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getChannelSentAt",setter="setChannelSentAt")
* @SkipWhenEmpty()
*/
@ -193,7 +204,7 @@ class Message implements ModelInterface
/**
* @var MessageOrder $order
*
* @Type("MessageOrder")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageOrder")
* @Accessor(getter="getOrder",setter="setOrder")
* @SkipWhenEmpty()
*/
@ -202,16 +213,16 @@ class Message implements ModelInterface
/**
* @var MessageProduct $product
*
* @Type("MessageProduct")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageProduct")
* @Accessor(getter="getProduct",setter="setProduct")
* @SkipWhenEmpty()
*/
private $product;
/**
* @return string
* @return string|null
*/
public function getId(): string
public function getId(): ?string
{
return $this->id;
}
@ -227,7 +238,7 @@ class Message implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): \DateTime
public function getCreatedAt(): ?\DateTime
{
return $this->createdAt;
}
@ -243,7 +254,7 @@ class Message implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): \DateTime
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
@ -257,9 +268,9 @@ class Message implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getActions(): string
public function getActions(): ?string
{
return $this->actions;
}
@ -273,9 +284,9 @@ class Message implements ModelInterface
}
/**
* @return array
* @return array|null
*/
public function getItems(): array
public function getItems(): ?array
{
return $this->items;
}
@ -289,9 +300,9 @@ class Message implements ModelInterface
}
/**
* @return User
* @return User|null
*/
public function getFrom(): User
public function getFrom(): ?User
{
return $this->from;
}
@ -307,7 +318,7 @@ class Message implements ModelInterface
/**
* @return \DateTime
*/
public function getTime(): \DateTime
public function getTime(): ?\DateTime
{
return $this->time;
}
@ -321,9 +332,9 @@ class Message implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getType(): string
public function getType(): ?string
{
return $this->type;
}
@ -337,9 +348,9 @@ class Message implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getScope(): string
public function getScope(): ?string
{
return $this->scope;
}
@ -353,9 +364,9 @@ class Message implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getChatId(): int
public function getChatId(): ?int
{
return $this->chatId;
}
@ -369,9 +380,9 @@ class Message implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getContent(): string
public function getContent(): ?string
{
return $this->content;
}
@ -385,9 +396,37 @@ class Message implements ModelInterface
}
/**
* @return bool
* @return string|null
*/
public function isRead(): bool
public function getNote(): ?string
{
return $this->note;
}
/**
* @param string $note
*/
public function setNote(string $note): void
{
$this->note = $note;
}
public function getQuote(): ?Quote
{
return $this->quote ?? null;
}
public function setQuote(?Quote $quote): Message
{
$this->quote = $quote;
return $this;
}
/**
* @return bool|null
*/
public function isRead(): ?bool
{
return $this->isRead;
}
@ -401,9 +440,9 @@ class Message implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isEdit(): bool
public function isEdit(): ?bool
{
return $this->isEdit;
}
@ -417,9 +456,9 @@ class Message implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getStatus(): string
public function getStatus(): ?string
{
return $this->status;
}
@ -433,9 +472,9 @@ class Message implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getAction(): string
public function getAction(): ?string
{
return $this->action;
}
@ -449,9 +488,9 @@ class Message implements ModelInterface
}
/**
* @return Dialog
* @return Dialog|null
*/
public function getDialog(): Dialog
public function getDialog(): ?Dialog
{
return $this->dialog;
}
@ -465,9 +504,9 @@ class Message implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getChannelId(): int
public function getChannelId(): ?int
{
return $this->channelId;
}
@ -483,7 +522,7 @@ class Message implements ModelInterface
/**
* @return \DateTime
*/
public function getChannelSentAt(): \DateTime
public function getChannelSentAt(): ?\DateTime
{
return $this->channelSentAt;
}
@ -497,9 +536,9 @@ class Message implements ModelInterface
}
/**
* @return MessageOrder
* @return MessageOrder|null
*/
public function getOrder(): MessageOrder
public function getOrder(): ?MessageOrder
{
return $this->order;
}
@ -513,9 +552,9 @@ class Message implements ModelInterface
}
/**
* @return MessageProduct
* @return MessageProduct|null
*/
public function getProduct(): MessageProduct
public function getProduct(): ?MessageProduct
{
return $this->product;
}

View file

@ -6,13 +6,11 @@
* MessageCost entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
use Symfony\Component\Validator\Constraints as Assert;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
@ -22,9 +20,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageCost class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageCost implements ModelInterface
{
@ -48,7 +43,7 @@ class MessageCost implements ModelInterface
private $currency;
/**
* @return float
* @return float|null
*/
public function getValue()
{
@ -64,7 +59,7 @@ class MessageCost implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getCurrency()
{

View file

@ -6,13 +6,11 @@
* MessageDelivery entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
use Symfony\Component\Validator\Constraints as Assert;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
@ -22,9 +20,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageDelivery class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageDelivery implements ModelInterface
{
@ -41,7 +36,7 @@ class MessageDelivery implements ModelInterface
/**
* @var MessageCost $price
*
* @Type("Cost")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageCost")
* @Accessor(getter="getPrice",setter="setPrice")
*
* @Assert\Currency
@ -67,7 +62,7 @@ class MessageDelivery implements ModelInterface
private $comment;
/**
* @return string
* @return string|null
*/
public function getName()
{
@ -83,7 +78,7 @@ class MessageDelivery implements ModelInterface
}
/**
* @return MessageCost
* @return MessageCost|null
*/
public function getPrice()
{
@ -99,7 +94,7 @@ class MessageDelivery implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getAddress()
{
@ -115,7 +110,7 @@ class MessageDelivery implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getComment()
{

View file

@ -6,9 +6,6 @@
* MessageOrder entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageOrder class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageOrder implements ModelInterface
{
@ -58,7 +52,7 @@ class MessageOrder implements ModelInterface
/**
* @var MessageCost $cost
*
* @Type("MessageCost")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageCost")
* @Accessor(getter="getCost",setter="setCost")
* @SkipWhenEmpty()
*/
@ -67,7 +61,7 @@ class MessageOrder implements ModelInterface
/**
* @var MessageStatus $status
*
* @Type("MessageStatus")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageStatus")
* @Accessor(getter="getStatus",setter="setStatus")
* @SkipWhenEmpty()
*/
@ -76,7 +70,7 @@ class MessageOrder implements ModelInterface
/**
* @var MessageDelivery $delivery
*
* @Type("MessageDelivery")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageDelivery")
* @Accessor(getter="getDelivery",setter="setDelivery")
* @SkipWhenEmpty()
*/
@ -101,7 +95,7 @@ class MessageOrder implements ModelInterface
private $payments;
/**
* @return string
* @return string|null
*/
public function getNumber()
{
@ -117,7 +111,7 @@ class MessageOrder implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getUrl()
{
@ -133,7 +127,7 @@ class MessageOrder implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getDate()
{
@ -149,7 +143,7 @@ class MessageOrder implements ModelInterface
}
/**
* @return MessageCost
* @return MessageCost|null
*/
public function getCost()
{
@ -165,7 +159,7 @@ class MessageOrder implements ModelInterface
}
/**
* @return MessageStatus
* @return MessageStatus|null
*/
public function getStatus()
{
@ -181,7 +175,7 @@ class MessageOrder implements ModelInterface
}
/**
* @return MessageDelivery
* @return MessageDelivery|null
*/
public function getDelivery()
{
@ -197,7 +191,7 @@ class MessageOrder implements ModelInterface
}
/**
* @return array
* @return array|null
*/
public function getItems()
{
@ -213,7 +207,7 @@ class MessageOrder implements ModelInterface
}
/**
* @return array
* @return array|null
*/
public function getPayments()
{

View file

@ -4,11 +4,6 @@
* PHP version 7.1
*
* MessageOrderItem entity
*
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
*
* @see http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
@ -20,11 +15,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* MessageOrderItem class
*
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
*
* @see http://help.retailcrm.pro/docs/Developers
*/
class MessageOrderItem implements ModelInterface
{
@ -58,7 +48,7 @@ class MessageOrderItem implements ModelInterface
/**
* @var MessageCost
*
* @Type("MessageCost")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageCost")
* @Accessor(getter="getPrice",setter="setPrice")
* @SkipWhenEmpty()
*/
@ -67,14 +57,14 @@ class MessageOrderItem implements ModelInterface
/**
* @var MessageQuantity
*
* @Type("MessageQuantity")
* @Accessor(getter="getQuantity",setter="setQuantity)
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageQuantity")
* @Accessor(getter="getQuantity",setter="setQuantity")
* @SkipWhenEmpty()
*/
private $quantity;
/**
* @return string
* @return string|null
*/
public function getName()
{
@ -90,7 +80,7 @@ class MessageOrderItem implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getUrl()
{
@ -106,7 +96,7 @@ class MessageOrderItem implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getImg()
{
@ -122,7 +112,7 @@ class MessageOrderItem implements ModelInterface
}
/**
* @return MessageCost
* @return MessageCost|null
*/
public function getPrice()
{
@ -138,7 +128,7 @@ class MessageOrderItem implements ModelInterface
}
/**
* @return MessageQuantity
* @return MessageQuantity|null
*/
public function getQuantity()
{

View file

@ -6,9 +6,6 @@
* MessageOrderPaymentStatus entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageOrderPaymentStatus class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageOrderPaymentStatus implements ModelInterface
{
@ -47,9 +41,9 @@ class MessageOrderPaymentStatus implements ModelInterface
private $payed;
/**
* @return string
* @return string|null
*/
public function getName(): string
public function getName(): ?string
{
return $this->name;
}
@ -63,9 +57,9 @@ class MessageOrderPaymentStatus implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function getPayed(): bool
public function getPayed(): ?bool
{
return $this->payed;
}

View file

@ -6,9 +6,6 @@
* MessagePayment entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessagePayment class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessagePayment implements ModelInterface
{
@ -40,7 +34,7 @@ class MessagePayment implements ModelInterface
/**
* @var MessageOrderPaymentStatus $status
*
* @Type("MessageOrderPaymentStatus")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageOrderPaymentStatus")
* @Accessor(getter="getStatus",setter="setStatus")
* @SkipWhenEmpty()
*/
@ -49,14 +43,14 @@ class MessagePayment implements ModelInterface
/**
* @var MessageCost $amount
*
* @Type("MessageCost")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageCost")
* @Accessor(getter="getAmount",setter="setAmount")
* @SkipWhenEmpty()
*/
private $amount;
/**
* @return string
* @return string|null
*/
public function getName()
{
@ -72,7 +66,7 @@ class MessagePayment implements ModelInterface
}
/**
* @return MessageOrderPaymentStatus
* @return MessageOrderPaymentStatus|null
*/
public function getStatus()
{
@ -88,7 +82,7 @@ class MessagePayment implements ModelInterface
}
/**
* @return MessageCost
* @return MessageCost|null
*/
public function getAmount()
{

View file

@ -6,9 +6,6 @@
* MessageProduct entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageProduct class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageProduct implements ModelInterface
{
@ -76,7 +70,7 @@ class MessageProduct implements ModelInterface
/**
* @var MessageCost $cost
*
* @Type("Cost")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageCost")
* @Accessor(getter="getCost",setter="setCost")
* @SkipWhenEmpty()
*/
@ -85,16 +79,16 @@ class MessageProduct implements ModelInterface
/**
* @var MessageQuantity $quantity
*
* @Type("MessageQuantity")
* @Accessor(getter="getQuantity",setter="setQuantity)
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageQuantity")
* @Accessor(getter="getQuantity",setter="setQuantity")
* @SkipWhenEmpty()
*/
private $quantity;
/**
* @return int
* @return int|null
*/
public function getId(): int
public function getId(): ?int
{
return $this->id;
}
@ -108,9 +102,9 @@ class MessageProduct implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getName(): string
public function getName(): ?string
{
return $this->name;
}
@ -124,9 +118,9 @@ class MessageProduct implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getArticle(): string
public function getArticle(): ?string
{
return $this->article;
}
@ -140,9 +134,9 @@ class MessageProduct implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getUrl(): string
public function getUrl(): ?string
{
return $this->url;
}
@ -156,9 +150,9 @@ class MessageProduct implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getImg(): string
public function getImg(): ?string
{
return $this->img;
}
@ -172,9 +166,9 @@ class MessageProduct implements ModelInterface
}
/**
* @return MessageCost
* @return MessageCost|null
*/
public function getCost(): MessageCost
public function getCost(): ?MessageCost
{
return $this->cost;
}
@ -188,9 +182,9 @@ class MessageProduct implements ModelInterface
}
/**
* @return MessageQuantity
* @return MessageQuantity|null
*/
public function getQuantity(): MessageQuantity
public function getQuantity(): ?MessageQuantity
{
return $this->quantity;
}

View file

@ -6,13 +6,11 @@
* MessageQuantity entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
use Symfony\Component\Validator\Constraints as Assert;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
@ -22,9 +20,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageQuantity class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageQuantity implements ModelInterface
{
@ -48,7 +43,7 @@ class MessageQuantity implements ModelInterface
private $unit;
/**
* @return float
* @return float|null
*/
public function getValue()
{
@ -64,7 +59,7 @@ class MessageQuantity implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getUnit()
{

View file

@ -0,0 +1,172 @@
<?php
/**
* PHP version 7.3
*
* @category MessageQuote
* @package RetailCrm\Mg\Bot\Model\Entity\Message
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\Entity\User;
/**
* Class MessageQuote
*
* @category MessageQuote
* @package RetailCrm\Mg\Bot\Model\Entity\Message
*/
class MessageQuote
{
/**
* @var int $id
*
* @Type("int")
* @Accessor(getter="getId",setter="setId")
* @SkipWhenEmpty()
*/
private $id;
/**
* @var string $type
*
* @Type("string")
* @Accessor(getter="getType",setter="setType")
* @SkipWhenEmpty()
*/
private $type;
/**
* @var User $from
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\User")
* @Accessor(getter="getFrom",setter="setFrom")
* @SkipWhenEmpty()
*/
private $from;
/**
* @var \DateTime $time
*
* @Type("DateTime<'Y-m-d\TH:i:sP'>")
* @Accessor(getter="getTime",setter="setTime")
*/
private $time;
/**
* @var string $content
*
* @Type("string")
* @Accessor(getter="getContent",setter="setContent")
*/
private $content;
/**
* @var object[] $items
*
* @Type("array")
* @Accessor(getter="getItems",setter="setItems")
* @SkipWhenEmpty()
*/
private $items;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return string|null
*/
public function getType(): ?string
{
return $this->type;
}
/**
* @param string $type
*/
public function setType(string $type): void
{
$this->type = $type;
}
/**
* @return User|null
*/
public function getFrom(): ?User
{
return $this->from;
}
/**
* @param User $from
*/
public function setFrom(User $from): void
{
$this->from = $from;
}
/**
* @return \DateTime
*/
public function getTime(): ?\DateTime
{
return $this->time;
}
/**
* @param \DateTime $time
*/
public function setTime(\DateTime $time): void
{
$this->time = $time;
}
/**
* @return string
*/
public function getContent(): string
{
return $this->content;
}
/**
* @param string $content
*/
public function setContent(string $content): void
{
$this->content = $content;
}
/**
* @return object[]|null
*/
public function getItems(): ?array
{
return $this->items;
}
/**
* @param object[] $items
*/
public function setItems(array $items): void
{
$this->items = $items;
}
}

View file

@ -6,9 +6,6 @@
* MessageStatus entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageStatus class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageStatus implements ModelInterface
{
@ -47,9 +41,9 @@ class MessageStatus implements ModelInterface
private $name;
/**
* @return string
* @return string|null
*/
public function getCode(): string
public function getCode(): ?string
{
return $this->code;
}
@ -63,9 +57,9 @@ class MessageStatus implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getName(): string
public function getName(): ?string
{
return $this->name;
}

View file

@ -0,0 +1,106 @@
<?php
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
use DateTime;
use JMS\Serializer\Annotation as Serializer;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\Entity\User;
use RetailCrm\Mg\Bot\Model\ModelInterface;
class Quote implements ModelInterface
{
/**
* @var int
*
* @Type("integer")
*/
private $id;
/**
* @var string
*
* @Type("string")
*/
private $type;
/**
* @var User
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\User")
*/
private $from;
/**
* @var DateTime $time
*
* @Type("DateTime<'Y-m-d\TH:i:sP'>")
* @Accessor(getter="getTime",setter="setTime")
* @SkipWhenEmpty()
*/
private $time;
/**
* @var string
*
* @Type("string")
*/
private $content;
public function getId(): int
{
return $this->id;
}
public function setId(int $id): Quote
{
$this->id = $id;
return $this;
}
public function getType(): string
{
return $this->type;
}
public function setType(string $type): Quote
{
$this->type = $type;
return $this;
}
public function getFrom(): User
{
return $this->from;
}
public function setFrom(User $from): Quote
{
$this->from = $from;
return $this;
}
public function getTime(): DateTime
{
return $this->time;
}
public function setTime(DateTime $time): Quote
{
$this->time = $time;
return $this;
}
public function getContent(): string
{
return $this->content;
}
public function setContent(string $content): Quote
{
$this->content = $content;
return $this;
}
}

View file

@ -0,0 +1,74 @@
<?php
/**
* PHP version 7.1
*
* Suggestion entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Suggestion class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
*/
class Suggestion implements ModelInterface
{
/**
* @var string $title
*
* @Type("string")
* @Accessor(getter="getTitle",setter="setTitle")
* @SkipWhenEmpty()
*/
private $title;
/**
* @var string $type
*
* @Type("string")
* @Accessor(getter="getType",setter="setType")
* @SkipWhenEmpty()
*/
private $type;
/**
* @return string|null
*/
public function getTitle(): ?string
{
return $this->title;
}
/**
* @param string $title
*/
public function setTitle(string $title)
{
$this->title = $title;
}
/**
* @return string|null
*/
public function getType(): ?string
{
return $this->type;
}
/**
* @param string $type
*/
public function setType(string $type)
{
$this->type = $type;
}
}

View file

@ -0,0 +1,50 @@
<?php
/**
* PHP version 7.1
*
* TransportAttachments entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Message;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* TransportAttachments class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Message
*/
class TransportAttachments implements ModelInterface
{
/**
* @var array $suggestions
*
* @Type("array")
* @Accessor(getter="getSuggestions",setter="setSuggestions")
* @SkipWhenEmpty()
*/
private $suggestions;
/**
* @param array $suggestions
*/
public function setSuggestions(array $suggestions): void
{
$this->suggestions = $suggestions;
}
/**
* @return array
*/
public function getSuggestions(): array
{
return $this->suggestions;
}
}

View file

@ -1,230 +0,0 @@
<?php
/**
* PHP version 7.1
*
* Order entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Order class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Order implements ModelInterface
{
/**
* @var string $number
*
* @Type("string")
* @Accessor(getter="getNumber",setter="setNumber")
* @SkipWhenEmpty()
*/
private $number;
/**
* @var string $url
*
* @Type("string")
* @Accessor(getter="getUrl",setter="setUrl")
* @SkipWhenEmpty()
*/
private $url;
/**
* @var string $date
*
* @Type("string")
* @Accessor(getter="getDate",setter="setDate")
* @SkipWhenEmpty()
*/
private $date;
/**
* @var Cost $cost
*
* @Type("Cost")
* @Accessor(getter="getCost",setter="setCost")
* @SkipWhenEmpty()
*/
private $cost;
/**
* @var Status $status
*
* @Type("Status")
* @Accessor(getter="getStatus",setter="setStatus")
* @SkipWhenEmpty()
*/
private $status;
/**
* @var Delivery $delivery
*
* @Type("Delivery")
* @Accessor(getter="getDelivery",setter="setDelivery")
* @SkipWhenEmpty()
*/
private $delivery;
/**
* @var array $items
*
* @Type("array")
* @Accessor(getter="getItems",setter="setItems")
* @SkipWhenEmpty()
*/
private $items;
/**
* @var array $payments
*
* @Type("array")
* @Accessor(getter="getPayments",setter="setPayments")
* @SkipWhenEmpty()
*/
private $payments;
/**
* @return string
*/
public function getNumber()
{
return $this->number;
}
/**
* @param string $number
*/
public function setNumber(string $number)
{
$this->number = $number;
}
/**
* @return string
*/
public function getUrl()
{
return $this->url;
}
/**
* @param string $url
*/
public function setUrl(string $url)
{
$this->url = $url;
}
/**
* @return string
*/
public function getDate()
{
return $this->date;
}
/**
* @param string $date
*/
public function setDate(string $date)
{
$this->date = $date;
}
/**
* @return Cost
*/
public function getCost()
{
return $this->cost;
}
/**
* @param Cost $cost
*/
public function setCost(Cost $cost)
{
$this->cost = $cost;
}
/**
* @return Status
*/
public function getStatus()
{
return $this->status;
}
/**
* @param Status $status
*/
public function setStatus(Status $status)
{
$this->status = $status;
}
/**
* @return Delivery
*/
public function getDelivery()
{
return $this->delivery;
}
/**
* @param Delivery $delivery
*/
public function setDelivery(Delivery $delivery)
{
$this->delivery = $delivery;
}
/**
* @return array
*/
public function getItems()
{
return $this->items;
}
/**
* @param array $items
*/
public function setItems(array $items)
{
$this->items = $items;
}
/**
* @return array
*/
public function getPayments()
{
return $this->payments;
}
/**
* @param array $payments
*/
public function setPayments(array $payments)
{
$this->payments = $payments;
}
}

View file

@ -1,155 +0,0 @@
<?php
/**
* PHP version 7.1
*
* Order item entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* OrderItem class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class OrderItem implements ModelInterface
{
/**
* @var string $name
*
* @Type("string")
* @Accessor(getter="getName",setter="setName")
* @SkipWhenEmpty()
*/
private $name;
/**
* @var string $url
*
* @Type("string")
* @Accessor(getter="getUrl",setter="setUrl")
* @SkipWhenEmpty()
*/
private $url;
/**
* @var string $img
*
* @Type("string")
* @Accessor(getter="getImg",setter="setImg")
* @SkipWhenEmpty()
*/
private $img;
/**
* @var Cost $price
*
* @Type("Cost")
* @Accessor(getter="getPrice",setter="setPrice")
* @SkipWhenEmpty()
*/
private $price;
/**
* @var Quantity $quantity
*
* @Type("Quantity")
* @Accessor(getter="getQuantity",setter="setQuantity)
* @SkipWhenEmpty()
*/
private $quantity;
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name)
{
$this->name = $name;
}
/**
* @return string
*/
public function getUrl()
{
return $this->url;
}
/**
* @param string $url
*/
public function setUrl(string $url)
{
$this->url = $url;
}
/**
* @return string
*/
public function getImg()
{
return $this->img;
}
/**
* @param string $img
*/
public function setImg(string $img)
{
$this->img = $img;
}
/**
* @return Cost
*/
public function getPrice()
{
return $this->price;
}
/**
* @param Cost $price
*/
public function setPrice(Cost $price)
{
$this->price = $price;
}
/**
* @return Quantity
*/
public function getQuantity()
{
return $this->quantity;
}
/**
* @param Quantity $quantity
*/
public function setQuantity(Quantity $quantity)
{
$this->quantity = $quantity;
}
}

View file

@ -1,105 +0,0 @@
<?php
/**
* PHP version 7.1
*
* Payment entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Payment class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Payment implements ModelInterface
{
/**
* @var string $name
*
* @Type("string")
* @Accessor(getter="getName",setter="setName")
* @SkipWhenEmpty()
*/
private $name;
/**
* @var PaymentStatus $status
*
* @Type("PaymentStatus")
* @Accessor(getter="getStatus",setter="setStatus")
* @SkipWhenEmpty()
*/
private $status;
/**
* @var Cost $amount
*
* @Type("Cost")
* @Accessor(getter="getAmount",setter="setAmount")
* @SkipWhenEmpty()
*/
private $amount;
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name)
{
$this->name = $name;
}
/**
* @return PaymentStatus
*/
public function getStatus()
{
return $this->status;
}
/**
* @param PaymentStatus $status
*/
public function setStatus(PaymentStatus $status)
{
$this->status = $status;
}
/**
* @return Cost
*/
public function getAmount()
{
return $this->amount;
}
/**
* @param Cost $amount
*/
public function setAmount(Cost $amount)
{
$this->amount = $amount;
}
}

View file

@ -1,80 +0,0 @@
<?php
/**
* PHP version 7.1
*
* Payment status entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* PaymentStatus class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class PaymentStatus implements ModelInterface
{
/**
* @var string $name
*
* @Type("string")
* @Accessor(getter="getName",setter="setName")
* @SkipWhenEmpty()
*/
private $name;
/**
* @var bool $payed
*
* @Type("bool")
* @Accessor(getter="getPayed",setter="setPayed")
* @SkipWhenEmpty()
*/
private $payed;
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name)
{
$this->name = $name;
}
/**
* @return bool
*/
public function isPayed()
{
return $this->payed;
}
/**
* @param bool $payed
*/
public function setPayed(bool $payed)
{
$this->payed = $payed;
}
}

View file

@ -1,205 +0,0 @@
<?php
/**
* PHP version 7.1
*
* Product entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Product class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Product implements ModelInterface
{
/**
* @var int $id
*
* @Type("int")
* @Accessor(getter="getId",setter="setId")
* @SkipWhenEmpty()
*/
private $id;
/**
* @var string $name
*
* @Type("string")
* @Accessor(getter="getName",setter="setName")
* @SkipWhenEmpty()
*/
private $name;
/**
* @var string $article
*
* @Type("string")
* @Accessor(getter="getArticle",setter="setArticle")
* @SkipWhenEmpty()
*/
private $article;
/**
* @var string $url
*
* @Type("string")
* @Accessor(getter="getUrl",setter="setUrl")
* @SkipWhenEmpty()
*/
private $url;
/**
* @var string $img
*
* @Type("string")
* @Accessor(getter="getImg",setter="setImg")
* @SkipWhenEmpty()
*/
private $img;
/**
* @var Cost $cost
*
* @Type("Cost")
* @Accessor(getter="getCost",setter="setCost")
* @SkipWhenEmpty()
*/
private $cost;
/**
* @var Quantity $quantity
*
* @Type("Quantity")
* @Accessor(getter="getQuantity",setter="setQuantity)
* @SkipWhenEmpty()
*/
private $quantity;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id)
{
$this->id = $id;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name)
{
$this->name = $name;
}
/**
* @return string
*/
public function getArticle()
{
return $this->article;
}
/**
* @param string $article
*/
public function setArticle(string $article)
{
$this->article = $article;
}
/**
* @return string
*/
public function getUrl()
{
return $this->url;
}
/**
* @param string $url
*/
public function setUrl(string $url)
{
$this->url = $url;
}
/**
* @return string
*/
public function getImg()
{
return $this->img;
}
/**
* @param string $img
*/
public function setImg(string $img)
{
$this->img = $img;
}
/**
* @return Cost
*/
public function getCost()
{
return $this->cost;
}
/**
* @param Cost $cost
*/
public function setCost(Cost $cost)
{
$this->cost = $cost;
}
/**
* @return Quantity
*/
public function getQuantity()
{
return $this->quantity;
}
/**
* @param Quantity $quantity
*/
public function setQuantity(Quantity $quantity)
{
$this->quantity = $quantity;
}
}

View file

@ -1,81 +0,0 @@
<?php
/**
* PHP version 7.1
*
* Quantity entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Quantity class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Quantity implements ModelInterface
{
/**
* @var float $value
*
* @Type("float")
* @Accessor(getter="getValue",setter="setValue")
* @SkipWhenEmpty()
*/
private $value;
/**
* @var string $unit
*
* @Type("string")
* @Accessor(getter="getUnit",setter="setUnit")
*
* @Assert\Currency
*/
private $unit;
/**
* @return float
*/
public function getValue()
{
return $this->value;
}
/**
* @param float $value
*/
public function setValue(float $value)
{
$this->value = $value;
}
/**
* @return string
*/
public function getUnit()
{
return $this->unit;
}
/**
* @param string $unit
*/
public function setUnit(string $unit)
{
$this->unit = $unit;
}
}

View file

@ -6,9 +6,6 @@
* Responsible entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* Responsible class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Responsible implements ModelInterface
{
@ -56,9 +50,18 @@ class Responsible implements ModelInterface
private $type;
/**
* @return string
* @var string $externalId
*
* @Type("string")
* @Accessor(getter="getExternalId",setter="setExternalId")
* @SkipWhenEmpty()
*/
public function getAssignedAt(): string
private $externalId;
/**
* @return string|null
*/
public function getAssignedAt(): ?string
{
return $this->assignedAt;
}
@ -72,9 +75,9 @@ class Responsible implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getId(): int
public function getId(): ?int
{
return $this->id;
}
@ -88,9 +91,9 @@ class Responsible implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getType(): string
public function getType(): ?string
{
return $this->type;
}
@ -102,4 +105,20 @@ class Responsible implements ModelInterface
{
$this->type = $type;
}
/**
* @return string|null
*/
public function getExternalId(): ?string
{
return $this->externalId;
}
/**
* @param string $externalId
*/
public function setExternalId(string $externalId): void
{
$this->externalId = $externalId;
}
}

View file

@ -3,12 +3,9 @@
/**
* PHP version 7.1
*
* Status entity
* Tag entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
@ -17,64 +14,65 @@ use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Status class
* Tag class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Status implements ModelInterface
class Tag implements ModelInterface
{
/**
* @var string $code
*
* @Type("string")
* @Accessor(getter="getCode",setter="setCode")
* @SkipWhenEmpty()
*/
private $code;
/**
* @var string $name
*
* @Type("string")
* @Accessor(getter="getName",setter="setName")
* @SkipWhenEmpty()
*
* @Assert\NotBlank
*/
private $name;
/**
* @return string
* @var string $colorCode
*
* @Type("string")
* @Accessor(getter="getColorCode",setter="setColorCode")
* @SkipWhenEmpty()
*/
public function getCode()
{
return $this->code;
}
/**
* @param string $code
*/
public function setCode(string $code)
{
$this->code = $code;
}
private $colorCode;
/**
* @return string
*/
public function getName()
public function getName(): string
{
return $this->name;
}
/**
* @param string $name
* @return void
*/
public function setName(string $name)
public function setName(string $name): void
{
$this->name = $name;
}
/**
* @return string|null
*/
public function getColorCode(): ?string
{
return $this->colorCode;
}
/**
* @param string $colorCode
* @return void
*/
public function setColorCode(string $colorCode): void
{
$this->colorCode = $colorCode;
}
}

View file

@ -0,0 +1,385 @@
<?php
/**
* PHP version 7.1
*
* Template entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Template
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Template;
use RetailCrm\Mg\Bot\Model\ModelInterface;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
/**
* Template class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Template
*/
class Template implements ModelInterface
{
/**
* @var int $id
*
* @Type("int")
* @Accessor(getter="getId",setter="setId")
*/
private $id;
/**
* @var string $code
*
* @Type("string")
* @Accessor(getter="getCode",setter="setCode")
*/
private $code;
/**
* @var int $channelId
*
* @Type("int")
* @Accessor(getter="getChannelId",setter="setChannelId")
*/
private $channelId;
/**
* @var string $name
*
* @Type("string")
* @Accessor(getter="getName",setter="setName")
*/
private $name;
/**
* @var bool $enabled
*
* @Type("bool")
* @Accessor(getter="getEnabled",setter="setEnabled")
*/
private $enabled;
/**
* @var string $type
*
* @Type("string")
* @Accessor(getter="getType",setter="setType")
*/
private $type;
/**
* @var array<string, string> $template
*
* @Type("array")
* @Accessor(getter="getTemplate",setter="setTemplate")
*/
private $template;
/**
* @var string $body
*
* @Type("string")
* @Accessor(getter="getBody",setter="setBody")
*/
private $body;
/**
* @var string $lang
*
* @Type("string")
* @Accessor(getter="getLang",setter="setLang")
*/
private $lang;
/**
* @var string $category
*
* @Type("string")
* @Accessor(getter="getCategory",setter="setCategory")
*/
private $category;
/**
* @var string $verificationStatus
*
* @Type("string")
* @Accessor(getter="getVerificationStatus",setter="setVerificationStatus")
*/
private $verificationStatus;
/**
* @var string $rejectionReason
*
* @Type("string")
* @Accessor(getter="getRejectionReason",setter="setRejectionReason")
*/
private $rejectionReason;
/**
* @var string $quality
*
* @Type("string")
* @Accessor(getter="getQuality",setter="setQuality")
* @SkipWhenEmpty()
*/
private $quality;
/**
* @var array<string, string> $header
*
* @Type("array")
* @Accessor(getter="getHeader",setter="setHeader")
* @SkipWhenEmpty()
*/
private $header;
/**
* @var array<string, array<string, string>> $buttons
*
* @Type("array")
* @Accessor(getter="getButtons",setter="setButtons")
* @SkipWhenEmpty()
*/
private $buttons;
/**
* @return int|null
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @param int $id
*/
public function setId(int $id): void
{
$this->id = $id;
}
/**
* @return string|null
*/
public function getCode(): ?string
{
return $this->code;
}
/**
* @param string $code
*/
public function setCode(string $code): void
{
$this->code = $code;
}
/**
* @return int|null
*/
public function getChannelId(): ?int
{
return $this->channelId;
}
/**
* @param int $channelId
*/
public function setChannelId(int $channelId): void
{
$this->channelId = $channelId;
}
/**
* @return string|null
*/
public function getName(): ?string
{
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name): void
{
$this->name = $name;
}
/**
* @return bool|null
*/
public function getEnabled(): ?bool
{
return $this->enabled;
}
/**
* @param bool $enabled
*/
public function setEnabled(bool $enabled): void
{
$this->enabled = $enabled;
}
/**
* @return string|null
*/
public function getType(): ?string
{
return $this->type;
}
/**
* @param string $type
*/
public function setType(string $type): void
{
$this->type = $type;
}
/**
* @return array<string, string>|null
*/
public function getTemplate(): ?array
{
return $this->template;
}
/**
* @param array<string, string> $template
*/
public function setTemplate(array $template): void
{
$this->template = $template;
}
/**
* @return string|null
*/
public function getBody(): ?string
{
return $this->body;
}
/**
* @param string $body
*/
public function setBody(string $body): void
{
$this->body = $body;
}
/**
* @return string|null
*/
public function getVerificationStatus(): ?string
{
return $this->verificationStatus;
}
/**
* @param string $verificationStatus
*/
public function setVerificationStatus(string $verificationStatus): void
{
$this->verificationStatus = $verificationStatus;
}
/**
* @return string|null
*/
public function getLang(): ?string
{
return $this->lang;
}
/**
* @param string $lang
*/
public function setLang(string $lang): void
{
$this->lang = $lang;
}
/**
* @return string|null
*/
public function getCategory(): ?string
{
return $this->category;
}
/**
* @param string $category
*/
public function setCategory(string $category): void
{
$this->category = $category;
}
/**
* @return string|null
*/
public function getRejectionReason(): ?string
{
return $this->rejectionReason;
}
/**
* @param string $rejectionReason
*/
public function setRejectionReason(string $rejectionReason): void
{
$this->rejectionReason = $rejectionReason;
}
/**
* @return string|null
*/
public function getQuality(): ?string
{
return $this->quality;
}
public function setQuality(string $quality): void
{
$this->quality = $quality;
}
/**
* @return array<string, string>|null
*/
public function getHeader(): ?array
{
return $this->header;
}
/**
* @param array<string, string> $header
*/
public function setHeader(array $header): void
{
$this->header = $header;
}
/**
* @return array<string, array<string, string>>|null
*/
public function getButtons(): ?array
{
return $this->buttons;
}
/**
* @param array<string, array<string, string>> $buttons
*/
public function setButtons(array $buttons): void
{
$this->buttons = $buttons;
}
}

View file

@ -3,15 +3,12 @@
/**
* PHP version 7.1
*
* Item entity
* TemplateAttachment entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
* @package RetailCrm\Mg\Bot\Model\Entity\Template
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
namespace RetailCrm\Mg\Bot\Model\Entity\Template;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
@ -19,21 +16,17 @@ use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Item class
* TemplateAttachment class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
* @package RetailCrm\Mg\Bot\Model\Entity\Template
*/
class Item implements ModelInterface
class TemplateAttachment implements ModelInterface
{
/**
* @var string $id
*
* @Type("string")
* @Accessor(getter="getId",setter="setId")
* @SkipWhenEmpty()
*/
private $id;
@ -47,25 +40,26 @@ class Item implements ModelInterface
private $caption;
/**
* @return string
* @return string|null
*/
public function getId()
public function getId(): ?string
{
return $this->id;
}
/**
* @param string $id
* @return void
*/
public function setId(string $id)
public function setId(string $id): void
{
$this->id = $id;
}
/**
* @return string
* @return string|null
*/
public function getCaption()
public function getCaption(): ?string
{
return $this->caption;
}
@ -73,7 +67,7 @@ class Item implements ModelInterface
/**
* @param string $caption
*/
public function setCaption(string $caption)
public function setCaption(string $caption): void
{
$this->caption = $caption;
}

View file

@ -0,0 +1,120 @@
<?php
/**
* PHP version 7.1
*
* TemplateVariables entity
*
* @package RetailCrm\Mg\Bot\Model\Entity\Template
*/
namespace RetailCrm\Mg\Bot\Model\Entity\Template;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* TemplateVariables class
*
* @package RetailCrm\Mg\Bot\Model\Entity\Template
*/
class TemplateVariables implements ModelInterface
{
/**
* @var array<string, string> $header
*
* @Type("array")
* @Accessor(getter="getHeader",setter="setHeader")
*/
private $header;
/** @var array<TemplateAttachment> $attachments
*
* @Type("array")
* @Accessor(getter="getAttachments",setter="setAttachments")
*/
private $attachments;
/**
* @var array<string, string> $body
*
* @Type("array")
* @Accessor(getter="getBody",setter="setBody")
*/
private $body;
/**
* @var array<string, array<string, string>> $buttons
*
* @Type("array")
* @Accessor(getter="getButtons",setter="setButtons")
*/
private $buttons;
/**
* @return array<string, string>|null
*/
public function getHeader(): ?array
{
return $this->header;
}
/**
* @param array<string, string> $header
*/
public function setHeader(array $header): void
{
$this->header = $header;
}
/**
* @return array<string, string>|null
*/
public function getBody(): ?array
{
return $this->body;
}
/**
* @param array<string, string> $body
*/
public function setBody(array $body): void
{
$this->body = $body;
}
/**
* @return array<string, array<string, string>>|null
*/
public function getButtons(): ?array
{
return $this->buttons;
}
/**
* @param array<string, array<string, string>> $buttons
*/
public function setButtons(array $buttons): void
{
$this->buttons = $buttons;
}
/**
* @return TemplateAttachment[]|null
*/
public function getAttachments(): ?array
{
return $this->attachments;
}
/**
* @param TemplateAttachment[] $attachments
*/
public function setAttachments(array $attachments): void
{
$this->attachments = $attachments;
}
}

View file

@ -6,9 +6,6 @@
* User entity
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
@ -23,9 +20,6 @@ use JMS\Serializer\Annotation\Type;
* User class
*
* @package RetailCrm\Mg\Bot\Model\Entity
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class User implements ModelInterface
{
@ -40,7 +34,7 @@ class User implements ModelInterface
/**
* @var \DateTime $createdAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getCreatedAt",setter="setCreatedAt")
*/
private $createdAt;
@ -48,7 +42,7 @@ class User implements ModelInterface
/**
* @var \DateTime $updatedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getUpdatedAt",setter="setUpdatedAt")
* @SkipWhenEmpty()
*/
@ -142,16 +136,25 @@ class User implements ModelInterface
/**
* @var \DateTime $revokedAt
*
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z'>")
* @Type("DateTime<'Y-m-d\TH:i:s\.u\Z', null, ['Y-m-d\TH:i:s\.u\Z', 'Y-m-d\TH:i:s\Z']>")
* @Accessor(getter="getRevokedAt",setter="setRevokedAt")
* @SkipWhenEmpty()
*/
private $revokedAt;
/**
* @return string
* @var bool $isSystem
*
* @Type("bool")
* @Accessor(getter="isSystem",setter="setIsSystem")
* @SkipWhenEmpty()
*/
public function getId(): string
private $isSystem;
/**
* @return string|null
*/
public function getId(): ?string
{
return $this->id;
}
@ -167,7 +170,7 @@ class User implements ModelInterface
/**
* @return \DateTime
*/
public function getCreatedAt(): \DateTime
public function getCreatedAt(): ?\DateTime
{
return $this->createdAt;
}
@ -183,7 +186,7 @@ class User implements ModelInterface
/**
* @return \DateTime
*/
public function getUpdatedAt(): \DateTime
public function getUpdatedAt(): ?\DateTime
{
return $this->updatedAt;
}
@ -197,9 +200,9 @@ class User implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getExternalId(): string
public function getExternalId(): ?string
{
return $this->externalId;
}
@ -213,9 +216,9 @@ class User implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getType(): string
public function getType(): ?string
{
return $this->type;
}
@ -229,9 +232,9 @@ class User implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getAvatar(): string
public function getAvatar(): ?string
{
return $this->avatar;
}
@ -245,9 +248,9 @@ class User implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getName(): string
public function getName(): ?string
{
return $this->name;
}
@ -261,9 +264,9 @@ class User implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getUsername(): string
public function getUsername(): ?string
{
return $this->username;
}
@ -277,9 +280,9 @@ class User implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getFirstName(): string
public function getFirstName(): ?string
{
return $this->firstName;
}
@ -293,9 +296,9 @@ class User implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getLastName(): string
public function getLastName(): ?string
{
return $this->lastName;
}
@ -309,9 +312,9 @@ class User implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isActive(): bool
public function isActive(): ?bool
{
return $this->isActive;
}
@ -325,9 +328,9 @@ class User implements ModelInterface
}
/**
* @return bool
* @return bool|null
*/
public function isOnline(): bool
public function isOnline(): ?bool
{
return $this->isOnline;
}
@ -343,7 +346,7 @@ class User implements ModelInterface
/**
* @return \DateTime
*/
public function getRevokedAt(): \DateTime
public function getRevokedAt(): ?\DateTime
{
return $this->revokedAt;
}
@ -355,4 +358,20 @@ class User implements ModelInterface
{
$this->revokedAt = $revokedAt;
}
/**
* @return bool|null
*/
public function isSystem(): ?bool
{
return $this->isSystem;
}
/**
* @param bool $isSystem
*/
public function setIsSystem(bool $isSystem): void
{
$this->isSystem = $isSystem;
}
}

View file

@ -0,0 +1,154 @@
<?php
/**
* PHP version 7.1
*
* Utm entity
*
* @package Retailcrm\Mg\Bot\Model\Entity
*/
namespace RetailCrm\Mg\Bot\Model\Entity;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* Utm class
*
* @package RetailCrm\Mg\Bot\Model\Entity
*/
class Utm implements ModelInterface
{
/**
* @var string $campaign
*
* @Type("string")
* @Accessor(getter="getCampaign",setter="setCampaign")
* @SkipWhenEmpty()
*/
private $campaign;
/**
* @var string $content
*
* @Type("string")
* @Accessor(getter="getContent",setter="setContent")
* @SkipWhenEmpty()
*/
private $content;
/**
* @var string $medium
*
* @Type("string")
* @Accessor(getter="getMedium",setter="setMedium")
* @SkipWhenEmpty()
*/
private $medium;
/**
* @var string $source
*
* @Type("string")
* @Accessor(getter="getSource",setter="setSource")
* @SkipWhenEmpty()
*/
private $source;
/**
* @var string $term
*
* @Type("string")
* @Accessor(getter="getTerm",setter="setTerm")
* @SkipWhenEmpty()
*/
private $term;
/**
* @return string|null
*/
public function getCampaign(): ?string
{
return $this->campaign;
}
/**
* @param string $campaign
* @return void
*/
public function setCampaign(string $campaign): void
{
$this->campaign = $campaign;
}
/**
* @return string|null
*/
public function getContent(): ?string
{
return $this->content;
}
/**
* @param string $content
* @return void
*/
public function setContent(string $content): void
{
$this->content = $content;
}
/**
* @return string|null
*/
public function getMedium(): ?string
{
return $this->medium;
}
/**
* @param string $medium
* @return void
*/
public function setMedium(string $medium): void
{
$this->medium = $medium;
}
/**
* @return string|null
*/
public function getSource(): ?string
{
return $this->source;
}
/**
* @param string $source
* @return void
*/
public function setSource(string $source): void
{
$this->source = $source;
}
/**
* @return string|null
*/
public function getTerm(): ?string
{
return $this->term;
}
/**
* @param string $term
* @return void
*/
public function setTerm(string $term): void
{
$this->term = $term;
}
}

View file

@ -6,9 +6,6 @@
* ModelAdapter
*
* @package RetailCrm\Mg\Bot\Adapter
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model;
@ -21,9 +18,6 @@ use RetailCrm\Common\Serializer;
* Class ModelAdapter
*
* @package RetailCrm\Mg\Bot\Adapter
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ModelAdapter
{

View file

@ -5,14 +5,10 @@
* ModelInterface
*
* @package RetailCrm\Mg\Bot\Model
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model;
interface ModelInterface
{
}

View file

@ -6,9 +6,6 @@
* Bots Request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,13 +19,11 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* BotsRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class BotsRequest implements ModelInterface
{
use CommonFields;
use PageLimit;
/**
* @Type("int")

View file

@ -6,9 +6,6 @@
* Channels list request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,13 +19,11 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* ChannelsRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ChannelsRequest implements ModelInterface
{
use CommonFields;
use PageLimit;
/**
* @Type("array")

View file

@ -6,9 +6,6 @@
* Chats list request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,13 +19,12 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* ChatsRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ChatsRequest implements ModelInterface
{
use CommonFields;
use PageLimit;
use IncludeMassCommunication;
/**
* @Type("int")
@ -44,6 +40,24 @@ class ChatsRequest implements ModelInterface
*/
private $channelType;
/**
* @var int $customerId
*
* @Type("int")
* @Accessor(getter="getCustomerId",setter="setCustomerId")
* @SkipWhenEmpty()
*/
private $customerId;
/**
* @var int $sinceId
*
* @Type("int")
* @Accessor(getter="getSinceId",setter="setSinceId")
* @SkipWhenEmpty()
*/
private $sinceId;
/**
* @return int
*/
@ -75,4 +89,38 @@ class ChatsRequest implements ModelInterface
{
$this->channelType = $channelType;
}
/**
* @return int|null
*/
public function getCustomerId(): ?int
{
return $this->customerId;
}
/**
* @param int $customerId
* @return void
*/
public function setCustomerId($customerId)
{
$this->customerId = $customerId;
}
/**
* @return int|null
*/
public function getSinceId()
{
return $this->sinceId;
}
/**
* @param int $sinceId
* @return void
*/
public function setSinceId($sinceId)
{
$this->sinceId = $sinceId;
}
}

View file

@ -6,9 +6,6 @@
* Edit Command Request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* CommandEditRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class CommandEditRequest implements ModelInterface
{

View file

@ -6,9 +6,6 @@
* Commands list request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* CommandsRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class CommandsRequest implements ModelInterface
{

View file

@ -6,9 +6,6 @@
* Common fields
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -21,9 +18,6 @@ use JMS\Serializer\Annotation\Type;
* CommonFields trait
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
trait CommonFields
{
@ -55,9 +49,9 @@ trait CommonFields
private $until;
/**
* @return int
* @return int|null
*/
public function getId()
public function getId(): ?int
{
return $this->id;
}

View file

@ -6,9 +6,6 @@
* Customers list request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,13 +19,11 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* CustomersRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class CustomersRequest implements ModelInterface
{
use CommonFields;
use PageLimit;
/**
* @Type("string")

View file

@ -6,9 +6,6 @@
* Dialog assign request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -23,9 +20,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* DialogAssignRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class DialogAssignRequest implements ModelInterface
{

View file

@ -0,0 +1,78 @@
<?php
/**
* PHP version 7.1
*
* Dialog add or delete tag request
*
* @package RetailCrm\Mg\Bot\Model\Request
*/
namespace RetailCrm\Mg\Bot\Model\Request;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\Entity\Tag;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* DialogTagRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
*/
class DialogTagRequest implements ModelInterface
{
/**
* @var int $dialogId
*
* @Type("int")
* @Accessor(getter="getDialogId", setter="setDialogId")
* @SkipWhenEmpty()
*/
private $dialogId;
/**
* @var Tag[] $tags
*
* @Type("array")
* @Accessor(getter="getTags", setter="setTags")
* @SkipWhenEmpty()
*/
private $tags;
/**
* @return int
*/
public function getDialogId(): int
{
return $this->dialogId;
}
/**
* @param int $dialogId
* @return void
*/
public function setDialogId(int $dialogId): void
{
$this->dialogId = $dialogId;
}
/**
* @return Tag[]
*/
public function getTags(): array
{
return $this->tags;
}
/**
* @param Tag[] $tags
* @return void
*/
public function setTags(array $tags): void
{
$this->tags = $tags;
}
}

View file

@ -6,9 +6,6 @@
* Dialogs list request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,13 +19,21 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* DialogsRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class DialogsRequest implements ModelInterface
{
use CommonFields;
use PageLimit;
use IncludeMassCommunication;
/**
* @var int $sinceId
*
* @Type("int")
* @Accessor(getter="getSinceId",setter="setSinceId")
* @SkipWhenEmpty
*/
private $sinceId;
/**
* @var int $chatId
@ -75,6 +80,22 @@ class DialogsRequest implements ModelInterface
*/
private $assign;
/**
* @return int
*/
public function getSinceId()
{
return $this->sinceId;
}
/**
* @param int $sinceId
*/
public function setSinceId(int $sinceId)
{
$this->sinceId = $sinceId;
}
/**
* @return int
*/

View file

@ -0,0 +1,48 @@
<?php
/**
* PHP version 7.1
*
* Common fields
*
* @package RetailCrm\Mg\Bot\Model\Request
*/
namespace RetailCrm\Mg\Bot\Model\Request;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
/**
* CommonFields trait
*
* @package RetailCrm\Mg\Bot\Model\Request
*/
trait IncludeMassCommunication
{
/**
* @var int $includeMassCommunication
*
* @Type("int")
* @Accessor(getter="getIncludeMassCommunication",setter="setIncludeMassCommunication")
* @SkipWhenEmpty
*/
private $includeMassCommunication;
/**
* @return int
*/
public function getIncludeMassCommunication()
{
return $this->includeMassCommunication;
}
/**
* @param int $includeMassCommunication
*/
public function setIncludeMassCommunication(?int $includeMassCommunication): void
{
$this->includeMassCommunication = $includeMassCommunication;
}
}

View file

@ -6,9 +6,6 @@
* Bot info request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* InfoRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class InfoRequest implements ModelInterface
{

View file

@ -6,9 +6,6 @@
* Members list request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,12 +19,12 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MembersRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MembersRequest implements ModelInterface
{
use CommonFields;
use PageLimit;
/**
* @var int $chatId
*
@ -55,24 +52,6 @@ class MembersRequest implements ModelInterface
*/
private $state;
/**
* @var string $since
*
* @Type("string")
* @Accessor(getter="getSince",setter="setSince")
* @SkipWhenEmpty
*/
private $since;
/**
* @var string $until
*
* @Type("string")
* @Accessor(getter="getUntil",setter="setUntil")
* @SkipWhenEmpty
*/
private $until;
/**
* @return int
*/
@ -120,36 +99,4 @@ class MembersRequest implements ModelInterface
{
$this->state = $state;
}
/**
* @return string
*/
public function getSince()
{
return $this->since;
}
/**
* @param string $since
*/
public function setSince(string $since)
{
$this->since = $since;
}
/**
* @return string
*/
public function getUntil()
{
return $this->until;
}
/**
* @param string $until
*/
public function setUntil(string $until)
{
$this->until = $until;
}
}

View file

@ -6,9 +6,6 @@
* Messages edit request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageEditRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageEditRequest implements ModelInterface
{
@ -47,9 +41,9 @@ class MessageEditRequest implements ModelInterface
private $content;
/**
* @return int
* @return int|null
*/
public function getId()
public function getId(): ?int
{
return $this->id;
}

View file

@ -6,18 +6,17 @@
* Messages send request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
use JMS\Serializer\Annotation as Serializer;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageOrder;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageProduct;
use RetailCrm\Mg\Bot\Model\Entity\Message\TransportAttachments;
use RetailCrm\Mg\Bot\Model\ModelInterface;
use Symfony\Component\Validator\Constraints as Assert;
@ -25,9 +24,6 @@ use Symfony\Component\Validator\Constraints as Assert;
* MessageSendRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageSendRequest implements ModelInterface
{
@ -45,15 +41,14 @@ class MessageSendRequest implements ModelInterface
*
* @Type("string")
* @Accessor(getter="getContent",setter="setContent")
*
* @Assert\NotBlank
* @SkipWhenEmpty()
*/
private $content;
/**
* @var MessageProduct $product
*
* @Type("Product")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageProduct")
* @Accessor(getter="getProduct",setter="setProduct")
* @SkipWhenEmpty()
*/
@ -62,7 +57,7 @@ class MessageSendRequest implements ModelInterface
/**
* @var MessageOrder $order
*
* @Type("Order")
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\MessageOrder")
* @Accessor(getter="getOrder",setter="setOrder")
* @SkipWhenEmpty()
*/
@ -77,6 +72,15 @@ class MessageSendRequest implements ModelInterface
*/
private $items;
/**
* @var string $note
*
* @Type("string")
* @Accessor(getter="getNote",setter="setNote")
* @SkipWhenEmpty()
*/
private $note;
/**
* @var string $scope
*
@ -87,6 +91,16 @@ class MessageSendRequest implements ModelInterface
*/
private $scope;
/**
* @var TransportAttachments $transportAttachments
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\Message\TransportAttachments")
* @Accessor(getter="getTransportAttachments",setter="setTransportAttachments")
* @SkipWhenEmpty
*/
private $transportAttachments;
/**
* @var int $chatId
*
@ -140,6 +154,22 @@ class MessageSendRequest implements ModelInterface
$this->scope = $scope;
}
/**
* @return TransportAttachments
*/
public function getTransportAttachments()
{
return $this->transportAttachments;
}
/**
* @param TransportAttachments $transportAttachments
*/
public function setTransportAttachments(TransportAttachments $transportAttachments)
{
$this->transportAttachments = $transportAttachments;
}
/**
* @return string
*/
@ -220,6 +250,22 @@ class MessageSendRequest implements ModelInterface
$this->items = $items;
}
/**
* @return null|string
*/
public function getNote(): ?string
{
return $this->note;
}
/**
* @param string $note
*/
public function setNote(string $note): void
{
$this->note = $note;
}
/**
* @return int
*/

View file

@ -6,9 +6,6 @@
* Messages list request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,13 +19,11 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessagesRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessagesRequest implements ModelInterface
{
use CommonFields;
use IncludeMassCommunication;
/**
* @var int $chatId
@ -111,6 +106,15 @@ class MessagesRequest implements ModelInterface
*/
private $type;
/**
* @var int $limit
*
* @Type("int")
* @Accessor(getter="getLimit",setter="setLimit")
* @SkipWhenEmpty()
*/
private $limit;
/**
* @return int
*/
@ -254,4 +258,20 @@ class MessagesRequest implements ModelInterface
{
$this->type = $type;
}
/**
* @return int
*/
public function getLimit()
{
return $this->limit;
}
/**
* @param int $limit
*/
public function setLimit(int $limit)
{
$this->limit = $limit;
}
}

View file

@ -0,0 +1,49 @@
<?php
/**
* PHP version 7.1
*
* Page limit
*
* @package RetailCrm\Mg\Bot\Model\Request
*/
namespace RetailCrm\Mg\Bot\Model\Request;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
/**
* PageLimit trait
*
* @package RetailCrm\Mg\Bot\Model\Request
*/
trait PageLimit
{
/**
* @var int $limit
*
* @Type("int")
* @Accessor(getter="getLimit",setter="setLimit")
* @SkipWhenEmpty
*/
private $limit;
/**
* @return int|null
*/
public function getLimit(): ?int
{
return $this->limit;
}
/**
* @param int $limit
* @return void
*/
public function setLimit($limit)
{
$this->limit = $limit;
}
}

View file

@ -0,0 +1,77 @@
<?php
/**
* PHP version 7.1
*
* Template send request
*
* @package RetailCrm\Mg\Bot\Model\Request
*/
namespace RetailCrm\Mg\Bot\Model\Request;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\Entity\Template\TemplateVariables;
use RetailCrm\Mg\Bot\Model\ModelInterface;
use Symfony\Component\Validator\Constraints as Assert;
/**
* TemplateSendRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
*/
class TemplateSendRequest implements ModelInterface
{
/**
* @var string $phone
*
* @Type("string")
* @Accessor(getter="getPhone",setter="setPhone")
*
* @Assert\NotBlank
*/
private $phone;
/**
* @var TemplateVariables $args
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\Template\TemplateVariables")
* @Accessor(getter="getArgs",setter="setArgs")
* @SkipWhenEmpty()
*/
private $args;
/**
* @return string
*/
public function getPhone(): string
{
return $this->phone;
}
/**
* @param string $phone
*/
public function setPhone(string $phone): void
{
$this->phone = $phone;
}
/**
* @return TemplateVariables|null
*/
public function getArgs(): ?TemplateVariables
{
return $this->args;
}
/**
* @param TemplateVariables $args
*/
public function setArgs(TemplateVariables $args): void
{
$this->args = $args;
}
}

View file

@ -6,9 +6,6 @@
* Upload file by url request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,9 +19,6 @@ use Symfony\Component\Validator\Constraints as Assert;
* UploadFileByUrlRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class UploadFileByUrlRequest implements ModelInterface
{
@ -33,7 +27,7 @@ class UploadFileByUrlRequest implements ModelInterface
*
* @Type("string")
* @Accessor(getter="getUrl",setter="setUrl")
* @Assert\NotBlank()
* @Assert\NotBlank(allowNull=false)
* @Assert\Url()
*/
private $url;

View file

@ -6,9 +6,6 @@
* Users list request
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Request;
@ -22,13 +19,11 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* UsersRequest class
*
* @package RetailCrm\Mg\Bot\Model\Request
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class UsersRequest implements ModelInterface
{
use CommonFields;
use PageLimit;
/**
* @Type("string")

View file

@ -6,9 +6,6 @@
* AssignResponse
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Response;
@ -23,9 +20,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* AssignResponse class
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class AssignResponse implements ModelInterface
{
@ -68,9 +62,9 @@ class AssignResponse implements ModelInterface
private $responsible;
/**
* @return bool
* @return bool|null
*/
public function getIsReassign(): bool
public function getIsReassign(): ?bool
{
return $this->isReassign;
}
@ -84,9 +78,9 @@ class AssignResponse implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getLeftManagerId(): int
public function getLeftManagerId(): ?int
{
return $this->leftManagerId;
}
@ -100,9 +94,9 @@ class AssignResponse implements ModelInterface
}
/**
* @return Responsible
* @return Responsible|null
*/
public function getPreviousResponsible(): Responsible
public function getPreviousResponsible(): ?Responsible
{
return $this->previousResponsible;
}
@ -116,9 +110,9 @@ class AssignResponse implements ModelInterface
}
/**
* @return Responsible
* @return Responsible|null
*/
public function getResponsible(): Responsible
public function getResponsible(): ?Responsible
{
return $this->responsible;
}

View file

@ -6,9 +6,6 @@
* ErrorTrait
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Response;
@ -22,9 +19,6 @@ use JMS\Serializer\Annotation\Type;
* CommonFields trait
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
trait CommonFields
{
@ -44,9 +38,9 @@ trait CommonFields
private $statusCode;
/**
* @return array
* @return array|null
*/
public function getErrors(): array
public function getErrors(): ?array
{
return empty($this->errors) ? [] : $this->errors;
}
@ -60,9 +54,9 @@ trait CommonFields
}
/**
* @return int
* @return int|null
*/
public function getStatusCode(): int
public function getStatusCode(): ?int
{
return $this->statusCode;
}

View file

@ -6,9 +6,6 @@
* ErrorOnlyResponse
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Response;
@ -19,9 +16,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* ErrorOnlyResponse class
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ErrorOnlyResponse implements ModelInterface
{

View file

@ -6,13 +6,11 @@
* FullFileResponse
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Response;
use JMS\Serializer\Annotation\SerializedName;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
@ -22,9 +20,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* FullFileResponse class
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class FullFileResponse implements ModelInterface
{
@ -61,15 +56,16 @@ class FullFileResponse implements ModelInterface
* @var string $url
*
* @Type("string")
* @SerializedName("Url")
* @Accessor(getter="getUrl",setter="setUrl")
* @SkipWhenEmpty()
*/
private $url;
/**
* @return string
* @return string|null
*/
public function getId(): string
public function getId(): ?string
{
return $this->id;
}
@ -83,9 +79,9 @@ class FullFileResponse implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getSize(): int
public function getSize(): ?int
{
return $this->size;
}
@ -99,9 +95,9 @@ class FullFileResponse implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getType(): string
public function getType(): ?string
{
return $this->type;
}
@ -115,9 +111,9 @@ class FullFileResponse implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getUrl(): string
public function getUrl(): ?string
{
return $this->url;
}

View file

@ -6,9 +6,6 @@
* MessageSendResponse
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Response;
@ -22,9 +19,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* MessageSendResponse class
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessageSendResponse implements ModelInterface
{
@ -49,9 +43,9 @@ class MessageSendResponse implements ModelInterface
private $time;
/**
* @return int
* @return int|null
*/
public function getMessageId(): int
public function getMessageId(): ?int
{
return $this->messageId;
}
@ -65,9 +59,9 @@ class MessageSendResponse implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getTime(): string
public function getTime(): ?string
{
return $this->time;
}

View file

@ -0,0 +1,52 @@
<?php
/**
* PHP version 7.1
*
* UnassignResponse
*
* @package RetailCrm\Mg\Bot\Model\Response
*/
namespace RetailCrm\Mg\Bot\Model\Response;
use JMS\Serializer\Annotation\Accessor;
use JMS\Serializer\Annotation\SkipWhenEmpty;
use JMS\Serializer\Annotation\Type;
use RetailCrm\Mg\Bot\Model\Entity\Responsible;
use RetailCrm\Mg\Bot\Model\ModelInterface;
/**
* UnassignResponse class
*
* @package RetailCrm\Mg\Bot\Model\Response
*/
class UnassignResponse implements ModelInterface
{
use CommonFields;
/**
* @var Responsible $previousResponsible
*
* @Type("RetailCrm\Mg\Bot\Model\Entity\Responsible")
* @Accessor(getter="getPreviousResponsible",setter="setPreviousResponsible")
* @SkipWhenEmpty()
*/
private $previousResponsible;
/**
* @return Responsible|null
*/
public function getPreviousResponsible(): ?Responsible
{
return $this->previousResponsible;
}
/**
* @param Responsible $previousResponsible
*/
public function setPreviousResponsible(Responsible $previousResponsible)
{
$this->previousResponsible = $previousResponsible;
}
}

View file

@ -6,9 +6,6 @@
* UploadFileResponse
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Model\Response;
@ -23,9 +20,6 @@ use RetailCrm\Mg\Bot\Model\ModelInterface;
* UploadFileResponse class
*
* @package RetailCrm\Mg\Bot\Model\Response
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class UploadFileResponse implements ModelInterface
{
@ -104,9 +98,9 @@ class UploadFileResponse implements ModelInterface
private $type;
/**
* @return string
* @return string|null
*/
public function getCreatedAt(): string
public function getCreatedAt(): ?string
{
return $this->createdAt;
}
@ -120,9 +114,9 @@ class UploadFileResponse implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getHash(): string
public function getHash(): ?string
{
return $this->hash;
}
@ -136,9 +130,9 @@ class UploadFileResponse implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getId(): string
public function getId(): ?string
{
return $this->id;
}
@ -152,9 +146,9 @@ class UploadFileResponse implements ModelInterface
}
/**
* @return FileMeta
* @return FileMeta|null
*/
public function getMeta(): FileMeta
public function getMeta(): ?FileMeta
{
return $this->meta;
}
@ -168,9 +162,9 @@ class UploadFileResponse implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getMimeType(): string
public function getMimeType(): ?string
{
return $this->mimeType;
}
@ -184,9 +178,9 @@ class UploadFileResponse implements ModelInterface
}
/**
* @return int
* @return int|null
*/
public function getSize(): int
public function getSize(): ?int
{
return $this->size;
}
@ -200,9 +194,9 @@ class UploadFileResponse implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getSourceUrl(): string
public function getSourceUrl(): ?string
{
return $this->sourceUrl;
}
@ -216,9 +210,9 @@ class UploadFileResponse implements ModelInterface
}
/**
* @return string
* @return string|null
*/
public function getType(): string
public function getType(): ?string
{
return $this->type;
}

View file

@ -6,9 +6,6 @@
* InvalidJsonException
*
* @package RetailCrm\Common\Exception
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Common\Exception;
@ -20,9 +17,6 @@ use Throwable;
* Class InvalidJsonException
*
* @package RetailCrm\Common\Exception
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class InvalidJsonException extends DomainException implements Throwable
{

View file

@ -6,9 +6,6 @@
* LimitException
*
* @package RetailCrm\Common\Exception
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Common\Exception;
@ -20,9 +17,6 @@ use Throwable;
* Class LimitException
*
* @package RetailCrm\Common\Exception
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class LimitException extends DomainException implements Throwable
{

View file

@ -5,9 +5,6 @@
* NotFoundException
*
* @package RetailCrm\Common\Exception
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Common\Exception;
@ -19,9 +16,6 @@ use Throwable;
* Class NotFoundException
*
* @package RetailCrm\Common\Exception
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class NotFoundException extends DomainException implements Throwable
{

View file

@ -5,9 +5,6 @@
* UnauthorizedException
*
* @package RetailCrm\Common\Exception
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Common\Exception;

View file

@ -6,9 +6,6 @@
* Register
*
* @package RetailCrm\Common
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Common;
@ -23,9 +20,6 @@ use Symfony\Component\Validator\Constraints as Assert;
* Class Register
*
* @package RetailCrm\Common
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Register
{
@ -51,8 +45,8 @@ class Register
private $integrationCode;
/**
* @var string $active
* @Type("string")
* @var bool $active
* @Type("bool")
* @Accessor(getter="getActive",setter="setActive")
* @SkipWhenEmpty
*/
@ -63,7 +57,7 @@ class Register
*
* @Type("string")
* @Accessor(getter="getName",setter="setName")
* @SkipWhenEmpty
* @Assert\NotBlank()
*/
private $name;
@ -112,6 +106,7 @@ class Register
*
* @Type("string")
* @Accessor(getter="getAccountUrl",setter="setAccountUrl")
* @SerializedName("accountUrl")
*
* @Assert\NotBlank
* @Assert\Url(
@ -184,7 +179,7 @@ class Register
}
/**
* @return string
* @return bool
*/
public function getActive()
{
@ -192,9 +187,9 @@ class Register
}
/**
* @param string $active
* @param bool $active
*/
public function setActive(string $active)
public function setActive(bool $active)
{
$this->active = $active;
}
@ -330,22 +325,32 @@ class Register
/**
* Get configuration as JSON
*
* @return array|string
* @todo make exact type
* @return string
*/
public function getJsonConfiguration()
{
return Serializer::serialize($this);
$serialized = Serializer::serialize($this);
if (is_string($serialized)) {
return $serialized;
}
return '';
}
/**
* Get configuration as array
*
* @return array|string
* @todo make exact type
* @return array
*/
public function getArrayConfiguration()
{
return Serializer::serialize($this, Serializer::S_ARRAY);
$serialized = Serializer::serialize($this, Serializer::S_ARRAY);
if (is_array($serialized)) {
return $serialized;
}
return [];
}
}

View file

@ -6,9 +6,6 @@
* Serializer
*
* @package RetailCrm\Common
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Common;
@ -23,9 +20,6 @@ use RetailCrm\Mg\Bot\Model\Response\ErrorOnlyResponse;
* Class Serializer
*
* @package RetailCrm\Common
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Serializer
{
@ -46,14 +40,16 @@ class Serializer
$serializer = SerializerBuilder::create()->build();
$context = self::getContext(false);
switch ($serialize) {
case self::S_ARRAY:
$serialized = $serializer->toArray($request, $context);
break;
case self::S_JSON:
default:
$serialized = $serializer->serialize($request, $serialize, $context);
break;
if ($context instanceof SerializationContext) {
switch ($serialize) {
case self::S_ARRAY:
$serialized = $serializer->toArray($request, $context);
break;
case self::S_JSON:
default:
$serialized = $serializer->serialize($request, $serialize, $context);
break;
}
}
return $serialized;
@ -74,15 +70,20 @@ class Serializer
$serializer = SerializerBuilder::create()->build();
$context = self::getContext(true);
switch ($from) {
case self::S_ARRAY:
$deserialized = $serializer
->fromArray(array_filter($data), self::normalizeNamespace($entityType), $context);
break;
case self::S_JSON:
$deserialized = $serializer
->deserialize($data, self::normalizeNamespace($entityType), $from, $context);
break;
if ($context instanceof DeserializationContext) {
switch ($from) {
case self::S_ARRAY:
$filtered = array_filter($data, static function ($el) {
return $el !== null;
});
$deserialized = $serializer
->fromArray($filtered, self::normalizeNamespace($entityType), $context);
break;
case self::S_JSON:
$deserialized = $serializer
->deserialize($data, self::normalizeNamespace($entityType), $from, $context);
break;
}
}
return $deserialized instanceof ModelInterface ? $deserialized : new ErrorOnlyResponse();
@ -99,9 +100,9 @@ class Serializer
$context = new DeserializationContext();
} else {
$context = new SerializationContext();
}
$context->setSerializeNull(false);
$context->setSerializeNull(false);
}
return $context;
}
@ -109,7 +110,7 @@ class Serializer
/**
* @param string $namespace
*
* @return bool|string
* @return string
*/
private static function normalizeNamespace(string $namespace)
{

View file

@ -6,9 +6,6 @@
* Url
*
* @package RetailCrm\Common
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Common;
@ -17,9 +14,6 @@ namespace RetailCrm\Common;
* Class Url
*
* @package RetailCrm\Common
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class Url
{

View file

@ -6,9 +6,6 @@
* Test case class
*
* @package Test
* @author RetailCrm <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://www.retailcrm.ru/docs/Developers/ApiVersion5
*/
namespace RetailCrm\Mg\Bot\Test;
@ -23,9 +20,6 @@ use RetailCrm\Mg\Bot\Client;
* Class TestCase
*
* @package Test
* @author RetailCrm <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://www.retailcrm.ru/docs/Developers/ApiVersion5
*/
class TestCase extends BaseCase
{

View file

@ -6,13 +6,13 @@
* Client Test
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Tests;
use Psr\Http\Message\ResponseInterface;
use RetailCrm\Mg\Bot\Client;
use RetailCrm\Mg\Bot\HttpClient;
use RetailCrm\Mg\Bot\Model\Constants;
use RetailCrm\Mg\Bot\Model\Entity\Channel;
use RetailCrm\Mg\Bot\Model\Entity\Chat\Chat;
@ -30,9 +30,6 @@ use RetailCrm\Mg\Bot\Test\TestCase;
* Class ClientListTest
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class ClientListTest extends TestCase
{
@ -55,8 +52,11 @@ class ClientListTest extends TestCase
$response = $client->channels($request);
static::assertEquals(4, count($response), "Incorrect channels count");
static::assertTrue($response[0] instanceof Channel\Channel, "Incorrect channel instance");
static::assertCount(5, $response, "Incorrect channels count");
static::assertInstanceOf(Channel\Channel::class, $response[0], "Incorrect channel instance");
$textSuggestions = $response[0]->getSettings()->getSuggestions()->getText();
static::assertStringContainsString("both", $textSuggestions, "Incorrect text suggestions");
}
/**
@ -77,8 +77,29 @@ class ClientListTest extends TestCase
$response = $client->chats($request);
static::assertEquals(2, count($response), "Incorrect chats count");
static::assertTrue($response[0] instanceof Chat, "Incorrect chat instance");
static::assertCount(3, $response, "Incorrect chats count");
static::assertInstanceOf(Chat::class, $response[0], "Incorrect chat instance");
}
/**
* @group("list")
* @throws \Exception
*/
public function testGetChatsByCustomerId(): void
{
$client = self::getApiClient(
null,
null,
false,
$this->getJsonResponse('chatsByCustomerId')
);
$request = new Request\ChatsRequest();
$request->setCustomerId(39);
$response = $client->chats($request);
static::assertCount(1, $response, "Incorrect chats count");
static::assertInstanceOf(Chat::class, $response[0], "Incorrect chat instance");
}
/**
@ -97,8 +118,8 @@ class ClientListTest extends TestCase
$request = new Request\MembersRequest();
$response = $client->members($request);
static::assertEquals(4, count($response), "Incorrect members count");
static::assertTrue($response[0] instanceof ChatMember, "Incorrect member instance");
static::assertCount(5, $response, "Incorrect members count");
static::assertInstanceOf(ChatMember::class, $response[0], "Incorrect member instance");
}
/**
@ -117,11 +138,12 @@ class ClientListTest extends TestCase
$request = new Request\MessagesRequest();
$request->setChannelType(Constants::CHANNEL_TYPE_INSTAGRAM);
$request->setType(Constants::MESSAGE_TYPE_TEXT);
$request->setLimit(1000);
$response = $client->messages($request);
static::assertEquals(2, count($response), "Incorrect message count");
static::assertTrue($response[0] instanceof Message, "Incorrect message instance");
static::assertCount(3, $response, "Incorrect message count");
static::assertInstanceOf(Message::class, $response[0], "Incorrect message instance");
}
/**
@ -140,7 +162,7 @@ class ClientListTest extends TestCase
$request = new Request\CommandsRequest();
$response = $client->commands($request);
self::assertEquals(0, count($response), "Invalid commands count");
self::assertCount(0, $response, "Invalid commands count");
}
/**
@ -162,7 +184,7 @@ class ClientListTest extends TestCase
$data = $client->bots($request);
static::assertEquals(3, count($data));
static::assertCount(4, $data);
}
/**
@ -184,8 +206,8 @@ class ClientListTest extends TestCase
$response = $client->users($request);
self::assertEquals(2, count($response));
self::assertTrue($response[0] instanceof User);
self::assertCount(3, $response);
self::assertInstanceOf(User::class, $response[0]);
}
/**
@ -207,8 +229,8 @@ class ClientListTest extends TestCase
$response = $client->dialogs($request);
self::assertEquals(2, count($response));
self::assertTrue($response[0] instanceof Dialog);
self::assertCount(3, $response);
self::assertInstanceOf(Dialog::class, $response[0]);
}
/**
@ -228,7 +250,10 @@ class ClientListTest extends TestCase
$response = $client->customers($request);
self::assertEquals(2, count($response));
self::assertTrue($response[0] instanceof Customer);
self::assertCount(3, $response);
self::assertInstanceOf(Customer::class, $response[0]);
$utm = $response[0]->getUtm()->getCampaign();
static::assertEquals('spring_sale', $utm, "Incorrect utm data");
}
}

View file

@ -6,9 +6,6 @@
* Commands Test
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Tests;
@ -24,9 +21,6 @@ use RetailCrm\Mg\Bot\Test\TestCase;
* Class CommandsTest
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class CommandsTest extends TestCase
{
@ -86,7 +80,7 @@ class CommandsTest extends TestCase
$response = $client->commandEdit($request);
self::assertTrue($response instanceof ErrorOnlyResponse);
self::assertInstanceOf(ErrorOnlyResponse::class, $response);
self::assertTrue($response->isSuccessful());
}
@ -106,6 +100,6 @@ class CommandsTest extends TestCase
$response = $client->commandDelete("show_payment_types");
self::assertTrue($response->isSuccessful() == true);
self::assertTrue($response->isSuccessful());
}
}

View file

@ -7,9 +7,6 @@
*
* @package RetailCrm\Mg\Bot\Tests
* @category Test
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Tests;
@ -17,7 +14,9 @@ namespace RetailCrm\Mg\Bot\Tests;
use InvalidArgumentException;
use RetailCrm\Common\Exception\NotFoundException;
use RetailCrm\Mg\Bot\Model\Entity\Responsible;
use RetailCrm\Mg\Bot\Model\Entity\Tag;
use RetailCrm\Mg\Bot\Model\Request\DialogAssignRequest;
use RetailCrm\Mg\Bot\Model\Request\DialogTagRequest;
use RetailCrm\Mg\Bot\Model\Response\ErrorOnlyResponse;
use RetailCrm\Mg\Bot\Test\TestCase;
@ -27,9 +26,6 @@ use RetailCrm\Mg\Bot\Test\TestCase;
* Class DialogsTest
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class DialogsTest extends TestCase
{
@ -78,6 +74,42 @@ class DialogsTest extends TestCase
self::assertTrue($response->getResponsible() instanceof Responsible);
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogUnassignError()
{
$this->expectException(\RuntimeException::class);
$client = self::getApiClient(
null,
null,
false,
$this->getErrorsResponse(400, "incorrect dialog_id")
);
$client->dialogUnassign(-1);
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogUnassign()
{
$client = self::getApiClient(
null,
null,
false,
$this->getJsonResponse('dialogUnassigned')
);
$response = $client->dialogUnassign(60);
self::assertTrue($response->isSuccessful());
self::assertTrue($response->getPreviousResponsible() instanceof Responsible);
}
/**
* @group("dialogs")
* @throws \Exception
@ -111,7 +143,183 @@ class DialogsTest extends TestCase
$response = $client->dialogClose('62');
self::assertTrue($response instanceof ErrorOnlyResponse);
self::assertInstanceOF(ErrorOnlyResponse::class, $response);
self::assertTrue($response->isSuccessful());
self::assertEmpty($response->getErrors());
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogAddTagColorError()
{
$this->expectException(NotFoundException::class);
$client = self::getApiClient(
null,
null,
false,
$this->getErrorsResponse(404,
"'color_code can contain only the following values: " .
"light-red; light-blue; light-green; light-orange; light-gray; " .
"light-grayish-blue; red; blue; green; orange; gray; grayish-blue'"
)
);
$tags[0] = new Tag();
$tags[0]->setName('tag1');
$tags[0]->setColorCode('qwerty');
$request = new DialogTagRequest();
$request->setDialogId(60);
$request->setTags($tags);
$client->dialogAddTag($request);
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogAddTagDialogError()
{
$this->expectException(NotFoundException::class);
$client = self::getApiClient(
null,
null,
false,
$this->getErrorsResponse(404, "dialog #123456789 not found")
);
$tags[0] = new Tag();
$tags[0]->setName('tag1');
$request = new DialogTagRequest();
$request->setDialogId(123456789);
$request->setTags($tags);
$client->dialogAddTag($request);
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogAddTagEmptyTagError()
{
$this->expectException(\TypeError::class);
$client = self::getApiClient();
$tags[0] = new Tag();
$request = new DialogTagRequest();
$request->setDialogId(60);
$request->setTags($tags);
$client->dialogAddTag($request);
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogAddTag()
{
$client = self::getApiClient(
null,
null,
false,
$this->getResponse('{}')
);
$tags[0] = new Tag();
$tags[0]->setName('tag1');
$tags[0]->setColorCode('red');
$tags[1] = new Tag();
$tags[1]->setName('tag2');
$request = new DialogTagRequest();
$request->setDialogId(60);
$request->setTags($tags);
$response = $client->dialogAddTag($request);
self::assertInstanceOF(ErrorOnlyResponse::class, $response);
self::assertTrue($response->isSuccessful());
self::assertEmpty($response->getErrors());
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogDeleteTagDialogError()
{
$this->expectException(NotFoundException::class);
$client = self::getApiClient(
null,
null,
false,
$this->getErrorsResponse(404, "dialog #123456789 not found")
);
$tags[0] = new Tag();
$tags[0]->setName('tag1');
$request = new DialogTagRequest();
$request->setDialogId(123456789);
$request->setTags($tags);
$client->dialogAddTag($request);
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogDeleteTagEmptyTagError()
{
$this->expectException(\TypeError::class);
$client = self::getApiClient();
$tags[0] = new Tag();
$request = new DialogTagRequest();
$request->setTags($tags);
$client->dialogDeleteTag($request);
}
/**
* @group("dialogs")
* @throws \Exception
*/
public function testDialogDeleteTag()
{
$client = self::getApiClient(
null,
null,
false,
$this->getResponse('{}')
);
$tags[0] = new Tag();
$tags[0]->setName('tag1');
$request = new DialogTagRequest();
$request->setDialogId(60);
$request->setTags($tags);
$response = $client->dialogDeleteTag($request);
self::assertInstanceOF(ErrorOnlyResponse::class, $response);
self::assertTrue($response->isSuccessful());
self::assertEmpty($response->getErrors());
}

View file

@ -6,9 +6,6 @@
* Upload file Test
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Tests;
@ -22,10 +19,7 @@ use RetailCrm\Mg\Bot\Test\TestCase;
*
* Class UploadFileTest
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
* @package RetailCrm\Mg\Bot\Tests
*/
class FileTest extends TestCase
{
@ -33,17 +27,32 @@ class FileTest extends TestCase
* @group("upload")
* @throws \Exception
*/
public function testUploadFileByUrlException()
public function testUploadFileByUrlEmpty()
{
$client = self::getApiClient(
null,
null,
false,
$this->getEmptyResponse(400)
$this->getErrorsResponse(400, 'Something is not quite right.')
);
self::expectException(\InvalidArgumentException::class);
$client->uploadFileByUrl('');
}
/**
* @group("upload")
* @throws \Exception
*/
public function testUploadFileByUrlInvalid()
{
$client = self::getApiClient(
null,
null,
false,
$this->getErrorsResponse(400, 'Something is not quite right.')
);
self::expectException(\InvalidArgumentException::class);
$client->uploadFileByUrl('rar');
}
@ -83,7 +92,7 @@ class FileTest extends TestCase
$response = $client->uploadFile(__FILE__);
self::assertTrue($response instanceof UploadFileResponse);
self::assertInstanceOf(UploadFileResponse::class, $response);
self::assertEquals('b2bdba90-166c-4e0a-829d-69f26a09fd2a', $response->getId());
self::assertEquals('file', $response->getType());
self::assertEquals(214, $response->getSize());
@ -105,7 +114,10 @@ class FileTest extends TestCase
$response = $client->getFileById($fileId);
self::assertTrue($response instanceof FullFileResponse);
self::assertInstanceOf(FullFileResponse::class, $response);
self::assertEquals($fileId, $response->getId());
$fileUrl = 'https://s3.eu-central-1.amazonaws.com/mg-node-files/files/21/b2bdba90-166c-4e0a-829d-69f26a09fd2a';
self::assertEquals($fileUrl, $response->getUrl());
}
}

View file

@ -6,16 +6,25 @@
* Messages Test
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
namespace RetailCrm\Mg\Bot\Tests;
use RetailCrm\Mg\Bot\Model\Constants;
use RetailCrm\Mg\Bot\Model\Entity\Message\Item;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageCost;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageDelivery;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageOrder;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageOrderItem;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageOrderPaymentStatus;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageProduct;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageQuantity;
use RetailCrm\Mg\Bot\Model\Entity\Message\MessageStatus;
use RetailCrm\Mg\Bot\Model\Entity\Message\Suggestion;
use RetailCrm\Mg\Bot\Model\Entity\Message\TransportAttachments;
use RetailCrm\Mg\Bot\Model\Request\MessageEditRequest;
use RetailCrm\Mg\Bot\Model\Request\MessageSendRequest;
use RetailCrm\Mg\Bot\Model\Response\MessageSendResponse;
use RetailCrm\Mg\Bot\Test\TestCase;
/**
@ -24,9 +33,6 @@ use RetailCrm\Mg\Bot\Test\TestCase;
* Class MessagesTest
*
* @package RetailCrm\Mg\Bot\Tests
* @author retailCRM <integration@retailcrm.ru>
* @license https://opensource.org/licenses/MIT MIT License
* @link http://help.retailcrm.pro/docs/Developers
*/
class MessagesTest extends TestCase
{
@ -59,7 +65,7 @@ class MessagesTest extends TestCase
* @group("messages")
* @throws \Exception
*/
public function testMessageSend()
public function testMessageSendText()
{
$client = self::getApiClient(
null,
@ -78,9 +84,135 @@ class MessagesTest extends TestCase
$response = $client->messageSend($request);
self::assertTrue($response->isSuccessful());
self::assertEquals(0, count($response->getErrors()));
self::assertEquals(3636, $response->getMessageId());
self::assertInstanceOf(MessageSendResponse::class, $response);
if ($response instanceof MessageSendResponse) {
self::assertTrue($response->isSuccessful());
self::assertCount(0, $response->getErrors());
self::assertEquals(3636, $response->getMessageId());
}
}
/**
* @group("messages")
* @throws \Exception
*/
public function testMessageSendOrder()
{
$client = self::getApiClient(
null,
null,
false,
$this->getResponse(
'{"message_id":3636,"time":"2019-06-24T06:02:04.434291791Z"}',
201
)
);
$cost = new MessageCost();
$cost->setCurrency("");
$cost->setValue(500);
$delivery = new MessageDelivery();
$delivery->setAddress('address');
$delivery->setComment('comment');
$delivery->setName('test delivery');
$delivery->setPrice($cost);
$quantity = new MessageQuantity();
$quantity->setUnit('pcs');
$quantity->setValue(1);
$item = new MessageOrderItem();
$item->setName('product');
$item->setPrice($cost);
$item->setImg('https://example.com/image.jpeg');
$item->setQuantity($quantity);
$item->setUrl('https://example.com');
$orderStatus = new MessageStatus();
$orderStatus->setName('name');
$orderStatus->setCode('code');
$payment = new MessageOrderPaymentStatus();
$payment->setName('card');
$payment->setPayed(true);
$order = new MessageOrder();
$order->setCost($cost);
$order->setDelivery($delivery);
$order->setDate(date('Y-m-d\TH:i:s\.u\Z'));
$order->setItems([$item]);
$order->setUrl('https://example.com');
$order->setNumber('2038C');
$order->setPayments([$payment]);
$order->setStatus($orderStatus);
$request = new MessageSendRequest();
$request->setChatId(28);
$request->setType(Constants::MESSAGE_TYPE_ORDER);
$request->setScope(Constants::MESSAGE_SCOPE_PUBLIC);
$request->setOrder($order);
$response = $client->messageSend($request);
self::assertInstanceOf(MessageSendResponse::class, $response);
if ($response instanceof MessageSendResponse) {
self::assertTrue($response->isSuccessful());
self::assertCount(0, $response->getErrors());
self::assertEquals(3636, $response->getMessageId());
}
}
/**
* @group("messages")
* @throws \Exception
*/
public function testMessageSendProduct()
{
$client = self::getApiClient(
null,
null,
false,
$this->getResponse(
'{"message_id":3636,"time":"2019-06-24T06:02:04.434291791Z"}',
201
)
);
$cost = new MessageCost();
$cost->setCurrency("");
$cost->setValue(500);
$quantity = new MessageQuantity();
$quantity->setUnit('pcs');
$quantity->setValue(1);
$product = new MessageProduct();
$product->setId(1);
$product->setName('product');
$product->setUrl('https://example.com');
$product->setImg('https://example.com/image.jpg');
$product->setQuantity($quantity);
$product->setCost($cost);
$product->setArticle('article');
$request = new MessageSendRequest();
$request->setChatId(28);
$request->setType(Constants::MESSAGE_TYPE_PRODUCT);
$request->setScope(Constants::MESSAGE_SCOPE_PUBLIC);
$request->setProduct($product);
$response = $client->messageSend($request);
self::assertInstanceOf(MessageSendResponse::class, $response);
if ($response instanceof MessageSendResponse) {
self::assertTrue($response->isSuccessful());
self::assertCount(0, $response->getErrors());
self::assertEquals(3636, $response->getMessageId());
}
}
/**
@ -127,7 +259,7 @@ class MessagesTest extends TestCase
$response = $client->messageEdit($request);
self::assertTrue($response->isSuccessful());
self::assertEquals(0, count($response->getErrors()));
self::assertCount(0, $response->getErrors());
}
/**
@ -166,6 +298,102 @@ class MessagesTest extends TestCase
$response = $client->messageDelete('3636');
self::assertTrue($response->isSuccessful());
self::assertEquals(0, count($response->getErrors()));
self::assertCount(0, $response->getErrors());
}
/**
* @group("messages")
* @throws \Exception
*/
public function testMessageSendSuggestions()
{
$client = self::getApiClient(
null,
null,
false,
$this->getResponse(
'{"message_id":3636,"time":"2019-06-24T06:02:04.434291791Z"}',
201
)
);
$suggestionsData = [
[
'title' => 'Hello',
'type' => 'text'
],
[
'type' => 'email'
],
[
'type' => 'phone'
],
];
$suggestions = [];
foreach ($suggestionsData as $suggestionsDatum) {
$suggestion = new Suggestion();
$suggestion->setType($suggestionsDatum['type']);
if (isset($suggestionsDatum['title'])) {
$suggestion->setTitle($suggestionsDatum['title']);
}
$suggestions[] = $suggestion;
}
$transportAttachments = new TransportAttachments();
$transportAttachments->setSuggestions($suggestions);
$request = new MessageSendRequest();
$request->setChatId(28);
$request->setScope(Constants::MESSAGE_SCOPE_PUBLIC);
$request->setContent("Hello");
$request->setTransportAttachments($transportAttachments);
$response = $client->messageSend($request);
self::assertInstanceOf(MessageSendResponse::class, $response);
if ($response instanceof MessageSendResponse) {
self::assertTrue($response->isSuccessful());
self::assertCount(0, $response->getErrors());
self::assertEquals(3636, $response->getMessageId());
}
}
public function testMessageSendItems()
{
$client = self::getApiClient(
null,
null,
false,
$this->getResponse(
'{"message_id":4242,"time":"2019-06-24T06:02:04.434291791Z"}',
201
)
);
$item = new Item();
$item->setCaption('demo caption');
$item->setId('e33e5398-814a-47d6-902a-466ba120ce45');
$request = new MessageSendRequest();
$request->setChatId(28);
$request->setScope(Constants::MESSAGE_SCOPE_PUBLIC);
$request->setContent("Hello");
$request->setItems([$item]);
$request->setNote('demo note');
$response = $client->messageSend($request);
self::assertInstanceOf(MessageSendResponse::class, $response);
if ($response instanceof MessageSendResponse) {
self::assertTrue($response->isSuccessful());
self::assertCount(0, $response->getErrors());
self::assertEquals(4242, $response->getMessageId());
}
}
}

View file

@ -0,0 +1,57 @@
<?php
namespace RetailCrm\Mg\Bot\Tests\Model;
use PHPStan\Testing\TestCase;
use RetailCrm\Common\Serializer;
use RetailCrm\Mg\Bot\Model\Request\BotsRequest;
use RetailCrm\Mg\Bot\Model\Request\ChannelsRequest;
use RetailCrm\Mg\Bot\Model\Request\ChatsRequest;
use RetailCrm\Mg\Bot\Model\Request\CustomersRequest;
use RetailCrm\Mg\Bot\Model\Request\DialogsRequest;
use RetailCrm\Mg\Bot\Model\Request\MembersRequest;
use RetailCrm\Mg\Bot\Model\Request\UsersRequest;
class ListEntityRequestTest extends TestCase
{
private const LIMIT = 100;
public function testListRequestsWithLimit(): void
{
$expected = json_encode(['limit' => self::LIMIT]);
$request = new BotsRequest();
$request->setLimit(self::LIMIT);
self::assertEquals($expected, Serializer::serialize($request));
$request = new ChannelsRequest();
$request->setLimit(self::LIMIT);
self::assertEquals($expected, Serializer::serialize($request));
$request = new ChatsRequest();
$request->setLimit(self::LIMIT);
self::assertEquals($expected, Serializer::serialize($request));
$request = new CustomersRequest();
$request->setLimit(self::LIMIT);
self::assertEquals($expected, Serializer::serialize($request));
$request = new DialogsRequest();
$request->setLimit(self::LIMIT);
self::assertEquals($expected, Serializer::serialize($request));
$request = new MembersRequest();
$request->setLimit(self::LIMIT);
self::assertEquals($expected, Serializer::serialize($request));
$request = new UsersRequest();
$request->setLimit(self::LIMIT);
self::assertEquals($expected, Serializer::serialize($request));
}
}

Some files were not shown because too many files have changed in this diff Show more