defmodule Odinsea.Database.Schema.MountData do @moduledoc """ Ecto schema for the mountdata table. Represents mount levels and experience for characters. """ use Ecto.Schema import Ecto.Changeset @primary_key {:id, :id, autogenerate: true} schema "mountdata" do field :characterid, :integer field :level, :integer, default: 0, source: :Level field :exp, :integer, default: 0, source: :Exp field :fatigue, :integer, default: 0, source: :Fatigue belongs_to :character, Odinsea.Database.Schema.Character, foreign_key: :characterid, references: :id, define_field: false end @doc """ Changeset for creating/updating mount data. """ def changeset(mount_data, attrs) do mount_data |> cast(attrs, [:characterid, :level, :exp, :fatigue]) |> validate_required([:characterid]) |> unique_constraint(:characterid) end end