defmodule DaProductApp.Transactions.TransactionOperation do use Ecto.Schema import Ecto.Changeset @primary_key {:id, :id, autogenerate: true} schema "transaction_operations" do field :operation_request_id, :string field :transaction_id, :string field :operation_type, :string field :operation_status, :string field :operation_amount, :decimal field :operation_currency, :string field :operation_date, :utc_datetime field :metadata, :map belongs_to :transaction, DaProductApp.Transactions.Transaction, foreign_key: :transaction_id, type: :string, define_field: false timestamps(type: :utc_datetime) end @doc false def changeset(transaction_operation, attrs) do transaction_operation |> cast(attrs, [ :operation_request_id, :transaction_id, :operation_type, :operation_status, :operation_amount, :operation_currency, :operation_date, :metadata ]) |> validate_required([ :operation_request_id, :transaction_id, :operation_type, :operation_status ]) |> unique_constraint(:operation_request_id) end end