farmbot_os/farmbot_core/lib/farmbot_core/asset/fbos_config.ex

101 lines
2.7 KiB
Elixir

defmodule FarmbotCore.Asset.FbosConfig do
@moduledoc """
Farmbot's configuration database
"""
use FarmbotCore.Asset.Schema, path: "/api/fbos_config"
schema "fbos_configs" do
field(:id, :id)
has_one(:local_meta, FarmbotCore.Asset.Private.LocalMeta,
on_delete: :delete_all,
references: :local_id,
foreign_key: :asset_local_id
)
# firmware
field(:arduino_debug_messages, :boolean)
field(:firmware_input_log, :boolean)
field(:firmware_output_log, :boolean)
field(:firmware_debug_log, :boolean)
# No longer supported
field(:firmware_hardware, :string)
# stateful
field(:firmware_path, :string)
# auto_sync_channel
field(:auto_sync, :boolean)
# not used anymore
field(:beta_opt_in, :boolean)
# system
field(:disable_factory_reset, :boolean)
field(:network_not_found_timer, :integer)
field(:os_auto_update, :boolean)
field(:update_channel, :string)
# celeryscript
field(:sequence_body_log, :boolean)
field(:sequence_complete_log, :boolean)
field(:sequence_init_log, :boolean)
field(:boot_sequence_id, :id)
# private
field(:monitor, :boolean, default: true)
timestamps()
end
view fbos_config do
%{
id: fbos_config.id,
arduino_debug_messages: fbos_config.arduino_debug_messages,
auto_sync: fbos_config.auto_sync,
beta_opt_in: fbos_config.beta_opt_in,
disable_factory_reset: fbos_config.disable_factory_reset,
firmware_hardware: fbos_config.firmware_hardware,
firmware_path: fbos_config.firmware_path,
firmware_input_log: fbos_config.firmware_input_log,
firmware_output_log: fbos_config.firmware_output_log,
firmware_debug_log: fbos_config.firmware_debug_log,
network_not_found_timer: fbos_config.network_not_found_timer,
os_auto_update: fbos_config.os_auto_update,
update_channel: fbos_config.update_channel,
sequence_body_log: fbos_config.sequence_body_log,
sequence_complete_log: fbos_config.sequence_complete_log,
sequence_init_log: fbos_config.sequence_init_log,
boot_sequence_id: fbos_config.boot_sequence_id
}
end
def changeset(fbos_config, params \\ %{}) do
fbos_config
|> cast(params, [
:id,
:arduino_debug_messages,
:auto_sync,
:beta_opt_in,
:disable_factory_reset,
:firmware_hardware,
:firmware_path,
:firmware_input_log,
:firmware_output_log,
:firmware_debug_log,
:network_not_found_timer,
:os_auto_update,
:update_channel,
:sequence_body_log,
:sequence_complete_log,
:sequence_init_log,
:boot_sequence_id,
:monitor,
:created_at,
:updated_at
])
|> validate_required([])
end
end