59 lines
1.8 KiB
Markdown
59 lines
1.8 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
**Svrnty.GeoManagement** is a .NET 8 library providing abstractions for geocoding and address management services. The solution follows a provider pattern to allow different geocoding service implementations.
|
|
|
|
## Solution Structure
|
|
|
|
The solution contains two projects:
|
|
|
|
- **Svrnty.GeoManagement.Abstractions**: Core abstractions and models for geocoding operations
|
|
- **Svrnty.GeoManagement.Tests**: xUnit test project
|
|
|
|
## Key Architecture Patterns
|
|
|
|
### Provider Pattern
|
|
The library uses the `IGeoManagementProvider` interface to abstract geocoding services. Implementations should provide:
|
|
- Forward geocoding (address to coordinates)
|
|
- Reverse geocoding (coordinates to address)
|
|
- Address normalization
|
|
|
|
### Address Model
|
|
The `Address` record in `Svrnty.GeoManagement.Abstractions/Models/Address.cs` is the central data structure. It:
|
|
- Implements `IAddress` interface
|
|
- Includes optional `GeoPoint` location data
|
|
- Provides formatted address output via `GetFormattedAddress()` method with three format types (Full, Compact, MultiLine)
|
|
- Has an `IsNormalized` flag to track address validation status
|
|
|
|
## Common Commands
|
|
|
|
### Build
|
|
```bash
|
|
dotnet build
|
|
```
|
|
|
|
### Run Tests
|
|
```bash
|
|
dotnet test
|
|
```
|
|
|
|
### Run Specific Test
|
|
```bash
|
|
dotnet test --filter "FullyQualifiedName~TestNamespace.TestClass.TestMethod"
|
|
```
|
|
|
|
### Restore Dependencies
|
|
```bash
|
|
dotnet restore
|
|
```
|
|
|
|
## Development Notes
|
|
|
|
- Target framework: .NET 8
|
|
- Nullable reference types are enabled
|
|
- The Abstractions project is designed to be provider-agnostic - don't add provider-specific dependencies
|
|
- When implementing `IGeoManagementProvider`, all methods support `CancellationToken` for async operations
|