🌊 Data Flow Diagram
Показывает как данные движутся через систему: от регистрации пользователя до покупки и прослушивания контента.
graph TB
%% User Actions
U[👤 User] -->|registers| REG[Registration]
REG -->|creates| USER_DB[(User Table)]
U -->|becomes creator| AUTH[Author Profile]
AUTH -->|creates| AUTHOR_DB[(Author Table)]
%% Content Creation
AUTHOR_DB -->|creates| ONEDAY[📖 OneDay Story]
ONEDAY -->|stores in| ONEDAY_DB[(OneDay Table)]
ONEDAY -->|uploads| AUDIO[🎵 Audio Files]
AUDIO -->|stores in| AUDIO_DB[(Audio Table)]
%% Purchase Flow
U -->|browses| CATALOG[📚 Catalog]
CATALOG -->|shows| ONEDAY_DB
U -->|clicks buy| PURCHASE[💳 Purchase]
PURCHASE -->|creates| PAYMENT_DB[(Payment Table)]
PAYMENT_DB -->|splits| SHARES[Revenue Split]
SHARES -->|author share| AUTHOR_DB
SHARES -->|platform fee| PLATFORM[Platform Revenue]
PURCHASE -->|grants access| ACCESS[oneday_user]
ACCESS -->|records in| JUNCTION_DB[(oneday_user Table)]
%% Listening Flow
U -->|plays| PLAYER[▶️ Audio Player]
PLAYER -->|reads| JUNCTION_DB
JUNCTION_DB -->|fetches| AUDIO_DB
PLAYER -->|tracks| SESSION[📊 Session]
SESSION -->|stores in| SESSION_DB[(listening_sessions)]
%% Rating Flow
U -->|rates| RATING_FORM[⭐ Rating]
RATING_FORM -->|saves to| RATING_DB[(Rating Table)]
RATING_DB -->|updates| ONEDAY_DB
RATING_DB -->|updates| AUTHOR_DB
%% Promo Flow
AUTHOR_DB -->|creates| PROMO[🎟️ Promo Code]
PROMO -->|stores in| PROMO_DB[(promo_codes)]
U -->|uses| PROMO_DB
PROMO_DB -->|applies discount| PURCHASE
PROMO_DB -->|tracks in| PROMO_ACT[(promo_activations)]
%% Referral Flow
U -->|shares| REF_LINK[🔗 Referral Link]
REF_LINK -->|stores in| REF_DB[(referral_links)]
NEW_USER[👤 New User] -->|clicks| REF_DB
REF_DB -->|tracks| REF_USERS[(referral_users)]
NEW_USER -->|purchases| PAYMENT_DB
PAYMENT_DB -->|generates commission| REF_PAY[(referral_payments)]
REF_PAY -->|pays referrer| USER_DB
%% Subscription Flow
U -->|subscribes to| AUTHOR_DB
AUTHOR_DB -->|records in| SUB_DB[(subscriptions)]
SUB_DB -->|notifies via| NOTIF[(notification_queue)]
style USER_DB fill:#4A90E2
style ONEDAY_DB fill:#E24A4A
style AUDIO_DB fill:#E2A14A
style PAYMENT_DB fill:#4AE290
style AUTHOR_DB fill:#A14AE2
💳 Purchase Transaction Flow
Пошаговая последовательность действий при покупке OneDay истории пользователем.
sequenceDiagram
participant U as 👤 User
participant C as 📚 Catalog
participant P as 💳 Payment System
participant DB as 🗄️ Database
participant A as 👨🎨 Author
U->>C: Browse OneDay stories
C->>DB: SELECT * FROM oneday WHERE status='published'
DB-->>C: Return stories list
C-->>U: Display catalog
U->>C: Click "Buy" (oneday_id=5, price=100)
C->>U: Request Telegram Stars payment
U->>P: Pay 100 stars
P->>DB: INSERT INTO Payment (user, oneday, amount, status='pending')
DB-->>P: Payment record created
P->>P: Process payment with Telegram
alt Payment Success
P->>DB: UPDATE Payment SET status='completed', completed_at=NOW()
P->>DB: INSERT INTO oneday_user (user_id, oneday_id)
P->>DB: UPDATE User SET stars_balance = stars_balance - 100
P->>DB: UPDATE Author SET total_earnings = total_earnings + 70
P->>DB: UPDATE oneday SET purchases_count = purchases_count + 1
DB-->>U: ✅ Access granted!
DB-->>A: 💰 You earned 70 stars!
else Payment Failed
P->>DB: UPDATE Payment SET status='failed'
DB-->>U: ❌ Payment failed
end
📊 Database Tables Overview
Текущая статистика: 20 таблиц, 2 пользователя, 7 историй, 33 аудиофайла
| Table |
Records |
Description |
User |
2 |
Registered users from Telegram |
oneday |
7 |
Published audio stories |
audio |
33 |
Audio files (avg 5 per story) |
oneday_user |
1 |
Purchase records (junction table) |
Rating |
1 |
User ratings for stories |
Payment |
0 |
Completed payment transactions |
Author |
0 |
Creator profiles (public role) |
subscriptions |
0 |
User subscriptions to authors |
🔑 Key Relationships
👤 User can:
- Create multiple OneDay stories (1:N)
- Become one Author (1:1)
- Purchase multiple stories (M:N)
- Rate stories (1:N)
- Subscribe to authors (M:N)
📖 OneDay story has:
- One creator (User) (N:1)
- Multiple audio files (1:N)
- Multiple purchasers (M:N)
- Multiple ratings (1:N)
- Optional promo codes (1:N)
⭐ Author has:
- One User account (1:1)
- Multiple published stories (1:N)
- Multiple subscribers (M:N)
- Revenue from payments (1:N)
🎨 WNF 2.0 Visualization Mapping
Рекомендации по маппингу таблиц OneDay БД на entity types в WNF 2.0 для создания 3D визуализации.
| Database Table |
WNF Entity Type |
Visual |
Reason |
User |
🔵 Node |
Blue sphere |
Network nodes - users connect |
oneday |
🪐 Planet |
Large sphere |
Main content - stories orbit |
audio |
☄️ Comet |
Tail sphere |
Satellites around planets |
Payment |
⛓️ Chain |
Connected links |
Transaction chains |
Author |
⭐ Star |
Bright star |
Content creators shine |
Rating |
🌟 Small Star |
Tiny sparkle |
Rating stars |
oneday_user |
➡️ Connection |
Arrow/Line |
Purchase connections |
subscriptions |
🛰️ Satellite |
Orbital |
Revolve around authors |
promo_codes |
🎁 Gift |
Gift box |
Special offers |
referral_links |
🔗 Link |
Chain link |
Viral spread |
💡 Result: This mapping will create a beautiful 3D universe of your OneDay Bot data! 🌌