```python
from collections import deque
from typing import Optional

class JobQueue:
    def __init__(self):
        self._queue = deque()
        self._results = {}
        self._status = {}

    def add_job(self, job_id: str, data: dict) -> str:
        self._queue.append(job_id)
        self._status[job_id] = "pending"
        self._results[job_id] = None
        return job_id

    def get_result(self, job_id: str) -> Optional[dict]:
        if job_id in self._status and self._status[job_id] == "completed":
            return self._results.get(job_id)
        return None

    def complete_job(self, job_id: str, result: dict):
        if job_id in self._status:
            self._status[job_id] = "completed"
            self._results[job_id] = result
```