Current section

Files

Jump to
messenger_bot_store lib messenger_bot_store model conversation.ex
Raw

lib/messenger_bot_store/model/conversation.ex

defmodule MessengerBotStore.Model.Conversation do
@moduledoc """
Conversation Model
"""
use Ecto.Schema
import Ecto.Changeset
alias MessengerBotStore.Model.Conversation
@primary_key {:id, :binary_id, autogenerate: true}
@foreign_key_type :binary_id
schema "messenger_conversations" do
field :mid, :string
field :app_id, :integer
field :category, :string
field :delivered_at, :naive_datetime
field :page_id, :integer
field :payload_action, :string
field :payload_content, :map
field :read_at, :naive_datetime
field :received_at, :naive_datetime
field :user_id, :integer
end
@doc false
def changeset(%Conversation{} = conversation, %{app_id: app_id,
page_id: page_id, user_id: user_id} = attrs) when not is_nil(app_id)
and not is_nil(page_id) and not is_nil(user_id) do
app_id = String.to_integer("#{app_id}")
page_id = String.to_integer("#{page_id}")
user_id = String.to_integer("#{user_id}")
attrs = Map.merge(attrs, %{app_id: app_id, page_id: page_id,
user_id: user_id})
conversation
|> cast(attrs, [:mid, :app_id, :page_id, :user_id, :received_at,
:delivered_at, :read_at, :category, :payload_content, :payload_action])
|> validate_required([:mid, :app_id, :page_id, :user_id])
end
def changeset(%Conversation{} = conversation, attrs) do
conversation
|> cast(attrs, [:mid, :app_id, :page_id, :user_id, :received_at,
:delivered_at, :read_at, :category, :payload_content, :payload_action])
|> validate_required([:mid, :app_id, :page_id, :user_id])
end
end