from typing import Dict
from typing import Union
from typing import List
import uuid
from datetime import datetime


def create_valid_passport_request_payload() -> Dict[str, Union[str, List[str]]]:
    """
    Create a test passport request message payload

    Uses the details for a test passport that a test DCS instance will accept as valid.
    """
    return { # This creates a JSON structure that the DCS can understand.
        "correlationId": str(uuid.uuid4()),
        "requestId": str(uuid.uuid4()),
        "timestamp": f"{datetime.utcnow().isoformat(timespec='milliseconds')}Z",
        "passportNumber": "824159121",
        "surname": "Watson",
        "forenames": ["Mary"],
        "dateOfBirth": "1932-02-25",
        "expiryDate": "2021-03-01",
    }