## Summary Implement the D7 Networks SMS provider inside `src/SmsBridge/Providers/D7Networks/`. D7 Networks (Direct7 Networks) is a UAE-based global messaging platform with strong reach in the Middle East, Asia, and Africa. ## Files to create - `src/SmsBridge/Providers/D7Networks/D7NetworksSmsProvider.cs` - `src/SmsBridge/Providers/D7Networks/D7NetworksSmsRequestMapper.cs` - `src/SmsBridge/Providers/D7Networks/D7NetworksSmsResponseMapper.cs` - `src/SmsBridge/Options/D7NetworksOptions.cs` - Register `UseD7Networks()` in `src/SmsBridge/DependencyInjection/SmsBridgeProviderBuilder.cs` - Add `HttpClientNames.D7Networks` in `src/SmsBridge/Internal/Http/HttpClientNames.cs` - Add `SmsProviderType.D7Networks` to the enum ## D7 Networks API Details - Endpoint: `https://api.d7networks.com/messages/v1/send` - Auth: `Authorization: Bearer <api_token>` - Request (JSON): ```json { "messages": [{ "channel": "sms", "recipients": ["..."], "content": "...", "msg_type": "text", "data_coding": "text" }], "message_globals": { "originator": "..." } } ``` - Response: `{ "request_id": "...", "status": "pending" }` ## Options ```csharp public sealed class D7NetworksOptions { public required string ApiToken { get; init; } public required string From { get; init; } } ``` ## Tests to add - `tests/SmsBridge.ProviderTests/D7NetworksResponseMapperTests.cs` - `tests/SmsBridge.ProviderTests/D7NetworksProviderTests.cs` ## Acceptance Criteria - [ ] Provider sends via D7 Networks REST API using `IHttpClientFactory` - [ ] Response mapper maps `request_id` and `status` to `SmsSendResult` - [ ] Transient failures set `IsTransientFailure = true` - [ ] `UseD7Networks()` registers the provider in DI - [ ] All tests pass — `dotnet test` - [ ] `dotnet build` has 0 warnings
Activity