Bristol SU Support Package
src
Completion
Contracts
CompletionCondition.php
Go to the documentation of this file.
1
<?php
2
3
namespace
BristolSU\Support\Completion\Contracts
;
4
5
use
BristolSU\Support\ActivityInstance\ActivityInstance
;
6
use
BristolSU\Support\ModuleInstance\Contracts\ModuleInstance
;
7
use
FormSchema\Schema\Form
;
8
use
FormSchema\Transformers\VFGTransformer
;
9
use
Illuminate\Contracts\Support\Arrayable
;
10
use
Illuminate\Contracts\Support\Jsonable
;
11
15
abstract
class
CompletionCondition
implements
Arrayable, Jsonable
16
{
22
private
$moduleAlias
;
23
30
public
function
__construct
(
string
$moduleAlias
)
31
{
32
$this->
moduleAlias
=
$moduleAlias
;
33
}
34
40
public
function
moduleAlias
()
41
{
42
return
$this->moduleAlias
;
43
}
44
56
public
function
percentage
($settings,
ActivityInstance
$activityInstance,
ModuleInstance
$moduleInstance): int
57
{
58
if
($this->
isComplete
($settings, $activityInstance, $moduleInstance)) {
59
return
100;
60
}
61
return
0;
62
}
63
72
abstract
public
function
isComplete
($settings,
ActivityInstance
$activityInstance,
ModuleInstance
$moduleInstance): bool;
73
84
abstract
public
function
options
(): Form;
85
91
abstract
public
function
name
(): string;
92
98
abstract
public
function
description
(): string;
99
105
abstract
public
function
alias
(): string;
106
107
public
function
toJson
($options = 0)
108
{
109
return
json_encode($this->
toArray
(), $options);
110
}
111
112
public
function
toArray
()
113
{
114
return
[
115
'name'
=> $this->
name
(),
116
'description'
=> $this->
description
(),
117
'options'
=> (
new
VFGTransformer())->transformToArray($this->
options
()),
118
'alias'
=> $this->
alias
()
119
];
120
}
121
}
BristolSU\Support\Completion\Contracts\CompletionCondition\percentage
percentage($settings, ActivityInstance $activityInstance, ModuleInstance $moduleInstance)
Definition:
CompletionCondition.php:56
BristolSU\Support\Completion\Contracts
Definition:
CompletionCondition.php:3
BristolSU\Support\Completion\Contracts\CompletionCondition\description
description()
Form
Jsonable
BristolSU\Support\Completion\Contracts\CompletionCondition\toJson
toJson($options=0)
Definition:
CompletionCondition.php:107
BristolSU\Support\Completion\Contracts\CompletionCondition\options
options()
BristolSU\Support\Completion\Contracts\CompletionCondition
Definition:
CompletionCondition.php:15
Arrayable
BristolSU\Support\Completion\Contracts\CompletionCondition\toArray
toArray()
Definition:
CompletionCondition.php:112
BristolSU\Support\ActivityInstance\ActivityInstance
Definition:
ActivityInstance.php:20
BristolSU\Support\Completion\Contracts\CompletionCondition\$moduleAlias
$moduleAlias
Definition:
CompletionCondition.php:22
ActivityInstance
VFGTransformer
BristolSU\Support\Completion\Contracts\CompletionCondition\__construct
__construct(string $moduleAlias)
Definition:
CompletionCondition.php:30
BristolSU\Support\ModuleInstance\Contracts\ModuleInstance
Definition:
ModuleInstance.php:12
ModuleInstance
BristolSU\Support\Completion\Contracts\CompletionCondition\alias
alias()
BristolSU\Support\Completion\Contracts\CompletionCondition\moduleAlias
moduleAlias()
Definition:
CompletionCondition.php:40
BristolSU\Support\Completion\Contracts\CompletionCondition\isComplete
isComplete($settings, ActivityInstance $activityInstance, ModuleInstance $moduleInstance)
BristolSU\Support\Completion\Contracts\CompletionCondition\name
name()
Generated by
1.8.13