defmodule GitGud.Packages.PackageVersion do
use Ecto.Schema
import Ecto.Changeset
alias GitGud.Accounts.User
alias GitGud.Packages.Package
schema "package_versions" do
field :version, :string
field :digest, :string
field :size, :integer, default: 0
field :media_type, :string
field :manifest_doc, :map
field :pushed_at, :utc_datetime
belongs_to :package, Package
belongs_to :pusher, User
timestamps(type: :utc_datetime)
end
def changeset(version, attrs) do
version
|> cast(attrs, [:version, :digest, :size, :media_type, :manifest_doc, :pushed_at])
|> validate_required([:version, :digest])
|> validate_length(:version, max: 200)
|> validate_length(:digest, max: 100)
|> unique_constraint([:package_id, :version])
end
end
802 B · text
5af55d9