Packages

Package containing all AMI Models shared between micro-services.

Retired package: Deprecated - faulty

Current section

Files

Jump to
ami_models lib ami package_period.ex
Raw

lib/ami/package_period.ex

defmodule Ami.PackagePeriod do
use Ecto.Schema
import Ecto.Query
alias Ami.{
Package,
CoursePeriod,
Repo
}
schema "package_periods" do
field(:starts_on, :date)
field(:ends_on, :date)
field(:enrollment_end, :date)
field(:created_at, :utc_datetime)
field(:updated_at, :utc_datetime)
belongs_to(:package, Package)
has_many(:course_periods, CoursePeriod)
has_many(:courses, through: [:course_periods, :course])
end
def is_active?(package_period) do
Date.compare(package_period.starts_on, Date.utc_today()) in [:lt, :eq] &&
Date.compare(package_period.ends_on, Date.utc_today()) in [:gt, :eq]
end
def current_for(package) do
Repo.all(
from(
pp in __MODULE__,
where: pp.package_id == ^package.id,
where: pp.starts_on <= ^Date.utc_today() and pp.ends_on >= ^Date.utc_today(),
order_by: [asc: pp.starts_on]
)
)
|> List.first()
end
end