defmodule Core.Syndication.BlueskyAccount do
  import Ecto.Changeset

  def create_changeset(%Schema.BlueskyAccount{} = bluesky_account, attrs) do
    bluesky_account
    |> cast(attrs, [
      :handle,
      :did,
      :access_jwt,
      :access_jwt_iat,
      :access_jwt_exp,
      :refresh_jwt,
      :refresh_jwt_iat,
      :refresh_jwt_exp
    ])
    |> validate_required([
      :handle,
      :did,
      :access_jwt,
      :access_jwt_iat,
      :access_jwt_exp,
      :refresh_jwt,
      :refresh_jwt_iat,
      :refresh_jwt_exp
    ])
  end

  def refresh_changeset(%Schema.BlueskyAccount{} = bluesky_account, attrs) do
    bluesky_account
    |> cast(attrs, [
      :access_jwt,
      :access_jwt_iat,
      :access_jwt_exp,
      :refresh_jwt,
      :refresh_jwt_iat,
      :refresh_jwt_exp
    ])
    |> validate_required([
      :access_jwt,
      :access_jwt_iat,
      :access_jwt_exp,
      :refresh_jwt,
      :refresh_jwt_iat,
      :refresh_jwt_exp
    ])
  end
end