From cc5b7595313f0706a719c2d6f281d0c1f5667e27 Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Sun, 10 Mar 2024 16:21:49 -0700 Subject: [PATCH] Added new uploaded_at column to media items --- .iex.exs | 5 +++++ lib/pinchflat/media/media_item.ex | 13 ++++++++++++- ...0240310230713_add_uploaded_at_to_media_items.exs | 11 +++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 priv/repo/migrations/20240310230713_add_uploaded_at_to_media_items.exs diff --git a/.iex.exs b/.iex.exs index 8a0ac79..bf39442 100644 --- a/.iex.exs +++ b/.iex.exs @@ -1,3 +1,4 @@ +import Ecto.Query, warn: false alias Pinchflat.Repo alias Pinchflat.Tasks.Task @@ -35,6 +36,10 @@ defmodule IexHelpers do "https://www.youtube.com/watch?v=bR52O78ZIUw" end + def last_media_item do + Repo.one(from m in MediaItem, limit: 1) + end + def details(type) do source = case type do diff --git a/lib/pinchflat/media/media_item.ex b/lib/pinchflat/media/media_item.ex index cd91812..1c3e092 100644 --- a/lib/pinchflat/media/media_item.ex +++ b/lib/pinchflat/media/media_item.ex @@ -20,6 +20,7 @@ defmodule Pinchflat.Media.MediaItem do :livestream, :source_id, :short_form_content, + :uploaded_at, # these fields are captured only on download :media_downloaded_at, :media_filepath, @@ -28,7 +29,16 @@ defmodule Pinchflat.Media.MediaItem do :thumbnail_filepath, :metadata_filepath ] - @required_fields ~w(title original_url livestream media_id source_id short_form_content)a + # Pretty much all the fields captured at index are required. + @required_fields ~w( + title + original_url + livestream + media_id + source_id + uploaded_at + short_form_content + )a schema "media_items" do field :title, :string @@ -38,6 +48,7 @@ defmodule Pinchflat.Media.MediaItem do field :livestream, :boolean, default: false field :short_form_content, :boolean, default: false field :media_downloaded_at, :utc_datetime + field :uploaded_at, :utc_datetime field :media_filepath, :string field :media_size_bytes, :integer diff --git a/priv/repo/migrations/20240310230713_add_uploaded_at_to_media_items.exs b/priv/repo/migrations/20240310230713_add_uploaded_at_to_media_items.exs new file mode 100644 index 0000000..95a4297 --- /dev/null +++ b/priv/repo/migrations/20240310230713_add_uploaded_at_to_media_items.exs @@ -0,0 +1,11 @@ +defmodule Pinchflat.Repo.Migrations.AddUploadedAtToMediaItems do + use Ecto.Migration + + def change do + alter table(:media_items) do + # Setting default to unix epoch so I can enforce not null BUT also easily + # identify records that were created before this column was added + add :uploaded_at, :utc_datetime, default: "1970-01-01T00:00:00", null: false + end + end +end