namespace MossyUpdater.Services
{
    public class QuotesService : IQuotesService
    {
        private readonly string[] _quotes = new[]
        {
            "I don't run late. I glide fashionably through time.",
            "Time is a flat circle—and I'm still trying to find the starting point.",
            "Being on time is like spotting a unicorn: rare, beautiful, and definitely not me.",
            "Time zones are a social construct. I operate on instinct.",
            "Every time I try to be early, time responds with traffic.",
            "Time is an illusion. My ETA is performance art.",
            "I treat deadlines like speed limits: suggestions.",
            "I don't set alarms. I set vague intentions.",
            "If you want me to be on time, lie about when it starts.",
            "Why stress about time when you can just embrace chaos?",
            "My to-do list is a historical document.",
            "Time and I broke up. It was toxic.",
            "I'm not late. I'm temporally creative.",
            "'In five minutes' means something different in my language.",
            "I don't track time. I let it track me—poorly.",
            "Time management is easy. Just avoid doing anything.",
            "Time is fleeting. So is my attention span.",
            "I live in the moment. Just never the right one.",
            "Time doesn't control me. It just heavily inconveniences me.",
            "I'm a time optimist: always wrong, always hopeful.",
            "Punctuality is for people who don't trust spontaneity.",
            "My life is a series of missed trains and strong coffee.",
            "If time is a river, I'm definitely upstream without a paddle.",
            "I don't watch the clock. I avoid eye contact with it.",
            "'ASAP' means 'as soon as procrastination ends.'",
            "Early is suspicious. On time is impressive. Late is expected.",
            "Time management? I prefer time improvisation.",
            "I like to keep time on its toes. Mostly by ignoring it.",
            "Alarms are like plot twists. I didn't see it coming, and I still ignore it.",
            "If being late was a sport, I'd already have missed the medal ceremony.",
            "I don't lose track of time. I just pretend it doesn't exist.",
            "Watches are decorative lies.",
            "Time flies. I miss every flight.",
            "My planner is just a coloring book for stress.",
            "I'm not in a hurry. I'm in denial.",
            "I live in the now, just usually a little bit after everyone else.",
            "My calendar and I are estranged, but we're working on it.",
            "The early bird catches the worm. I order food later.",
            "Time moves fast. I move slower.",
            "I was going to be on time, but then I remembered who I am.",
            "I see '9:00 AM' and read it as 'guideline.'",
            "Every plan is a maybe with extra steps.",
            "I don't have time blindness—I just have time indifference.",
            "I'm not late. Reality is early.",
            "Time and I aren't speaking after what happened last Monday.",
            "Being on time is impressive. Being consistently late is a brand.",
            "I'm in sync with the universe—just in a different dimension.",
            "My sense of time is like my sock drawer: chaotic and mostly missing.",
            "Some people chase time. I let it wander off.",
            "I'm not running late. I'm setting the tone for a relaxed experience."
        };

        private int _currentIndex = 0;
        private readonly Random _random = new();

        public string GetRandomQuote()
        {
            var index = _random.Next(_quotes.Length);
            return $"\"{_quotes[index]}\" - Time According to Alex";
        }

        public string GetNextQuote()
        {
            var quote = $"\"{_quotes[_currentIndex]}\" - Time According to Alex";
            _currentIndex = (_currentIndex + 1) % _quotes.Length;
            return quote;
        }

        public IEnumerable<string> GetAllQuotes()
        {
            return _quotes.Select(q => $"\"{q}\" - Time According to Alex");
        }
    }
}