defmodule ExCnab.Cnab240.Validator.Filename do
@moduledoc """
An implementation of chain of responsibility to validate the filename.
"""
@spec call(Map.t()) :: {:ok, Map.t()} | {:error, String.t()}
def call(attrs) do
{:ok, attrs}
end
# @possible_extensions ~w(.ret .rem .RET .REM .txt)
# defp validate_extension(attrs) do
# case attrs.formato_arquivo in @possible_extensions do
# true -> :ok
# false -> {:error, "Invalid extension"}
# end
# end
# @possible_days Enum.to_list(1..31)
# @possible_months ~w(1 2 3 4 5 6 7 8 9 O N D)
# defp validate_date(%{codigo_mes_geracao_arquivo: month, formato_arquivo: file_format} = attrs)
# when file_format in [".rem", ".REM"] do
# day = attrs.dia_geracao_arquivo |> String.to_integer()
# case month in @possible_months and day in @possible_days do
# true -> :ok
# false -> {:error, "Invalid day and month"}
# end
# end
# defp validate_date(%{formato_arquivo: file_format} = attrs)
# when file_format in [".rem", ".REM"] do
# case attrs.dia_geracao_arquivo in @possible_days do
# true -> :ok
# false -> {:error, "Invalid day"}
# end
# end
# defp validate_date(%{formato_arquivo: file_format} = attrs)
# when file_format in [".rem", ".REM"] do
# case attrs.dia_geracao_arquivo in @possible_days do
# true -> :ok
# false -> {:error, "Invalid day"}
# end
# end
# defp validate_date(_attrs), do: :ok
end