# ============================================================
#  .gitignore — Monorepo Recolecta (Flutter + FastAPI)
#  Va en la RAÍZ del repo. Funciona igual en Gitea/GitHub/GitLab.
#  Regla mental: se ignora lo que se REGENERA o lo que es SECRETO.
# ============================================================


# ------------------------------------------------------------
# 1) SECRETOS  (lo más importante: nunca subir credenciales)
# ------------------------------------------------------------
# Variables de entorno: llaves de Supabase, JWT secret, etc.
.env
.env.*
# ...pero SÍ versionamos la plantilla sin valores reales:
!.env.example

# Credencial del Admin SDK de Firebase (envía las push FCM) = SECRETO REAL
*serviceAccount*.json
*firebase-adminsdk*.json

# Llaves de firma de Android (publicación) y sus contraseñas
*.jks
*.keystore
**/key.properties

# Imágenes de recibos de luz/agua si llegaran a guardarse en disco.
# Por "Privacidad por Diseño" NUNCA deben terminar en el repo.
**/uploads/
**/recibos/


# ------------------------------------------------------------
# 2) FLUTTER / DART  (carpeta recolecta_app/)
# ------------------------------------------------------------
# Compilados y cachés que Flutter regenera con `flutter pub get` / build
**/build/
**/.dart_tool/
**/.flutter-plugins
**/.flutter-plugins-dependencies
**/.packages
**/.pub-cache/
**/.pub/
*.dart.js
*.info.json

# NOTA: pubspec.lock SÍ se versiona en apps (fija versiones de deps).
# No lo agregues aquí. Solo se ignora en paquetes/librerías.

# --- Android ---
**/android/.gradle/
**/android/captures/
**/android/local.properties     # rutas del SDK propias de cada máquina
**/android/**/GeneratedPluginRegistrant.java
**/android/.cxx/

# --- iOS / macOS ---
**/ios/Pods/                     # se reinstala con `pod install`
**/ios/.symlinks/
**/ios/Flutter/.last_build_id
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/flutter_export_environment.sh
**/ios/Flutter/ephemeral/
**/*.mode1v3
**/*.mode2v3
**/*.moved-aside
**/xcuserdata/
**/DerivedData/

# Config de Firebase del cliente (contiene API keys del proyecto).
# Recomendado ignorarlas y compartirlas por canal seguro entre el equipo.
# Si su repo Gitea es PRIVADO y prefieren comodidad, pueden comentarlas.
**/google-services.json
**/GoogleService-Info.plist


# ------------------------------------------------------------
# 3) PYTHON / FASTAPI  (carpeta backend/)
# ------------------------------------------------------------
__pycache__/
*.py[cod]
*.egg-info/
.eggs/
dist/
backend/build/                  # acotado para no chocar con build/ de Flutter

# Entornos virtuales (cada quien crea el suyo con `python -m venv`)
.venv/
venv/
env/
ENV/

# Cachés de herramientas de test/lint
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/

# Base de datos local de pruebas (si usan SQLite para correr offline)
*.sqlite3
*.db


# ------------------------------------------------------------
# 4) EDITORES / SISTEMA OPERATIVO  (ruido de cada máquina)
# ------------------------------------------------------------
# Claude Code — configuración y memoria local del asistente
.claude/


# VS Code: ignoramos config personal. Si quieren compartir tareas/launch
# del equipo, borren esta línea y versionen .vscode/ a propósito.
.vscode/

# Android Studio / IntelliJ
.idea/
*.iml

# macOS / Windows
.DS_Store
Thumbs.db
desktop.ini

# Logs sueltos
*.log