SubmitAnswer
in package
Use case for submitting an answer during review.
Updates word status and session progress.
Tags
Table of Contents
Properties
Methods
- __construct() : mixed
- Constructor.
- execute() : array{success: bool, oldStatus: int, newStatus: int, oldScore: int, newScore: int, statusChange: int, progress: array{total: int, wrong: int, correct: int, remaining: int}, error?: string}
- Submit answer with explicit new status.
- executeWithChange() : array<string|int, mixed>
- Submit answer with relative status change.
- calculateNewStatus() : int
- Calculate new status based on change direction.
- calculateStatusChange() : int
- Calculate status change direction.
- isValidStatus() : bool
- Check if status is valid.
- updateSessionProgress() : array{total: int, wrong: int, correct: int, remaining: int}
- Update session progress after answer.
Properties
$repository
private
ReviewRepositoryInterface
$repository
$sessionManager
private
SessionStateManager
$sessionManager
Methods
__construct()
Constructor.
public
__construct(ReviewRepositoryInterface $repository[, SessionStateManager|null $sessionManager = null ]) : mixed
Parameters
- $repository : ReviewRepositoryInterface
-
Review repository
- $sessionManager : SessionStateManager|null = null
-
Session manager (optional)
execute()
Submit answer with explicit new status.
public
execute(int $wordId, int $newStatus) : array{success: bool, oldStatus: int, newStatus: int, oldScore: int, newScore: int, statusChange: int, progress: array{total: int, wrong: int, correct: int, remaining: int}, error?: string}
Parameters
- $wordId : int
-
Word ID
- $newStatus : int
-
New status (1-5, 98, 99)
Return values
array{success: bool, oldStatus: int, newStatus: int, oldScore: int, newScore: int, statusChange: int, progress: array{total: int, wrong: int, correct: int, remaining: int}, error?: string}executeWithChange()
Submit answer with relative status change.
public
executeWithChange(int $wordId, int $change) : array<string|int, mixed>
Parameters
- $wordId : int
-
Word ID
- $change : int
-
Change amount (+1 or -1)
Return values
array<string|int, mixed> —Same as execute()
calculateNewStatus()
Calculate new status based on change direction.
private
calculateNewStatus(int $currentStatus, int $change) : int
Parameters
- $currentStatus : int
-
Current status
- $change : int
-
Change amount
Return values
int —New status
calculateStatusChange()
Calculate status change direction.
private
calculateStatusChange(int $oldStatus, int $newStatus) : int
Parameters
- $oldStatus : int
-
Old status
- $newStatus : int
-
New status
Return values
int —-1, 0, or 1
isValidStatus()
Check if status is valid.
private
isValidStatus(int $status) : bool
Parameters
- $status : int
-
Status value
Return values
boolupdateSessionProgress()
Update session progress after answer.
private
updateSessionProgress(int $statusChange) : array{total: int, wrong: int, correct: int, remaining: int}
Parameters
- $statusChange : int
-
Status change direction