# AI_TASKS.md Quick task cookbook for common changes in this repo. ## Add a new API endpoint group 1) Create `Freman.Sample.Web/Endpoints/Endpoints.cs` 2) Add an extension method: - `public static IEndpointRouteBuilder MapEndpoints(this IEndpointRouteBuilder app)` 3) Call it from `Freman.Sample.Web/Program.cs`: - `app.MapEndpoints();` ## Add a new Client page that calls the API 1) Create page in `Freman.Sample.Web.Client/Pages/.razor` 2) Ensure it runs as WASM and avoids server prerender DI issues: - `@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false))` 3) Inject `HttpClient`: - `@inject HttpClient Http` 4) Call server endpoints under `/api/*` ## Add shared request/response models 1) Add to `Freman.Sample.Web.Contracts` 2) Reference contracts project from Server + Client 3) Use contracts types in endpoints + client code (avoid duplicates) ## Add an EF Core migration From solution root: ``` powershell dotnet tool restore dotnet tool run dotnet-ef -- migrations add --project .\Freman.Sample.Web\Freman.Sample.Web\Freman.Sample.Web.csproj --startup-project .\Freman.Sample.Web\Freman.Sample.Web\Freman.Sample.Web.csproj ` --output-dir Data\Migrations ``` ## Apply migrations manually (optional) ``` powershell dotnet tool run dotnet-ef -- database update --project .\Freman.Sample.Web\Freman.Sample.Web\Freman.Sample.Web.csproj --startup-project .\Freman.Sample.Web\Freman.Sample.Web\Freman.Sample.Web.csproj ``` ## Add a confirmation step in the client Use `Freman.Sample.Web.Client/Components/ConfirmModal.razor` and call: - `await _confirmModal.ShowAsync("Title", "Message")`