defmodule DaProductApp.Repo.Migrations.CreateDumpFiles do use Ecto.Migration @moduledoc """ Tracks uploaded Switch/QR scheme dump files (Base II files from YSP). Each daily reconciliation run is anchored to one or more dump_files entries. """ def change do create table(:dump_files) do add :filename, :string, size: 255, null: false add :source, :string, size: 20, null: false, comment: "SWITCH | QR_SCHEME" add :dump_date, :date, null: false, comment: "The settlement date this file covers" add :file_path, :string, size: 500 add :file_size_bytes, :bigint add :total_records, :integer add :status, :string, size: 20, null: false, default: "uploaded", comment: "uploaded | processing | processed | failed" add :processed_at, :naive_datetime add :processing_error, :text add :uploaded_by, :bigint, comment: "users.id" add :inserted_at, :naive_datetime, null: false add :updated_at, :naive_datetime, null: false end create index(:dump_files, [:dump_date]) create index(:dump_files, [:source, :dump_date]) create index(:dump_files, [:status]) create unique_index(:dump_files, [:filename], name: :dump_files_filename_unique) end end