# POS Resto - Backend PHP + MySQL

Backend untuk aplikasi kasir POS Resto. Dashboard admin untuk mengelola produk, kategori, dan melihat order.

## Cara Setup

### 1. Persiapan
- Install [XAMPP](https://www.apachefriends.org/) atau [Laragon](https://laragon.org/)
- Pastikan Apache dan MySQL sudah jalan

### 2. Buat Database
- Buka phpMyAdmin: http://localhost/phpmyadmin
- Import file `database.sql`
- Atau jalankan di MySQL CLI:
  ```
  mysql -u root < database.sql
  ```

### 3. Generate Password
- Buka terminal/command prompt di folder backend
- Jalankan: `php setup-password.php admin123`
- Copy hash yang keluar, update di phpMyAdmin > tabel `users` > kolom `password` untuk email `admin@posresto.com`
- Default hash sudah di-include di database.sql, tapi disarankan generate ulang

### 4. Deploy Files
- Copy seluruh isi folder ini ke `C:\xampp\htdocs\pos-backend\` (XAMPP) atau `C:\laragon\www\pos-backend\` (Laragon)

### 5. Akses Dashboard
- Buka: http://localhost/pos-backend/dashboard.php
- Login: `admin@posresto.com` / `admin123`

## API Endpoints

| Method | Endpoint | Auth | Keterangan |
|--------|----------|------|------------|
| POST | /api-login.php | - | Login, dapatkan token |
| GET | /api-products.php | Kasir/Admin | Ambil semua produk aktif |
| POST | /api-products.php | Admin | Tambah produk |
| PUT | /api-products.php | Admin | Update produk |
| DELETE | /api-products.php | Admin | Hapus produk |
| GET | /api-categories.php | Kasir/Admin | Ambil semua kategori |
| POST | /api-categories.php | Admin | Tambah kategori |
| PUT | /api-categories.php | Admin | Update kategori |
| DELETE | /api-categories.php | Admin | Hapus kategori |
| POST | /api-upload.php | Admin | Upload foto produk (max 2MB) |
| GET | /api-orders.php?date=YYYY-MM-DD | Admin | Lihat order per tanggal |
| POST | /api-save-order.php | Kasir/Admin | Simpan order baru dari kasir |
| GET | /api-sync.php?device_id=xxx | Kasir/Admin | Sinkronisasi data ke kasir |

## Auth Format
- Header: `Authorization: Bearer {email}`
- Token = email user (sementara, production pakai JWT)

## Konfigurasi Flutter App
- Edit `lib/core/constants/variables.dart`
- Ganti `baseUrl` ke alamat server PHP:
  ```dart
  static const String baseUrl = 'http://192.168.x.x/pos-backend'; // IP komputer server
  ```
- `192.168.x.x` = IP komputer yang jalan PHP (cek dengan `ipconfig`)

## Folder Structure

```
pos-backend/
  config.php           - DB config & auth helper
  database.sql         - Schema & seed data
  setup-password.php   - Generate password hash
  dashboard.php        - Dashboard admin (HTML/JS)
  .htaccess            - URL rewrite
  api-login.php        - Auth
  api-products.php     - CRUD produk
  api-categories.php   - CRUD kategori
  api-upload.php       - Upload foto
  api-orders.php       - List order (admin)
  api-save-order.php   - Simpan order (kasir)
  api-sync.php         - Sinkronisasi data (kasir)
  uploads/products/    - Folder foto produk (auto-created)
```
