/** * @param UserId $assigneeId * @param string $text * @param TodoId $todoId * @param TodoStatus $todoStatus * @return TodoWasPosted */ public static function byUser(UserId $assigneeId, $text, TodoId $todoId, TodoStatus $todoStatus) { $event = self::occur($todoId->toString(), ['assignee_id' => $assigneeId->toString(), 'text' => $text, 'status' => $todoStatus->toString()]); $event->todoId = $todoId; $event->assigneeId = $assigneeId; $event->todoStatus = $todoStatus; return $event; }
/** * @param TodoStatus $status * @param Todo $todo * @return TodoAlreadyDone */ public static function triedStatus(TodoStatus $status, Todo $todo) { return new self(sprintf('Tried to change status of Todo %s to %s. But Todo is already marked as done!', $todo->todoId()->toString(), $status->toString())); }