using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Migrations; using foodmarket.Infrastructure.Persistence; #nullable disable namespace foodmarket.Infrastructure.Persistence.Migrations { /// Phase40 — весовой товар по реальному сценарию владельца (09.10): /// разбор весовых этикеток ВЫКЛ по умолчанию + формат короткого кода весового товара. /// /// /// WeightBarcodeEnabled DEFAULT false + существующие организации /// выключаем (фича была дефолт-on и ловила обычные коды как весовые). /// WeightedCodeFormat text DEFAULT 'short' («ean13» | «short»). /// WeightedCodePrefix integer DEFAULT 27. /// WeightedCodeDigits integer DEFAULT 5. /// /// Идемпотентно (IF NOT EXISTS / ALTER DEFAULT). [DbContext(typeof(AppDbContext))] [Migration("20261009120000_Phase40_WeightedCodeAndDefaults")] public partial class Phase40_WeightedCodeAndDefaults : Migration { protected override void Up(MigrationBuilder b) { b.Sql(@" ALTER TABLE public.organizations ALTER COLUMN ""WeightBarcodeEnabled"" SET DEFAULT false; -- Выключаем разбор этикеток у существующих организаций (фича была -- дефолт-on и принимала обычные/внутренние коды за весовые этикетки). UPDATE public.organizations SET ""WeightBarcodeEnabled"" = false; ALTER TABLE public.organizations ADD COLUMN IF NOT EXISTS ""WeightedCodeFormat"" text NOT NULL DEFAULT 'short'; ALTER TABLE public.organizations ADD COLUMN IF NOT EXISTS ""WeightedCodePrefix"" integer NOT NULL DEFAULT 27; ALTER TABLE public.organizations ADD COLUMN IF NOT EXISTS ""WeightedCodeDigits"" integer NOT NULL DEFAULT 5; "); } protected override void Down(MigrationBuilder b) { b.Sql(@" ALTER TABLE public.organizations ALTER COLUMN ""WeightBarcodeEnabled"" SET DEFAULT true; ALTER TABLE public.organizations DROP COLUMN IF EXISTS ""WeightedCodeFormat""; ALTER TABLE public.organizations DROP COLUMN IF EXISTS ""WeightedCodePrefix""; ALTER TABLE public.organizations DROP COLUMN IF EXISTS ""WeightedCodeDigits""; "); } } }