- Additive migration: Gerbil.RawImportData + Litter.PairingCode (Zuchtnummer der Verpaarung). - ImportService consumes tools/import/output (animals.json + litters.json): litters first (authoritative), then conflict-free animals with a DOB; high-confidence (hoch) litter links set LitterId, date-only/ambiguous links quarantined; conflicts + stubs never loaded. Genotype mapped8locus -> frozen compact string; rawGenotype+unmappedTokens preserved in RawImportData; Farbschlag matched to ColorVariety; gender inferred from litter role; provenance ImportSource/ExternalRef; idempotent (ExternalRef / Name+Date). Photos copied to store. - ImportEndpoints: POST /import/dry-run (no writes, Julian-readable report) + /import/execute (gated).
39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
namespace GerbilManagerWebAPI.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class AddImportProvenanceFields : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "PairingCode",
|
|
table: "Litters",
|
|
type: "text",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<string>(
|
|
name: "RawImportData",
|
|
table: "Gerbils",
|
|
type: "text",
|
|
nullable: true);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropColumn(
|
|
name: "PairingCode",
|
|
table: "Litters");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "RawImportData",
|
|
table: "Gerbils");
|
|
}
|
|
}
|
|
}
|