using Backend.Domain;

namespace Backend.Common;

public static class ShowactApplicationSchedule
{
    public static string? Validate(DateOnly? startsAt, DateOnly? endsAt)
    {
        if (startsAt.HasValue && endsAt.HasValue && startsAt.Value > endsAt.Value)
        {
            return "Der Showact-Zeitraum ist ungueltig. Der Start darf nicht nach der Deadline liegen.";
        }

        return null;
    }

    public static bool IsOpenNow(SiteSettings settings, DateOnly today)
    {
        if (!settings.ShowactApplicationsEnabled)
        {
            return false;
        }

        if (settings.ShowactApplicationStartsAt.HasValue && today < settings.ShowactApplicationStartsAt.Value)
        {
            return false;
        }

        if (settings.ShowactApplicationEndsAt.HasValue && today > settings.ShowactApplicationEndsAt.Value)
        {
            return false;
        }

        return true;
    }
}
