"""
Django settings for siip project.
"""

from pathlib import Path
import os

# Build paths
BASE_DIR = Path(__file__).resolve().parent.parent

# Security
SECRET_KEY = 'django-insecure-#z14eo4a-0%ewfa@01=5*p3z5&r_$6--jr4swpri$_jnb79(um'
DEBUG = True
ALLOWED_HOSTS = ['*']  # Cambiar en producción

# Apps
INSTALLED_APPS = [
    'jazzmin',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',

    # Apps principales
    'siip',
    'listas_configuracion',
    'referencias',
    'proveedores',
    'fabricacion',
    'distribucion',
    'lista_de_materiales',
    'movimientos',

]


# Middleware
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# URLs y Templates
ROOT_URLCONF = 'siip.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',
            ],
        },
    },
]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'iapplanner',       
        'USER': 'zremote',
        'PASSWORD': 'M@j0309!zremote',
        'HOST': '45.33.15.67',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
            'charset': 'utf8mb4',
        },
    }
}
"""

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
"""
# Password validation
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
LANGUAGE_CODE = 'es-co'
TIME_ZONE = 'America/Bogota'
USE_I18N = True
USE_L10N = True
USE_TZ = False

# Static files (CSS, JavaScript, Images)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

# Media files
MEDIA_URL = '/media/'  # URL base para servir archivos multimedia
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')  # Ruta absoluta al directorio media en el sistema de archivos

LOGIN_REDIRECT_URL = '/' 
LOGOUT_REDIRECT_URL = '/' 
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'root': {
        'handlers': ['console'],
        'level': 'DEBUG',
    },
}

# settings.py
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' 
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    }
}
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

# Configuración de Jazzmin
JAZZMIN_SETTINGS = {
    "site_title": "IAP Planner Admin",
    "site_header": "IAP Planner",
    "site_brand": "IAP Planner",
    "site_logo": "images/logotipoWT.png",
    "login_logo": "images/logoappBLK.png",
    "login_logo_dark": "images/logoappBLK.png",
    "welcome_sign": "Excelencia operacional en la gestión de inventarios",
    "copyright": "IAP Planner © 2025",
    "user_avatar": None,
    "dark_mode_theme": "darkly",

    "usermenu_links": [
        {"name": "Manual de usuario", "url": "https://manual.example.com", "new_window": True},
    ],

    "custom_links": {
        "lista_de_materiales": [
            {
                "name": "Árbol BOM",
                "url": "admin:lista_de_materiales_listamateriales_arbol_bom_selector",
                "icon": "fas fa-sitemap"
            }
        ],
        
    },

    "icons": {
        "auth": "fas fa-users-cog",
        "auth.user": "fas fa-user",
        "auth.Group": "fas fa-users",
        "listas_configuracion": "fas fa-cogs",
        "listas_configuracion.clasificacionproducto": "fas fa-tags",
        "listas_configuracion.empaquecompra": "fas fa-box",
        "listas_configuracion.empaqueproduccion": "fas fa-box-open",
        "listas_configuracion.formapago": "fas fa-credit-card",
        "listas_configuracion.grupoproducto": "fas fa-layer-group",
        "listas_configuracion.subgrupoproducto": "fas fa-sitemap",
        "listas_configuracion.unidadmedida": "fas fa-balance-scale",
        "referencias.referencia": "fas fa-tag",
        "referencias.referenciaimagen": "fas fa-image",
        "proveedores.proveedor": "fas fa-truck",
        "proveedores.proveedorreferencia": "fas fa-handshake",
        "fabricacion.plantaproduccion": "fas fa-industry",
        "fabricacion.maquina": "fas fa-cogs",
        "fabricacion.maquinareferencia": "fas fa-wrench",
        "fabricacion.mantenimiento": "fas fa-tools",
        "fabricacion.reparacion": "fas fa-hammer",
        "distribucion.empaquedistribucion": "fas fa-dolly",
        "lista_de_materiales.ComponenteListaMateriales": "fas fa-puzzle-piece",
        "lista_de_materiales.ListaMateriales": "fas fa-clipboard-list",
        # icono para todo el group “Movimientos”
        "movimientos":                        "fas fa-layer-group",

        # modelos dentro de movimientos
        "movimientos.ordencompra":            "fas fa-file-invoice",
        "movimientos.itemordencompra":        "fas fa-shopping-basket",
        "movimientos.movimientoventa":        "fas fa-shopping-cart",
        "movimientos.recepcionproduccion":    "fas fa-truck-loading",
        "movimientos.ajusteinventariofisico": "fas fa-tools",
        "movimientos.devolucioncompra":       "fas fa-undo-alt",
        "movimientos.devolucionmuestracomercial": "fas fa-box-open",
        "movimientos.devolucionproduccion":   "fas fa-industry",
        "movimientos.movimientodevolucionventa": "fas fa-undo",
        "movimientos.muestracomercial":       "fas fa-tags",
    },

    "default_icon_parents": "fas fa-folder",
    "default_icon_children": "fas fa-file",

    "custom_css": "css/jazzmin_custom.css",

    "custom_apps": [
        {
            "name": "Movimientos",
            "icon": "fas fa-warehouse",
            "models": [
                "compras.OrdenCompra",                      # fas fa-shopping-cart
                "compras.ItemOrdenCompra",                  # fas fa-list
                "devolucion_compras.DevolucionCompras",     # fas fa-undo
                "recepcion_produccion.RecepcionProduccion", # fas fa-dolly-flatbed
                "devolucion_produccion.DevolucionProduccion", # fas fa-reply
                "muestra_comercial.MuestraComercial",       # fas fa-gift
                "devolucion_muestras_com.DevolucionMuestrasCom", # fas fa-undo-alt
                "venta.VentaProducto",                      # fas fa-cash-register
                "devolucion_venta.DevolucionVenta"          # fas fa-undo
            ]
        }
    ]
}

JAZZMIN_UI_TWEAKS = {
    # Esta es la línea clave - cambia a True para texto pequeño en la barra lateral
    "sidebar_nav_small_text": True,
    
    # Opcional: puedes activar también estas opciones para un menú más compacto
    "sidebar_nav_compact_style": True,     # Estilo más compacto
    "sidebar_nav_flat_style": True,        # Estilo plano (menos espaciado)
    "sidebar_nav_child_indent": False,     # Sin indentación para ítems hijos
    
    "navbar_small_text": False,
    "footer_small_text": False,
    "body_small_text": False,
    "brand_small_text": False,
    "brand_colour": "navbar-dark",
    "accent": "accent-primary",
    "navbar": "navbar-dark",
    "no_navbar_border": False,
    "navbar_fixed": True,
    "layout_boxed": False,
    "footer_fixed": False,
    "sidebar_fixed": True,
    "sidebar": "sidebar-dark-primary",
    "sidebar_disable_expand": False,
    
}