% for import_ in imports:
${import_}
% endfor

% for model in models:
${model}
% endfor

async def ${function_name}(connection: Connection, timeout: timedelta | None = None) -> ${model_name} | None:
    query = """
    ${query}
"""
    record = await connection.fetchrow(query, timeout=timeout.total_seconds() if timeout is not None else None)
    if record is None:
        return None
    return convert_record_to_pydantic_model(record=record, pydantic_model_type=${model_name})
