/** * @param TodoId $todoId * @param TodoStatus $status * @return TodoWasMarkedAsDone */ public static function withStatus(TodoId $todoId, TodoStatus $status) { $event = self::occur($todoId->toString(), ['status' => $status->toString()]); $event->todoId = $todoId; $event->status = $status; return $event; }
/** * @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 TodoId $todoId * @param TodoStatus $oldStatus * @param TodoStatus $newStatus * @return TodoWasMarkedAsDone */ public static function fromStatus(TodoId $todoId, TodoStatus $oldStatus, TodoStatus $newStatus) { $event = self::occur($todoId->toString(), ['old_status' => $oldStatus->toString(), 'new_status' => $newStatus->toString()]); $event->todoId = $todoId; $event->oldStatus = $oldStatus; $event->newStatus = $newStatus; return $event; }
/** * @param TodoStatus $status * @return TodoNotOpen */ public static function triedToExpire(TodoStatus $status, Todo $todo) { return new self(sprintf('Tried to expire todo with status %s.', $status->toString())); }
/** * @param TodoReminder $reminder * @param TodoStatus $status * @return TodoNotOpen */ public static function triedToAddReminder(TodoReminder $reminder, TodoStatus $status) { return new self(sprintf('Tried to reminder %s to a todo with status %s.', $reminder->toString(), $status->toString())); }
/** * @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())); }
/** * @param TodoDeadline $deadline * @param TodoStatus $status * @return TodoNotOpen */ public static function triedToAddDeadline(TodoDeadline $deadline, TodoStatus $status) { return new self(sprintf('Tried to deadline %s to a todo with status %s.', $deadline->toString(), $status->toString())); }