# Guest Mode — Dùng thử không cần đăng nhập

## Ý tưởng
Người dùng mới vào app → nhấn "Dùng thử ngay" → vào shared space → dùng thoải mái.
Giảm friction tối đa, không ai phải đăng ký mới được test.

## Flow

```
Landing Page
│
├── [Đăng nhập]         → Vào space cá nhân (có sẵn ✅)
├── [Đăng ký]            → Tạo tài khoản (có sẵn ✅)
│
└── [🚀 Dùng thử ngay]  → NEW
    │
    ├── Tạo anonymous session (guest_abc123)
    ├── Vào shared "Demo Team" chung
    ├── Ai cũng thấy notes của nhau
    └── Dùng thử draft → merge → main
```

## So sánh Guest vs User

| | Guest (chưa login) | User (đã login) |
|---|---|---|
| Xem notes | Shared space chung | Space riêng |
| Tạo notes | ✅ Ghi vào demo team | ✅ Ghi vào team riêng |
| Teams | 1 demo team | Tạo nhiều team |
| Draft → Main | ✅ | ✅ |
| Data | Mất khi clear browser | Lưu vĩnh viễn |

## Cần làm

### Frontend
1. Landing page: thêm nút "🚀 Dùng thử ngay"
2. Khi nhấn → tạo `guest_<random>` lưu vào localStorage
3. Redirect vào `/app/teams/<demo_team_id>`
4. Header hiện: "Bạn đang dùng thử — Đăng ký để lưu vĩnh viễn"

### Backend
1. API: `POST /api/v1/guest/session` → tạo guest session, trả guest_id
2. Auto-create "Demo Team" nếu chưa có (shared cho tất cả guest)
3. Middleware: cho phép guest_id bypass auth (chỉ truy cập demo team)
4. Cleanup: cronjob xóa guest data cũ hơn 7 ngày

### Data Model
```json
// Guest session (lưu trong MongoDB)
{
  "_id": "ObjectId",
  "guest_id": "guest_abc123",
  "created_at": "...",
  "last_active": "..."
}

// Demo Team (1 team duy nhất, shared)
{
  "name": "Demo Team",
  "owner_id": "system",
  "is_demo": true
}
```

## Thứ tự triển khai
1. Backend: Guest session API + demo team auto-create
2. Backend: Middleware cho guest bypass
3. Frontend: Nút "Dùng thử" trên Landing
4. Frontend: Guest banner "Đăng ký để lưu vĩnh viễn"
5. Backend: Cleanup cronjob (optional, sau)
