import datetime
import os
import random
import asyncio
import mail.utils as mail_utils
from dotenv import load_dotenv

load_dotenv()

MAIL_SERVER = os.getenv('MAIL_SERVER')
MAIL_USER = os.getenv('MAIL_USER')
MAIL_PASSWORD = os.getenv('MAIL_PASSWORD')


def n_days_prior_plenum(n):
    today = datetime.date.today()
    n_days = datetime.timedelta(days=n)
    future_date = today + n_days
    thursday = 3
    if 7 < future_date.day <= 14 and future_date.weekday() == thursday:
        return future_date


def get_important_message():
    important_message = [
        "die Revolution",
        "die Evolution",
        "die Bodylotion",
        "die Integration",
        "die Supervision",
        "die Automation",
        "die Definition",
        "die Zukunftsvision",
        "die Superlation"
    ]
    return random.choice(important_message)


async def main():
    plenum_date = n_days_prior_plenum(3)
    if plenum_date:
        smtp_connection = mail_utils.get_smtp_connection(MAIL_SERVER, MAIL_USER, MAIL_PASSWORD)
        mail_utils.send_plenum_message(smtp_connection,
                                       ['mitglieder@chaotikum.org',
                                        'talk@chaotikum.org'],
                                       plenum_date,
                                       MAIL_USER,
                                       f'Plenum am {plenum_date.isoformat()} um 19 Uhr',
                                       f'{MAIL_USER}@chaotikum.org',
                                       get_important_message())
        smtp_connection.quit()

if __name__ == "__main__":
    asyncio.run(main())