PhoenixKit.Modules.Publishing.PublishingPost (PhoenixKitPublishing v0.1.6)

Copy Markdown View Source

Schema for publishing posts within a group.

Posts are a minimal routing shell — they hold the URL identity (slug or date/time) and point to the currently live version via active_version_uuid.

Each post belongs to a group and has versions with per-language content. Supports both slug-mode and timestamp-mode URL structures.

Publishing

A post is published when active_version_uuid is set (points to a published version). It is unpublished when active_version_uuid is nil.

Soft Delete

Posts use trashed_at (timestamp) for soft delete instead of a status field. trashed_at being nil means the post is active.

Summary

Functions

Changeset for creating or updating a publishing post.

Check if post is a draft (not published and not trashed).

Check if post is published (has an active version).

Check if post is trashed.

Types

t()

@type t() :: %PhoenixKit.Modules.Publishing.PublishingPost{
  __meta__: term(),
  active_version: term(),
  active_version_uuid: UUIDv7.t() | nil,
  created_by: term(),
  created_by_uuid: UUIDv7.t() | nil,
  group: term(),
  group_uuid: UUIDv7.t(),
  inserted_at: DateTime.t() | nil,
  mode: String.t(),
  post_date: Date.t() | nil,
  post_time: Time.t() | nil,
  slug: String.t(),
  trashed_at: DateTime.t() | nil,
  updated_at: DateTime.t() | nil,
  updated_by: term(),
  updated_by_uuid: UUIDv7.t() | nil,
  uuid: UUIDv7.t() | nil,
  versions: term()
}

Functions

changeset(post, attrs)

Changeset for creating or updating a publishing post.

draft?(post)

Check if post is a draft (not published and not trashed).

published?(arg1)

Check if post is published (has an active version).

trashed?(arg1)

Check if post is trashed.