defmodule History.Trades.TradeHistoryChunk do
use Ecto.Schema
import Ecto.Changeset
alias History.Trades
schema "trade_history_chunks" do
field(:venue, :string)
field(:product, :string)
field(:start_at, :utc_datetime)
field(:end_at, :utc_datetime)
field(:status, History.ChunkStatusType)
belongs_to(:job, Trades.TradeHistoryJob)
timestamps()
end
@doc false
def changeset(chunk, attrs) do
chunk
|> cast(attrs, [:venue, :product, :start_at, :end_at, :status])
|> validate_required([:venue, :product, :start_at, :end_at, :status])
|> assoc_constraint(:job)
|> unique_constraint([:venue, :product, :job_id, :start_at, :end_at])
end
end