lib/spatio/model/slide_element.ex

# NOTE: This file is auto generated by OpenAPI Generator 7.22.0 (https://openapi-generator.tech).
# Do not edit this file manually.

defmodule Spatio.Model.SlideElement do
  @moduledoc """
  One canvas object on a slide — text box, shape, image, etc. `content` is renderer-specific JSON (e.g. fabric.js properties: text, fill, fontSize, src). Identified by a stable `id` so MCP / agent operations stay idempotent across retries. 
  """

  @derive JSON.Encoder
  defstruct [
    :id,
    :slideId,
    :elementType,
    :content,
    :x,
    :y,
    :width,
    :height,
    :rotation,
    :zIndex,
    :createdAt,
    :updatedAt
  ]

  @type t :: %__MODULE__{
    :id => String.t,
    :slideId => String.t,
    :elementType => String.t,
    :content => %{optional(String.t) => any()},
    :x => float(),
    :y => float(),
    :width => float(),
    :height => float(),
    :rotation => float(),
    :zIndex => integer(),
    :createdAt => DateTime.t,
    :updatedAt => DateTime.t
  }

  def decode(value) do
    value
  end
end