| 1 | TRUNCATE TABLE
|
|---|
| 2 | users,
|
|---|
| 3 | bank_account,
|
|---|
| 4 | portfolios,
|
|---|
| 5 | stock,
|
|---|
| 6 | stock_history,
|
|---|
| 7 | portfolio_holdings,
|
|---|
| 8 | trade_request,
|
|---|
| 9 | broker_order,
|
|---|
| 10 | order_matching_log,
|
|---|
| 11 | "transaction",
|
|---|
| 12 | payment_transaction,
|
|---|
| 13 | settlement_record,
|
|---|
| 14 | dividend_payment,
|
|---|
| 15 | dividend,
|
|---|
| 16 | CFD_position,
|
|---|
| 17 | watchlist,
|
|---|
| 18 | oauth_pending_links,
|
|---|
| 19 | user_auth_providers
|
|---|
| 20 | RESTART IDENTITY CASCADE;
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 | INSERT INTO users (email, password, role, username)
|
|---|
| 24 | SELECT
|
|---|
| 25 | 'user' || i || '@mail.com',
|
|---|
| 26 | md5('pass' || i),
|
|---|
| 27 | CASE WHEN random() < 0.97 THEN 'USER' ELSE 'ADMIN' END,
|
|---|
| 28 | 'user_' || i
|
|---|
| 29 | FROM generate_series(1, 100000) i;
|
|---|
| 30 |
|
|---|
| 31 | INSERT INTO bank_account (account_number, bank, users_id)
|
|---|
| 32 | SELECT
|
|---|
| 33 | 1000000000 + i,
|
|---|
| 34 | (ARRAY['NLB','Komercijalna','Stopanska'])[1 + (random()*2)::int],
|
|---|
| 35 | i
|
|---|
| 36 | FROM generate_series(1, 100000) i;
|
|---|
| 37 |
|
|---|
| 38 |
|
|---|
| 39 | INSERT INTO portfolios (balance, user_id)
|
|---|
| 40 | SELECT
|
|---|
| 41 | (random()*100000)::numeric(18,2),
|
|---|
| 42 | i
|
|---|
| 43 | FROM generate_series(1, 100000) i;
|
|---|
| 44 |
|
|---|
| 45 | INSERT INTO stock (symbol, name, current_price, last_price, percentage, turnover, last_updated)
|
|---|
| 46 | SELECT
|
|---|
| 47 | 'STK' || i,
|
|---|
| 48 | 'Company ' || i,
|
|---|
| 49 | (random()*500 + 5),
|
|---|
| 50 | (random()*500 + 5),
|
|---|
| 51 | (random()*10 - 5),
|
|---|
| 52 | (random()*1000000),
|
|---|
| 53 | now()
|
|---|
| 54 | FROM generate_series(1, 500) i;
|
|---|
| 55 |
|
|---|
| 56 |
|
|---|
| 57 | INSERT INTO stock_history (price, stock_id, timestamp)
|
|---|
| 58 | SELECT
|
|---|
| 59 | (random()*500 + 5),
|
|---|
| 60 | (1 + (random()*499)::int),
|
|---|
| 61 | CURRENT_DATE - (random()*365)::int
|
|---|
| 62 | FROM generate_series(1, 3000000);
|
|---|
| 63 |
|
|---|
| 64 |
|
|---|
| 65 | INSERT INTO portfolio_holdings (quantity, avg_price, stock_id, portfolio_id)
|
|---|
| 66 | SELECT
|
|---|
| 67 | (random()*200)::int,
|
|---|
| 68 | (random()*500 + 5),
|
|---|
| 69 | (1 + (random()*499)::int),
|
|---|
| 70 | (1 + (random()*99999)::int)
|
|---|
| 71 | FROM generate_series(1, 800000);
|
|---|
| 72 |
|
|---|
| 73 |
|
|---|
| 74 | INSERT INTO trade_request (
|
|---|
| 75 | portfolio_id,
|
|---|
| 76 | price_per_unit,
|
|---|
| 77 | quantity,
|
|---|
| 78 | status,
|
|---|
| 79 | stock_symbol,
|
|---|
| 80 | timestamp,
|
|---|
| 81 | type
|
|---|
| 82 | )
|
|---|
| 83 | SELECT
|
|---|
| 84 | (1 + (random()*99999)::int),
|
|---|
| 85 | (random()*500 + 5),
|
|---|
| 86 | (random()*100)::int,
|
|---|
| 87 | CASE
|
|---|
| 88 | WHEN random() < 0.6 THEN 'OPEN'
|
|---|
| 89 | WHEN random() < 0.9 THEN 'CLOSED'
|
|---|
| 90 | ELSE 'CANCELLED'
|
|---|
| 91 | END,
|
|---|
| 92 | 'STK' || (1 + (random()*499)::int),
|
|---|
| 93 | now() - (random()*1000 || ' hours')::interval,
|
|---|
| 94 | CASE WHEN random() < 0.5 THEN 'BUY' ELSE 'SELL' END
|
|---|
| 95 | FROM generate_series(1, 1000000);
|
|---|
| 96 |
|
|---|
| 97 |
|
|---|
| 98 | INSERT INTO broker_order (
|
|---|
| 99 | order_type,
|
|---|
| 100 | limit_price,
|
|---|
| 101 | quantity,
|
|---|
| 102 | status,
|
|---|
| 103 | executed_price,
|
|---|
| 104 | broker_fee,
|
|---|
| 105 | mse_reference_number,
|
|---|
| 106 | submitted_at,
|
|---|
| 107 | executed_at,
|
|---|
| 108 | trade_request_id,
|
|---|
| 109 | order_matching_logid
|
|---|
| 110 | )
|
|---|
| 111 | SELECT
|
|---|
| 112 | CASE WHEN random() < 0.5 THEN 'BUY' ELSE 'SELL' END,
|
|---|
| 113 | (random()*500 + 5),
|
|---|
| 114 | (random()*100)::int,
|
|---|
| 115 | CASE
|
|---|
| 116 | WHEN random() < 0.7 THEN 'PENDING'
|
|---|
| 117 | WHEN random() < 0.9 THEN 'EXECUTED'
|
|---|
| 118 | ELSE 'CANCELLED'
|
|---|
| 119 | END,
|
|---|
| 120 | (random()*500 + 5),
|
|---|
| 121 | (random()*10),
|
|---|
| 122 | upper(md5(i::text)),
|
|---|
| 123 | now(),
|
|---|
| 124 | now(),
|
|---|
| 125 | (1 + (random()*999999)::int),
|
|---|
| 126 | (1 + (random()*999999)::int)
|
|---|
| 127 | FROM generate_series(1, 1000000) i;
|
|---|
| 128 |
|
|---|
| 129 |
|
|---|
| 130 | INSERT INTO order_matching_log (
|
|---|
| 131 | broker_order_id,
|
|---|
| 132 | checked_price,
|
|---|
| 133 | result,
|
|---|
| 134 | checked_at
|
|---|
| 135 | )
|
|---|
| 136 | SELECT
|
|---|
| 137 | (1 + (random()*999999)::int),
|
|---|
| 138 | (random()*500 + 5),
|
|---|
| 139 | CASE
|
|---|
| 140 | WHEN random() < 0.5 THEN 'MATCHED'
|
|---|
| 141 | WHEN random() < 0.8 THEN 'NO_MATCH'
|
|---|
| 142 | ELSE 'PARTIAL'
|
|---|
| 143 | END,
|
|---|
| 144 | now() - (random()*1000 || ' minutes')::interval
|
|---|
| 145 | FROM generate_series(1, 1000000);
|
|---|
| 146 |
|
|---|
| 147 |
|
|---|
| 148 | INSERT INTO "transaction" (
|
|---|
| 149 | price,
|
|---|
| 150 | quantity,
|
|---|
| 151 | timestamp,
|
|---|
| 152 | type,
|
|---|
| 153 | origin,
|
|---|
| 154 | user_id,
|
|---|
| 155 | stock_id
|
|---|
| 156 | )
|
|---|
| 157 | SELECT
|
|---|
| 158 | (random()*500 + 5),
|
|---|
| 159 | (random()*100)::int,
|
|---|
| 160 | now() - (random()*2000 || ' hours')::interval,
|
|---|
| 161 | CASE WHEN random() < 0.5 THEN 'BUY' ELSE 'SELL' END,
|
|---|
| 162 | CASE WHEN random() < 0.7 THEN 'INTERNAL' ELSE 'EXTERNAL' END,
|
|---|
| 163 | (1 + (random()*99999)::int),
|
|---|
| 164 | (1 + (random()*499)::int)
|
|---|
| 165 | FROM generate_series(1, 2000000);
|
|---|
| 166 |
|
|---|
| 167 |
|
|---|
| 168 | INSERT INTO payment_transaction (
|
|---|
| 169 | amount,
|
|---|
| 170 | type,
|
|---|
| 171 | status,
|
|---|
| 172 | timestamp,
|
|---|
| 173 | bank_account_id
|
|---|
| 174 | )
|
|---|
| 175 | SELECT
|
|---|
| 176 | (random()*10000)::bigint,
|
|---|
| 177 | CASE WHEN random() < 0.5 THEN 'DEPOSIT' ELSE 'WITHDRAWAL' END,
|
|---|
| 178 | CASE
|
|---|
| 179 | WHEN random() < 0.7 THEN 'SUCCESS'
|
|---|
| 180 | WHEN random() < 0.9 THEN 'PENDING'
|
|---|
| 181 | ELSE 'FAILED'
|
|---|
| 182 | END,
|
|---|
| 183 | now() - (random()*1000 || ' hours')::interval,
|
|---|
| 184 | (1 + (random()*99999)::int)
|
|---|
| 185 | FROM generate_series(1, 500000);
|
|---|
| 186 |
|
|---|
| 187 |
|
|---|
| 188 | INSERT INTO dividend (amount_per_share, paymentdate, stock_id)
|
|---|
| 189 | SELECT
|
|---|
| 190 | (random()*5),
|
|---|
| 191 | CURRENT_DATE - (random()*365)::int,
|
|---|
| 192 | (1 + (random()*499)::int)
|
|---|
| 193 | FROM generate_series(1, 10000);
|
|---|
| 194 |
|
|---|
| 195 | INSERT INTO dividend_payment (totalAmount, paid_at, dividend_id, users_id)
|
|---|
| 196 | SELECT
|
|---|
| 197 | (random()*1000),
|
|---|
| 198 | CURRENT_DATE - (random()*365)::int,
|
|---|
| 199 | (1 + (random()*9999)::int),
|
|---|
| 200 | (1 + (random()*99999)::int)
|
|---|
| 201 | FROM generate_series(1, 50000);
|
|---|
| 202 |
|
|---|
| 203 |
|
|---|
| 204 | INSERT INTO cfd_position (
|
|---|
| 205 | status,
|
|---|
| 206 | quantity,
|
|---|
| 207 | profit_loss,
|
|---|
| 208 | opened_at,
|
|---|
| 209 | close_price,
|
|---|
| 210 | open_price,
|
|---|
| 211 | users_id,
|
|---|
| 212 | stock_id
|
|---|
| 213 | )
|
|---|
| 214 | SELECT
|
|---|
| 215 | CASE WHEN random() < 0.5 THEN 'OPEN' ELSE 'CLOSED' END,
|
|---|
| 216 | (random()*100)::int,
|
|---|
| 217 | (random()*2000 - 1000),
|
|---|
| 218 | CURRENT_DATE - (random()*365)::int,
|
|---|
| 219 | (random()*500),
|
|---|
| 220 | (random()*500),
|
|---|
| 221 | (1 + (random()*99999)::int),
|
|---|
| 222 | (1 + (random()*499)::int)
|
|---|
| 223 | FROM generate_series(1, 100000);
|
|---|
| 224 |
|
|---|
| 225 |
|
|---|
| 226 | INSERT INTO watchlist (price_above, price_below, stock_id, user_id)
|
|---|
| 227 | SELECT
|
|---|
| 228 | (random()*500 + 50),
|
|---|
| 229 | (random()*50),
|
|---|
| 230 | (1 + (random()*499)::int),
|
|---|
| 231 | (1 + (random()*99999)::int)
|
|---|
| 232 | FROM generate_series(1, 200000); |
|---|