Доступные DTO для оффлайн-кассы (food-market.pos): • ProductSyncDto/PriceSyncDto/StockSyncDto/CounterpartySyncDto — выгрузка изменений для последующей пробивки; • PosSyncResponse — конверт всего sync-ответа с ServerTime (reference time против клок-дрейфа кассы) и DeletedProductIds; • PosSaleDto/PosSaleLineDto/PosSaleBatchDto — батч продаж от кассы. PosSaleBatchDto несёт IdempotencyKey + каждая продажа имеет ClientSaleId (двойная идемпотентность); • PosSaleBatchResponse — Accepted/Failed + ReplayedFromCache флаг. Версионирование на уровне namespace — для v2 будет рядом без breaking changes. Required-поля везде where applicable: компилятор обяжет заполнить новые обязательные поля при появлении v1.X добавок. Тесты: 3 unit на сериализационный round-trip (компиляция падёт при удалении любого поля контракта — это и есть тест public API). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
32 lines
1.3 KiB
XML
32 lines
1.3 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net8.0</TargetFramework>
|
|
<RootNamespace>foodmarket.UnitTests</RootNamespace>
|
|
<AssemblyName>foodmarket.UnitTests</AssemblyName>
|
|
<Nullable>enable</Nullable>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<IsPackable>false</IsPackable>
|
|
<IsTestProject>true</IsTestProject>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\src\food-market.domain\food-market.domain.csproj" />
|
|
<ProjectReference Include="..\..\src\food-market.application\food-market.application.csproj" />
|
|
<ProjectReference Include="..\..\src\food-market.infrastructure\food-market.infrastructure.csproj" />
|
|
<ProjectReference Include="..\..\src\food-market.api\food-market.api.csproj" />
|
|
<ProjectReference Include="..\..\src\food-market.shared\food-market.shared.csproj" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Microsoft.NET.Test.Sdk" />
|
|
<PackageReference Include="xunit" />
|
|
<PackageReference Include="xunit.runner.visualstudio" />
|
|
<PackageReference Include="FluentAssertions" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" />
|
|
<PackageReference Include="coverlet.collector" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|