| | 8 | **User** - ентитет кој чува информации за сите корисници на апликацијата (и обични корисници и администратори). |
| | 9 | - __id__ (bigint) |
| | 10 | - username (text, not null) |
| | 11 | - password (text, not null) |
| | 12 | - __email__ (text, not null) |
| | 13 | - balance (double) |
| | 14 | - role (enum: USER, ADMIN) |
| | 15 | |
| | 16 | **Portfolio** - ентитет кој чува информации за инвестициското портфолио на корисникот. |
| | 17 | - __id__ (bigint) |
| | 18 | - balance (decimal, not null) |
| | 19 | - __user_id__* |
| | 20 | |
| | 21 | **PortfolioHolding** - ентитет кој чува информации за поединечни акции кои се дел од едно портфолио. |
| | 22 | - __id__ (bigint) |
| | 23 | - quantity (int, not null) |
| | 24 | - avg_price (decimal, not null) |
| | 25 | - __portfolio_id__* (bigint) |
| | 26 | - __stock_id__* (bigint) |
| | 27 | |
| | 28 | **Stock** – ентитет кој чува информации за акциите кои може да се тргуваат во системот. |
| | 29 | - __id__ (bigint) |
| | 30 | - symbol (text, unique, not null) |
| | 31 | - name (text) |
| | 32 | - current_price (double) |
| | 33 | - last_price (double) |
| | 34 | - percentage (double) |
| | 35 | - turnover (double) |
| | 36 | - last_updated (timestamp) |
| | 37 | |
| | 38 | **StockHistory** - ентитет кој чува историски податоци за цената на една акција. |
| | 39 | - __id__ (bigint) |
| | 40 | - price (double) |
| | 41 | - timestamp (date) |
| | 42 | - __stock_id__* (bigint) |
| | 43 | |
| | 44 | **TradeRequest** - ентитет кој чува барања за купување или продавање акции, креирани од корисници и испратени на одобрување кај администратор. |
| | 45 | - __id__ (bigint) |
| | 46 | - type (text: BUY / SELL) |
| | 47 | - status (text: PENDING / APPROVED / DECLINED) |
| | 48 | - quantity (int) |
| | 49 | - price_per_unit (double) |
| | 50 | - timestamp (timestamp) |
| | 51 | - __user_id__* (bigint) |
| | 52 | - __portfolio_id__* (bigint) |
| | 53 | - __stock_id__* (bigint) |
| | 54 | |
| | 55 | **Transaction** - ентитет кој чува реализирани трансакции кои настануваат само по одобрување на trade request. |
| | 56 | - __id__ (bigint) |
| | 57 | - type (text: BUY / SELL) |
| | 58 | - quantity (int) |
| | 59 | - price (double) |
| | 60 | - timestamp (timestamp) |
| | 61 | - origin (enum: INTERNAL, EXTERNAL) |
| | 62 | - __user_id__* (bigint) |
| | 63 | - __stock_id__* (bigint) |
| | 64 | - __trade_request_id__* (bigint) |
| | 65 | |
| | 66 | **WatchlistEntry** - ентитет кој чува информации за акции кои корисникот ги следи. |
| | 67 | - __id__ (bigint) |
| | 68 | - price_above (double) |
| | 69 | - price_below (double) |
| | 70 | - __user_id__* (biging) |
| | 71 | - __stock_id__* (bigint) |
| | 72 | |
| | 73 | **PendingLink** - привремен ентитет кој се користи при поврзување на интерен кориснички профил со надворешен OAuth провајдер. |
| | 74 | - __token__ (text) |
| | 75 | - email (text, not null) |
| | 76 | - provider (enum: GOOGLE, FACEBOOK) |
| | 77 | - expires_at (timestamp) |
| | 78 | - created_at (timestamp) |
| | 79 | |
| | 80 | |
| | 81 | |
| | 82 | |
| | 83 | |
| | 84 | |
| | 85 | |
| | 86 | |