Your IP : 216.73.217.78


Current Path : /home/seto/888mirror.pm/
Upload File :
Current File : /home/seto/888mirror.pm/prd.md

Вот структурированный PRD (Product Requirements Document) для твоего проекта — с учетом всех деталей, но приведённый в понятный, реализуемый вид.

---

# 📄 PRD: Админка управления брендами + витрина (888mirror.pm)

## 1. 🎯 Общее описание

Система состоит из:

1. **Админ-панели (PHP + SQLite)**
2. **Публичной страницы (landing page)**

Цель:

* Управлять списком брендов (казино/офферы)
* Автоматически генерировать контент через OpenAI
* Показывать пользователю релевантные бренды по **стране + языку**
* Отслеживать статистику показов и кликов

---

## 2. 🧩 Архитектура

### Backend

* Язык: **чистый PHP (без фреймворков)**
* БД: **SQLite**
* API: **OpenAI API**

### Frontend

* Простой HTML (на первом этапе)
* Без JS-фреймворков (можно добавить позже)

---

## 3. 🔐 Авторизация

### Требования:

* Логин / пароль
* Сессии PHP
* Один админ (MVP)

### Таблица:

`users`

* id
* login
* password_hash

---

## 4. 🏷️ Сущность "Бренд"

### Основные поля (ручной ввод):

* id
* name
* logo (upload)
* tracking_url
* weight (int)
* is_featured (boolean)
* badge (string: "best", "new", "free"...)
* year_founded

---

### Автогенерируемые поля (OpenAI):

(мультиязычные)

* bonus
* free_spins
* games_count
* advantages
* license
* payment_methods
* payment_methods_count
* min_withdraw
* max_withdraw
* currencies

---

## 5. 🌍 Гео и языки

### Страны:

Каждый бренд имеет список стран:

`brand_countries`

* brand_id
* country_code (ru, fr, uk...)

---

### Языки:

Система поддерживает список языков:

`languages`

* id
* code (en, ru, fr...)
* name
* is_active

👉 По умолчанию: **15 языков**

* en, ru, fr, de, es, it, pt, pl, tr, uk, kk, ro, hu, nl, cs

---

### Переводы бренда:

`brand_translations`

* id
* brand_id
* language_code
* bonus
* free_spins
* games_count
* advantages
* license
* payment_methods
* payment_methods_count
* min_withdraw
* max_withdraw
* currencies

👉 Можно:

* редактировать вручную
* перегенерировать

---

## 6. 🤖 Генерация через OpenAI

### Функционал:

Кнопка: **"Сгенерировать данные"**

### Логика:

1. Вводим `brand name`
2. Отправляем prompt в OpenAI
3. Получаем:

   * структурированные данные
   * сразу на всех языках
4. Парсим JSON
5. Заполняем `brand_translations`

---

### Пример prompt:

```text
Generate structured data about a gambling brand.

Brand: {{NAME}}

Return JSON with fields:
- bonus
- free_spins
- games_count
- advantages
- license
- payment_methods
- payment_methods_count
- min_withdraw
- max_withdraw
- currencies

Translate into languages: en, ru, fr, de, es...

Return structured JSON.
```

---

## 7. ⭐ Ранжирование брендов

### Логика сортировки:

1. `is_featured = true` → сверху
2. Затем сортировка по:

   * weight (DESC)

---

## 8. 📊 Статистика

### Таблица:

`stats`

* id
* brand_id
* country
* event_type (impression / click)
* created_at

---

### Метрики:

#### По бренду:

* Показов:

  * сегодня
  * 30 дней
  * всего
* Кликов:

  * сегодня
  * 30 дней
  * всего
* CTR = clicks / impressions

---

#### По странам:

* Количество показов по каждой стране

---

## 9. 🌐 Публичная страница (Landing)

### URL:

`888mirror.pm`

---

### Логика:

1. Получаем от TDS:

   * country
   * language

2. Фильтрация:

* если есть country → показываем бренды с этим GEO
* если нет → показываем все

3. Язык:

* если есть перевод → используем его
* если нет → fallback на **EN**

---

### Отображение (MVP):

Простой HTML список:

```
[LOGO]
NAME

Bonus: ...
Free spins: ...
Games: ...
Advantages: ...
License: ...
Payments: ...
Min/Max withdraw: ...
Currencies: ...

[CTA BUTTON → tracking_url]
```

---

### Важно:

* При показе → пишем `impression`
* При клике → редирект + `click`

---

## 10. 🧱 CRUD в админке

### Разделы:

#### 1. Бренды

* список
* создать
* редактировать
* удалить

#### 2. Генерация

* кнопка "Generate via OpenAI"

#### 3. Переводы

* редактирование по языкам

#### 4. Статистика

* таблицы + фильтры

---

## 11. 📂 Структура проекта

```
/admin
  login.php
  dashboard.php
  brands.php
  brand_edit.php
  stats.php

/public
  index.php

/includes
  db.php
  auth.php
  openai.php
  stats.php

/uploads
  logos/

database.sqlite
```

---

## 12. ⚙️ Основные сценарии

### ➤ Добавление бренда

1. Ввод имени
2. Загрузка лого
3. Указание стран
4. Вставка tracking URL
5. Сохранение

---

### ➤ Генерация данных

1. Нажать "Generate"
2. OpenAI → JSON
3. Запись в translations

---

### ➤ Отображение пользователю

1. Определение GEO + LANG
2. Выбор брендов
3. Сортировка
4. Вывод

---

### ➤ Клик

1. Запись в stats
2. Redirect на tracking URL

---

## 13. 🚀 MVP vs Future

### MVP:

* CRUD брендов
* генерация через OpenAI
* фильтр GEO
* мультиязычность
* базовая статистика
* простой HTML

---

### Позже:

* кеширование
* A/B тесты
* антифрод кликов
* API для TDS
* UI улучшения
* автообновление данных брендов

---

## 14. ❗ Важные нюансы

* SQLite → блокировки (учесть при росте)
* OpenAI → лимиты + стоимость
* Логи → желательно добавить
* Валидация данных обязательна

---

## 15. 💡 Дополнения (рекомендую)

* Добавить `slug` для бренда
* Добавить `status` (active/inactive)
* Кэш HTML (очень важно для SEO и скорости)
* Возможность вручную менять порядок (drag/drop позже)

---

## Итог

Ты делаешь по сути:
👉 **мини-CMS для affiliate лендингов с AI-генерацией контента**

---

Если хочешь, дальше могу:

* сделать **структуру БД (SQL)**
* написать **MVP код на PHP**
* или собрать **архитектуру OpenAI промтов (очень важно тут)**