1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
AbstractJob.php
См. документацию.
1
<?php
2
3
declare(strict_types=1);
4
5
namespace
Bitrix\Socialnetwork\Collab\Onboarding\Entity
;
6
7
use
Bitrix\Main\Type\Contract\Arrayable
;
8
use
Bitrix\Main\Type\DateTime
;
9
use
Bitrix\Main\Validation\Rule\PositiveNumber
;
10
use
Bitrix\Socialnetwork\Collab\Onboarding\Execution\Result\JobResult
;
11
use
Bitrix\Socialnetwork\Collab\Onboarding\Internals\Type
;
12
use
Bitrix\Socialnetwork\Collab\Registry\CollabRegistry
;
13
14
abstract
class
AbstractJob
implements
Arrayable
15
{
16
#[PositiveNumber]
17
protected
int
$collabId
;
18
#[PositiveNumber]
19
protected
int
$userId
;
20
#[PositiveNumber]
21
protected
?
int
$id
;
22
23
protected
Type
$type
;
24
protected
?
DateTime
$createdDate
=
null
;
25
protected
DateTime
$nextExecution
;
26
27
protected
const
SECONDS_PER_DAY
= 60 * 60 * 24;
28
29
public
function
__construct
(
int
$collabId
,
int
$userId
)
30
{
31
$this->collabId =
$collabId
;
32
$this->userId =
$userId
;
33
$this->type = $this->
getType
();
34
$this->nextExecution = $this->
createNextExecutionDate
();
35
}
36
37
// Can be executed immediately upon the execution date.
38
// (Immediately) example: sending a system message
39
// (Not immediately) example: showing the aha-moment when a person enters the chat
40
abstract
public
function
isImmediatelyExecuted
(): bool;
41
abstract
public
function
getType
():
Type
;
42
abstract
protected
function
createNextExecutionDate
():
DateTime
;
43
44
public
function
__invoke
():
JobResult
45
{
46
return
new
JobResult
();
47
}
48
49
public
function
getId
(): ?int
50
{
51
return
$this->
id
??
null
;
52
}
53
54
public
function
getUserId
(): int
55
{
56
return
$this->userId
;
57
}
58
59
public
function
getChatId
(): ?int
60
{
61
$collab = CollabRegistry::getInstance()->get($this->collabId);
62
63
return
$collab?->getChatId();
64
}
65
66
public
function
getCollabId
(): int
67
{
68
return
$this->collabId
;
69
}
70
71
public
function
getCreatedDate
(): ?
DateTime
72
{
73
return
$this->createdDate
;
74
}
75
76
public
function
getNextExecution
():
DateTime
77
{
78
return
$this->nextExecution
;
79
}
80
81
public
function
setId
(
int
$id
): static
82
{
83
$this->
id
= $id;
84
85
return
$this;
86
}
87
88
public
function
setCreatedDate
(
DateTime
$createdDate
): static
89
{
90
$this->createdDate =
$createdDate
;
91
92
return
$this;
93
}
94
95
public
function
setNextExecution
(
DateTime
$nextExecution
): static
96
{
97
$this->nextExecution =
$nextExecution
;
98
99
return
$this;
100
}
101
102
public
function
toArray
():
array
103
{
104
return
[
105
'collabId'
=> $this->
getCollabId
(),
106
'userId'
=> $this->
getUserId
(),
107
'id'
=> $this->
getId
(),
108
'type'
=> $this->
getType
()->value,
109
'createdDate'
=> $this->
getCreatedDate
(),
110
'nextExecution'
=> $this->
getNextExecution
(),
111
];
112
}
113
}
Bitrix\Main\Type\DateTime
Определения
datetime.php:9
Bitrix\Main\Validation\Rule\PositiveNumber
Определения
PositiveNumber.php:13
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob
Определения
AbstractJob.php:15
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\getChatId
getChatId()
Определения
AbstractJob.php:59
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\getUserId
getUserId()
Определения
AbstractJob.php:54
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\getId
getId()
Определения
AbstractJob.php:49
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\isImmediatelyExecuted
isImmediatelyExecuted()
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\getCollabId
getCollabId()
Определения
AbstractJob.php:66
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\$id
int $id
Определения
AbstractJob.php:21
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\toArray
toArray()
Определения
AbstractJob.php:102
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\$userId
int $userId
Определения
AbstractJob.php:19
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\getType
getType()
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\$type
Type $type
Определения
AbstractJob.php:23
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\__invoke
__invoke()
Определения
AbstractJob.php:44
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\createNextExecutionDate
createNextExecutionDate()
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\setNextExecution
setNextExecution(DateTime $nextExecution)
Определения
AbstractJob.php:95
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\getCreatedDate
getCreatedDate()
Определения
AbstractJob.php:71
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\SECONDS_PER_DAY
const SECONDS_PER_DAY
Определения
AbstractJob.php:27
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\__construct
__construct(int $collabId, int $userId)
Определения
AbstractJob.php:29
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\setCreatedDate
setCreatedDate(DateTime $createdDate)
Определения
AbstractJob.php:88
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\$collabId
int $collabId
Определения
AbstractJob.php:17
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\getNextExecution
getNextExecution()
Определения
AbstractJob.php:76
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\$createdDate
DateTime $createdDate
Определения
AbstractJob.php:24
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\$nextExecution
DateTime $nextExecution
Определения
AbstractJob.php:25
Bitrix\Socialnetwork\Collab\Onboarding\Entity\AbstractJob\setId
setId(int $id)
Определения
AbstractJob.php:81
Bitrix\Socialnetwork\Collab\Onboarding\Execution\Result\JobResult
Определения
JobResult.php:10
Bitrix\Socialnetwork\Collab\Registry\CollabRegistry
Определения
CollabRegistry.php:14
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
Bitrix\Main\Type\Contract\Arrayable
Определения
arrayable.php:6
Bitrix\Socialnetwork\Collab\Onboarding\Entity\Type
Определения
CollaberNotAcceptInvitationOneDay.php:5
Bitrix\Socialnetwork\Collab\Onboarding\Entity
Определения
AbstractJob.php:5
Bitrix\Socialnetwork\Collab\Onboarding\Internals\Type
Type
Определения
Type.php:12
bitrix
modules
socialnetwork
lib
Collab
Onboarding
Entity
AbstractJob.php
Создано системой
1.14.0