diff --git a/.gitignore b/.gitignore index 31c7257..b299ff1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ .tasks/ .agile/ +**/bin/ +**/obj/ diff --git a/BuildingBlock.OperationsConfig.slnx b/BuildingBlock.OperationsConfig.slnx new file mode 100644 index 0000000..a24c744 --- /dev/null +++ b/BuildingBlock.OperationsConfig.slnx @@ -0,0 +1,5 @@ + + + + + diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..4206439 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,10 @@ + + + AgileWebs + AgileWebs + git + http://192.168.68.156:3000/AgileWebs/building-block-operations-config + http://192.168.68.156:3000/AgileWebs/building-block-operations-config + false + + diff --git a/src/BuildingBlock.OperationsConfig.Contracts/Abstractions/IOperationsConfigCapabilityContract.cs b/src/BuildingBlock.OperationsConfig.Contracts/Abstractions/IOperationsConfigCapabilityContract.cs new file mode 100644 index 0000000..3939708 --- /dev/null +++ b/src/BuildingBlock.OperationsConfig.Contracts/Abstractions/IOperationsConfigCapabilityContract.cs @@ -0,0 +1,11 @@ +using BuildingBlock.OperationsConfig.Contracts.Requests; +using BuildingBlock.OperationsConfig.Contracts.Responses; + +namespace BuildingBlock.OperationsConfig.Contracts.Abstractions; + +public interface IOperationsConfigCapabilityContract +{ + Task GetEffectiveConfigAsync( + GetEffectiveOperationsConfigRequest request, + CancellationToken cancellationToken); +} diff --git a/src/BuildingBlock.OperationsConfig.Contracts/BuildingBlock.OperationsConfig.Contracts.csproj b/src/BuildingBlock.OperationsConfig.Contracts/BuildingBlock.OperationsConfig.Contracts.csproj new file mode 100644 index 0000000..b760144 --- /dev/null +++ b/src/BuildingBlock.OperationsConfig.Contracts/BuildingBlock.OperationsConfig.Contracts.csproj @@ -0,0 +1,9 @@ + + + + net10.0 + enable + enable + + + diff --git a/src/BuildingBlock.OperationsConfig.Contracts/Contracts/FeatureFlagContract.cs b/src/BuildingBlock.OperationsConfig.Contracts/Contracts/FeatureFlagContract.cs new file mode 100644 index 0000000..28d7473 --- /dev/null +++ b/src/BuildingBlock.OperationsConfig.Contracts/Contracts/FeatureFlagContract.cs @@ -0,0 +1,3 @@ +namespace BuildingBlock.OperationsConfig.Contracts.Contracts; + +public sealed record FeatureFlagContract(string Key, bool Enabled); diff --git a/src/BuildingBlock.OperationsConfig.Contracts/Contracts/ServiceWindowContract.cs b/src/BuildingBlock.OperationsConfig.Contracts/Contracts/ServiceWindowContract.cs new file mode 100644 index 0000000..8b3b32a --- /dev/null +++ b/src/BuildingBlock.OperationsConfig.Contracts/Contracts/ServiceWindowContract.cs @@ -0,0 +1,6 @@ +namespace BuildingBlock.OperationsConfig.Contracts.Contracts; + +public sealed record ServiceWindowContract( + DayOfWeek Day, + TimeOnly OpenAt, + TimeOnly CloseAt); diff --git a/src/BuildingBlock.OperationsConfig.Contracts/Requests/GetEffectiveOperationsConfigRequest.cs b/src/BuildingBlock.OperationsConfig.Contracts/Requests/GetEffectiveOperationsConfigRequest.cs new file mode 100644 index 0000000..e360c60 --- /dev/null +++ b/src/BuildingBlock.OperationsConfig.Contracts/Requests/GetEffectiveOperationsConfigRequest.cs @@ -0,0 +1,5 @@ +namespace BuildingBlock.OperationsConfig.Contracts.Requests; + +public sealed record GetEffectiveOperationsConfigRequest( + string LocationId, + DateTime EffectiveAtUtc); diff --git a/src/BuildingBlock.OperationsConfig.Contracts/Responses/GetEffectiveOperationsConfigResponse.cs b/src/BuildingBlock.OperationsConfig.Contracts/Responses/GetEffectiveOperationsConfigResponse.cs new file mode 100644 index 0000000..ca49c71 --- /dev/null +++ b/src/BuildingBlock.OperationsConfig.Contracts/Responses/GetEffectiveOperationsConfigResponse.cs @@ -0,0 +1,8 @@ +using BuildingBlock.OperationsConfig.Contracts.Contracts; + +namespace BuildingBlock.OperationsConfig.Contracts.Responses; + +public sealed record GetEffectiveOperationsConfigResponse( + string Version, + IReadOnlyCollection ServiceWindows, + IReadOnlyCollection FeatureFlags);