{erl_opts, [debug_info, warnings_as_errors]}.

{minimum_otp_vsn, "27.0"}.

{deps, [
    {gun, "~> 2.1.0"},
    {opentelemetry_api, "~> 1.5.0"},
    {opentelemetry_api_experimental, "~> 0.5.0"},
    {telemetry, "~> 1.3.0"},
    {uuid, "~> 2.0.0", {pkg, uuid_erl}}
]}.

{profiles, [
    {test, [
        {deps, [
            {meck, "~> 1.0.0"},
            {eqwalizer_support,
                {git_subdir, "https://github.com/whatsapp/eqwalizer.git", {branch, "main"},
                    "eqwalizer_support"}}
        ]},
        {erl_opts, [{i, "test/include"}, {i, "test_replay/include"}]},
        {eunit_opts, [{sys_config, ["config/test.sys.config"]}]},
        {extra_src_dirs, [{"test", [{recursive, true}]}, {"test_replay", [{recursive, true}]}]},
        {eunit_tests, [{dir, "test"}, {dir, "test_replay"}]},
        {pre_hooks, [{eunit, "test/bin/temporal_namespace.sh"}]}
    ]}
]}.

{plugins, [rebar3_hex]}.

{project_plugins, [{rebar3_ex_doc, "~> 0.2.30"}]}.

{hex, [{doc, ex_doc}]}.

{ex_doc, [
    {main, temporal_sdk},
    {source_url, "https://github.com/andrzej-mag/temporal_sdk"},
    {formatters, ["html"]},
    {api_reference, false},
    {groups_for_modules, [
        {"Services", [
            temporal_sdk,
            temporal_sdk_batch,
            temporal_sdk_operator,
            temporal_sdk_schedule,
            temporal_sdk_service,
            temporal_sdk_versioning
        ]},
        {"Tasks", [
            temporal_sdk_activity,
            temporal_sdk_nexus,
            temporal_sdk_workflow
        ]},
        {"Operations", [
            temporal_sdk_cluster,
            temporal_sdk_limiter,
            temporal_sdk_node,
            temporal_sdk_worker
        ]},
        {"Telemetry", [
            temporal_sdk_telemetry,
            temporal_sdk_telemetry_logs,
            temporal_sdk_telemetry_metrics,
            temporal_sdk_telemetry_traces
        ]},
        {"API", [
            temporal_sdk_api,
            temporal_sdk_api_workflow_check,
            temporal_sdk_api_workflow_check_strict
        ]},
        {"gRPC protocol", [
            temporal_sdk_codec_payload,
            temporal_sdk_proto,
            temporal_sdk_proto_service_operator_binaries,
            temporal_sdk_proto_service_operator_strings,
            temporal_sdk_proto_service_workflow_binaries,
            temporal_sdk_proto_service_workflow_strings
        ]},
        {"gRPC client", [
            temporal_sdk_client,
            temporal_sdk_grpc,
            temporal_sdk_grpc_adapter,
            temporal_sdk_grpc_adapter_gun,
            temporal_sdk_grpc_adapter_gun_pool,
            temporal_sdk_grpc_codec,
            temporal_sdk_grpc_compressor,
            temporal_sdk_grpc_converter,
            temporal_sdk_grpc_interceptor
        ]}
    ]}
]}.
