Packages
messenger_bot_store
0.0.5
0.1.0
0.1.0-beta9
retired
0.1.0-beta8
retired
0.1.0-beta7
retired
0.1.0-beta6
retired
0.1.0-beta5
retired
0.1.0-beta4
retired
0.1.0-beta3
retired
0.1.0-beta2
retired
0.1.0-beta1
retired
0.0.11
retired
0.0.10
retired
0.0.9
retired
0.0.8
retired
0.0.7
retired
0.0.6
retired
0.0.5
retired
0.0.4
retired
0.0.3
retired
0.0.2
retired
0.0.1
retired
MessengerBot event storage addon for PostgreSQL
Retired package: Deprecated
Current section
Files
Jump to
Current section
Files
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