"""
Django settings for fnpss project.

Generated by 'django-admin startproject' using Django 5.1.6.

For more information on this file, see
https://docs.djangoproject.com/en/5.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.1/ref/settings/
"""

from pathlib import Path
import os, sys
import tempfile
from django.urls import reverse_lazy

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-9ulcq^6@d+9ki#n(x%v7%g7f$uvoo1zhea&96qw*=m-(07we7m'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['fnpss.org','www.fnpss.org', '52.194.188.208']

if 'test' in sys.argv:
    MEDIA_ROOT = tempfile.mkdtemp()

# Application definition

INSTALLED_APPS = [
    "allauth",
    "allauth.account",
    "paypal.standard.ipn",

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'crispy_forms',
    'crispy_bootstrap5',
    'src',

    #"donations.apps.DonationsConfig",
    "django.contrib.humanize",
    "widget_tweaks",
    "djstripe",
]

ACCOUNT_LOGOUT_ON_GET = True
LOGOUT_REDIRECT_URL = reverse_lazy('home-page')
LOGOUT_REDIRECT_URL = '/'
CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
CRISPY_TEMPLATE_PACK = "bootstrap5"

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    "allauth.account.middleware.AccountMiddleware",
]

ROOT_URLCONF = 'fnps.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'fnps.wsgi.application'


# Database
# https://docs.djangoproject.com/en/5.1/ref/settings/#databases

DATABASES = {
   'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'fnpss',
        'USER': 'root',
        'PASSWORD': 'Fnpss0126',
        'HOST': 'localhost',
        'PORT': '',
    }
}


# Password validation
# https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/5.1/topics/i18n/

#LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_TZ = True

LANGUAGE_CODE = 'fr'
LANGUAGES = [
    ('fr', 'Français'),
    ('en', 'English'),
    ('de', 'Deutsch'),
    ('ja', 'Japanese'),
    ('ar', 'Arabic'),
    ('zh-cn', 'Chinese'),
    ('ar', 'Arabic'),
    ('ru', 'Russian'),

    ]


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.1/howto/static-files/

STATIC_URL = 'static/'

# Default primary key field type
# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

AUTH_USER_MODEL = 'src.UserAccount'

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')



#personnel config
#EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
#EMAIL_HOST = 'smtp.mail.eu-west-1.awsapps.com'  # Tokyo region
#EMAIL_PORT = 587
#EMAIL_USE_TLS = True
#EMAIL_HOST_USER = 'tokyo.system@fnpss.org' # 'AKIAWNHTHM5ZZ7AXJVO6'
#EMAIL_HOST_PASSWORD = 'Tokyofn0125'  # BF1jI4iPpHROdTUu7zOjeigNf8ICKDzQfPuShb00tx1o
#DEFAULT_FROM_EMAIL = 'tokyo.system@fnpss.org'


# Gmail / Google Workspace SMTP settings
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.mailgun.org"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'fnpss012525@fnpss.org'
EMAIL_HOST_PASSWORD = "8f01fb69360008602b851ac637d96de2-77c6c375-26df00cc"
DEFAULT_FROM_EMAIL = 'INFO FNPSS <info@fnpss.org>'

PAYPAL_CLIENT_ID=""
PAYPAL_CLIENT_SECRET=""

PAYPAL_TEST = True  # Set to False in production
PAYPAL_RECEIVER_EMAIL = 'ludakyabu2000-facilitator@gmail.com'

FLUTTERWAVE_PUBLIC_KEY=""
FLUTTERWAVE_SECRET_KEY=""

#CINETPAY_API_KEY =""
#CINETPAY_SITE_ID =""

STRIPE_PUBLIC_KEY = "pk_test_51JFxmyEJe6BMIZQNmubKmctzMDyplqZF6Dcrmoz6Y97BLN2NUQWPLBucD8ipIH86T28c2ecPAUBnE7rqLWvWFld300UtnUARDi"
STRIPE_SECRET_KEY = "sk_test_51JFxmyEJe6BMIZQNnTjvHfO5ezhJdsMD1LNhucyFL4I3hS2x5PucB98Oe2bNpR5Dknyqreb8PCiAm7jHWaasCmhd003HqGKBrx"
DJSTRIPE_WEBHOOK_SECRET = "whsec_3270c611f17dfcdadb70a9d29713b5fd8d64ddf34acc5d75d91553166f010f0d"

DJSTRIPE = {
    "STRIPE_PUBLIC_KEY": STRIPE_PUBLIC_KEY,
    "STRIPE_SECRET_KEY": STRIPE_SECRET_KEY,
    "WEBHOOK_SECRET": DJSTRIPE_WEBHOOK_SECRET,
}
DJSTRIPE_USE_NATIVE_JSONFIELD = True
DJSTRIPE_FOREIGN_KEY_TO_FIELD = "id"


# Payment Gateways
STRIPE_PUBLIC_KEY = "pk_test_51JFxmyEJe6BMIZQNmubKmctzMDyplqZF6Dcrmoz6Y97BLN2NUQWPLBucD8ipIH86T28c2ecPAUBnE7rqLWvWFld300UtnUARDi"
STRIPE_SECRET_KEY = "sk_test_51JFxmyEJe6BMIZQNnTjvHfO5ezhJdsMD1LNhucyFL4I3hS2x5PucB98Oe2bNpR5Dknyqreb8PCiAm7jHWaasCmhd003HqGKBrx"
STRIPE_WEBHOOK_SECRET = "whsec_3270c611f17dfcdadb70a9d29713b5fd8d64ddf34acc5d75d91553166f010f0d"

PAYPAL_CLIENT_ID = "AYywQVmPaYs8xUnuO7932hG17BHm18a1XyB22aUH51HVGF9l6rW6R623tIlxdQeYzqF2goy2a6ZfzcA9"
PAYPAL_SECRET = "EGRlBWQ7IXIasEsumCZTn6KtmNLj8i_6bXA77wV564JIe7kF__FScC_U6uqJJeWSmSnhj_p06W9WIjet"
PAYPAL_ENVIRONMENT = "sandbox"  # or 'live'
PAYPAL_RECEIVER_EMAIL = "ludakyabu2000-facilitator@gmail.com"

FLUTTERWAVE_PUBLIC_KEY = os.getenv('FLUTTERWAVE_PUBLIC_KEY')
FLUTTERWAVE_SECRET_KEY = os.getenv('FLUTTERWAVE_SECRET_KEY')

CINETPAY_API_KEY = "16101583256824a1920f8ed1.25319388"
CINETPAY_SITE_ID = "105895121"
CINETPAY_CURRENCY = "USD" # Default to XOF

CSRF_TRUSTED_ORIGINS =['https://checkout.cinetpay.com']

#AUTH_USER_MODEL = 'donations.User'
ACCOUNT_LOGOUT_REDIRECT_URL = 'account_login'
ACCOUNT_SIGNUP_REDIRECT_URL = 'home-page'
LOGIN_REDIRECT_URL = 'home-page'
ACCOUNT_LOGIN_METHOD = 'username'
ACCOUNT_SIGNUP_FIELDS = ['email', 'username*', 'password1*', 'password2*']
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_VERIFICATION = "none"
#EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'



