🗂️ OneDay Database Schema

Visual architecture of OneDay Telegram Bot database

20
Tables
2
Users
7
Stories
33
Audio Files

🌊 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! 🌌