defmodule Odinsea.Database.Schema.Keymap do @moduledoc """ Ecto schema for the keymap table. Represents key bindings for characters. """ use Ecto.Schema import Ecto.Changeset @primary_key {:id, :id, autogenerate: true} schema "keymap" do field :characterid, :integer, default: 0 field :key, :integer, default: 0 field :type, :integer, default: 0 field :action, :integer, default: 0 belongs_to :character, Odinsea.Database.Schema.Character, foreign_key: :characterid, references: :id, define_field: false end @doc """ Changeset for creating/updating a keymap entry. """ def changeset(keymap, attrs) do keymap |> cast(attrs, [:characterid, :key, :type, :action]) |> validate_required([:characterid, :key, :type, :action]) end end