defmodule ExDav.Storage.Postgres.Schemas.Object do
@moduledoc "A single calendar resource (an event, todo, etc.)."
use Ecto.Schema
import Ecto.Changeset
alias ExDav.Storage.Postgres.Schemas.Calendar
schema "calendar_objects" do
field :name, :string
field :uid, :string
field :component, :string
field :ical, :string
field :etag, :string
field :version, :integer, default: 0
belongs_to :calendar, Calendar
timestamps(type: :utc_datetime)
end
def changeset(object, attrs) do
object
|> cast(attrs, [:name, :uid, :component, :ical, :etag, :version, :calendar_id])
|> validate_required([:name, :ical, :etag, :calendar_id])
|> unique_constraint([:calendar_id, :name])
end
end