{% set is_async = generator.config.interface == 'asyncio' %}
{% set recursive_types = generator.config.recursive_type_depth == -1 %}

{% if is_async %}
    {% set maybe_await = 'await ' %}
    {% set maybe_async_def = 'async def ' %}
{% else %}
    {% set maybe_await = '' %}
    {% set maybe_async_def = 'def ' %}
{% endif %}


{% macro sleep(duration) -%}
{% if is_async %}
await asyncio.sleep({{ duration }})
{% else %}
time.sleep({{ duration }})
{% endif %}
{%- endmacro %}

{% set operations = {
    'create': 'mutation',
    'delete': 'mutation',
    'update': 'mutation',
    'upsert': 'mutation',
    'query_raw': 'mutation',
    'create_many': 'mutation',
    'execute_raw': 'mutation',
    'delete_many': 'mutation',
    'update_many': 'mutation',

    'count': 'query',
    'group_by': 'query',
    'find_many': 'query',
    'find_first': 'query',
    'find_unique': 'query',
}
%}

{% set methods = {
    'create': 'createOne',
    'delete': 'deleteOne',
    'update': 'updateOne',
    'upsert': 'upsertOne',
    'query_raw': 'queryRaw',
    'create_many': 'createMany',
    'execute_raw': 'executeRaw',
    'delete_many': 'deleteMany',
    'update_many': 'updateMany',

    'count': 'aggregate',
    'group_by': 'groupBy',
    'find_many': 'findMany',
    'find_first': 'findFirst',
    'find_unique': 'findUnique',
}
%}

{% set active_provider = datasources[0].active_provider %}
