# BMC Hub 🚀

Et centralt management system til BMC Networks - håndterer kunder, services, hardware og billing.

**Baseret på OmniSync arkitektur med Python + PostgreSQL**

## 🌟 Features

- **Customer Management**: Komplet kundedatabase med CRM integration
- **Hardware Tracking**: Registrering og sporing af kundeudstyr
- **Service Management**: Håndtering af services og abonnementer
- **Billing Integration**: Automatisk fakturering via e-conomic
- **REST API**: FastAPI med OpenAPI dokumentation
- **Web UI**: Responsive Bootstrap 5 interface
- **PostgreSQL**: Production-ready database
- **Docker**: Container deployment med version control

## 📚 Quick Start

### Lokal Udvikling

```bash
# 1. Clone repository
git clone git@g.bmcnetworks.dk:ct/bmc_hub.git
cd bmc_hub

# 2. Kopier og rediger .env
cp .env.example .env
nano .env  # Tilføj dine credentials

# 3. Start med Docker Compose
docker-compose up -d

# 4. Åbn browser
open http://localhost:8001/api/docs  # API docs
open http://localhost:8001            # Web UI
```

**Standard ports** (for at undgå konflikter):
- API: `8001` (mapped til container port 8000)
- PostgreSQL: `5433` (mapped til container port 5432)

**Note**: Auto-reload er deaktiveret som standard for at undgå log spam. Når du ændrer kode, skal du genstarte containeren:
```bash
docker-compose restart api
```

Hvis du ønsker live reload (med potentiel log spam), sæt `ENABLE_RELOAD=true` i `.env`.

### Live Deployment

```bash
# På serveren
cd /opt
git clone git@g.bmcnetworks.dk:ct/bmc_hub.git
cd bmc_hub

# Setup environment
cp .env.prod.example .env
nano .env  # Udfyld credentials og version tag

# Deploy
docker-compose -f docker-compose.prod.yml up -d
```

## 🛠️ Deployment Commands

### Lokal Development
```bash
docker-compose up -d        # Start systemet
docker-compose logs -f      # Se logs
docker-compose down         # Stop systemet
```

### Production
```bash
docker-compose -f docker-compose.prod.yml up -d    # Start
docker-compose -f docker-compose.prod.yml pull     # Update til ny version
docker-compose -f docker-compose.prod.yml restart  # Restart
```

## 📋 Krav

### Development
- Docker Desktop eller Podman
- Git

### Production
- Docker eller Podman
- PostgreSQL (via container)
- Nginx reverse proxy
- SSL certifikat

## 🏗️ Projekt Struktur

```
bmc_hub/
├── app/
│   ├── core/
│   │   ├── config.py          # Konfiguration
│   │   └── database.py        # PostgreSQL helpers
│   ├── models/
│   │   └── schemas.py         # Pydantic models
│   ├── routers/
│   │   ├── customers.py       # Customer CRUD
│   │   ├── hardware.py        # Hardware management
│   │   └── billing.py         # Billing endpoints
│   ├── services/
│   │   └── economic.py        # e-conomic integration
│   └── jobs/
│       └── sync_job.py        # Scheduled jobs
├── static/
│   └── index.html             # Dashboard UI
├── migrations/                 # Database migrations
├── docker-compose.yml          # Local development
├── docker-compose.prod.yml     # Production deployment
├── Dockerfile                  # Docker image
├── requirements.txt            # Python dependencies
├── .env.example                # Environment template (local)
├── .env.prod.example           # Environment template (production)
└── main.py                     # FastAPI application
```

## 🔌 API Endpoints

- `GET /api/v1/customers` - List customers
- `GET /api/v1/hardware` - List hardware
- `GET /api/v1/billing/invoices` - List invoices
- `GET /health` - Health check

Se fuld dokumentation: http://localhost:8000/api/docs

## 🧪 Testing

```bash
# Install test dependencies
pip install pytest pytest-cov

# Run tests
pytest

# Run with coverage
pytest --cov=app
```

## 📄 License

MIT License

## 📞 Support

- **Issues**: Gitea Issues
- **Dokumentation**: `/api/docs`
- **Email**: support@bmcnetworks.dk

---

**Made with ❤️ by BMC Networks**
