<?php

declare(strict_types=1);

namespace App\Enum;

/**
 * Selection strategy for the next image to serve to a device. The chosen mode
 * runs *after* the uniqueness-window filter (don't repeat the last N) and
 * *after* the optional "prioritize never-shown" narrowing — so it only ever
 * sees the surviving candidate set.
 */
enum RotationMode: string
{
    /** Uniform random pick from the candidates. */
    case Random = 'random';

    /** Image with the oldest most-recent served-at timestamp first; never-shown sorts first. */
    case LeastRecentlyShown = 'least_recently_shown';

    /** Sort by upload time ascending — oldest photo first. The legacy default. */
    case OldestUpload = 'oldest_upload';

    /** Sort by upload time descending — newest photo first. */
    case NewestUpload = 'newest_upload';
}
