# frozen_string_literal: true

module Api
  module V1
    class ResultAssetSerializer < ActiveModel::Serializer
      type :result_files
      attributes :file_id, :file_name, :file_size, :url

      def file_id
        object.asset&.id
      end

      def file_name
        object.asset&.file_file_name
      end

      def file_size
        object.asset&.file_file_size
      end

      def url
        if !object.asset&.file_present
          nil
        elsif object.asset&.file&.is_stored_on_s3?
          object.asset.presigned_url(download: true)
        else
          # TODO
          # separate api endpoint for local files download is needed
          'url'#download_asset_path(object.asset.id)
        end
      end
    end
  end
end