659 B · text 5af55d9
defmodule GitGud.Packages.Package do
use Ecto.Schema
import Ecto.Changeset
alias GitGud.Packages.PackageVersion
alias GitGud.Repositories.Repository
schema "packages" do
field :kind, :string, default: "container"
field :name, :string
field :latest_version, :string
belongs_to :repository, Repository
has_many :versions, PackageVersion
timestamps(type: :utc_datetime)
end
def changeset(package, attrs) do
package
|> cast(attrs, [:kind, :name, :latest_version])
|> validate_required([:kind, :name])
|> validate_length(:name, max: 200)
|> unique_constraint([:repository_id, :kind, :name])
end
end