| 1 |
|
|---|
| 2 | INSERT INTO COUNTRY (name, currency)
|
|---|
| 3 | VALUES
|
|---|
| 4 | ('Germany', 'EUR'),
|
|---|
| 5 | ('France', 'EUR'),
|
|---|
| 6 | ('Italy', 'EUR'),
|
|---|
| 7 | ('Spain', 'EUR'),
|
|---|
| 8 | ('Netherlands', 'EUR'),
|
|---|
| 9 | ('Portugal', 'EUR'),
|
|---|
| 10 | ('Greece', 'EUR'),
|
|---|
| 11 | ('Austria', 'EUR'),
|
|---|
| 12 | ('Belgium', 'EUR'),
|
|---|
| 13 | ('United Kingdom', 'GBP'),
|
|---|
| 14 | ('Switzerland', 'CHF'),
|
|---|
| 15 | ('Sweden', 'SEK'),
|
|---|
| 16 | ('Norway', 'NOK'),
|
|---|
| 17 | ('Denmark', 'DKK'),
|
|---|
| 18 | ('Poland', 'PLN'),
|
|---|
| 19 | ('Czech Republic', 'CZK'),
|
|---|
| 20 | ('Hungary', 'HUF');
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 | INSERT INTO CITY (country_id, name)
|
|---|
| 25 | SELECT
|
|---|
| 26 | (RANDOM()*4 + 1)::INT,
|
|---|
| 27 | 'City_' || g
|
|---|
| 28 | FROM generate_series(1,500) g;
|
|---|
| 29 |
|
|---|
| 30 |
|
|---|
| 31 |
|
|---|
| 32 | INSERT INTO CATEGORY (parent_id, name)
|
|---|
| 33 | SELECT
|
|---|
| 34 | CASE WHEN g % 5 = 0 THEN NULL ELSE (RANDOM()*99 + 1)::INT END,
|
|---|
| 35 | 'Category_' || g
|
|---|
| 36 | FROM generate_series(1,100) g;
|
|---|
| 37 |
|
|---|
| 38 |
|
|---|
| 39 |
|
|---|
| 40 | INSERT INTO APP_USER (email, username, first_name, last_name, num_trip_members)
|
|---|
| 41 | SELECT
|
|---|
| 42 | 'user' || g || '@mail.com',
|
|---|
| 43 | 'user_' || g,
|
|---|
| 44 | 'Name_' || g,
|
|---|
| 45 | 'Surname_' || g,
|
|---|
| 46 | (RANDOM()*5)::INT
|
|---|
| 47 | FROM generate_series(1, 500000) g;
|
|---|
| 48 |
|
|---|
| 49 |
|
|---|
| 50 |
|
|---|
| 51 | INSERT INTO PLACE (city_id, category_id, name, description, address, latitude, longitude, avg_price, rating)
|
|---|
| 52 | SELECT
|
|---|
| 53 | (RANDOM()*499 + 1)::INT,
|
|---|
| 54 | (RANDOM()*99 + 1)::INT,
|
|---|
| 55 | 'Place_' || g,
|
|---|
| 56 | 'Nice place ' || g,
|
|---|
| 57 | 'Street ' || g,
|
|---|
| 58 | (RANDOM()*180 - 90),
|
|---|
| 59 | (RANDOM()*360 - 180),
|
|---|
| 60 | (RANDOM()*100)::DECIMAL(10,2),
|
|---|
| 61 | (RANDOM()*5)::DECIMAL(3,2)
|
|---|
| 62 | FROM generate_series(1,1000000) g;
|
|---|
| 63 |
|
|---|
| 64 |
|
|---|
| 65 |
|
|---|
| 66 |
|
|---|
| 67 | INSERT INTO OPENING_HOURS (place_id, day_of_week, open_time, close_time, is_closed)
|
|---|
| 68 | SELECT
|
|---|
| 69 | p.place_id,
|
|---|
| 70 | CASE (RANDOM()*6)::INT
|
|---|
| 71 | WHEN 0 THEN 'Monday'
|
|---|
| 72 | WHEN 1 THEN 'Tuesday'
|
|---|
| 73 | WHEN 2 THEN 'Wednesday'
|
|---|
| 74 | WHEN 3 THEN 'Thursday'
|
|---|
| 75 | WHEN 4 THEN 'Friday'
|
|---|
| 76 | WHEN 5 THEN 'Saturday'
|
|---|
| 77 | ELSE 'Sunday'
|
|---|
| 78 | END,
|
|---|
| 79 | (TIME '06:00:00' + (RANDOM()*6)::INT * INTERVAL '1 hour'),
|
|---|
| 80 | (TIME '14:00:00' + (RANDOM()*8)::INT * INTERVAL '1 hour'),
|
|---|
| 81 | (RANDOM() < 0.05)
|
|---|
| 82 | FROM generate_series(1,1000000) g
|
|---|
| 83 | CROSS JOIN LATERAL (
|
|---|
| 84 | SELECT place_id
|
|---|
| 85 | FROM PLACE
|
|---|
| 86 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 87 | LIMIT 1
|
|---|
| 88 | ) p;
|
|---|
| 89 |
|
|---|
| 90 |
|
|---|
| 91 |
|
|---|
| 92 |
|
|---|
| 93 | INSERT INTO TRANSPORT_MODE (name, estimated_cost, avg_speed_kmh)
|
|---|
| 94 | VALUES
|
|---|
| 95 | ('Bus', 1.5, 45),
|
|---|
| 96 | ('Train', 2.15, 50),
|
|---|
| 97 | ('Bicycle', 10.00, 20),
|
|---|
| 98 | ('Walking', 0.00, 5),
|
|---|
| 99 | ('Taxi', 20.0, 50),
|
|---|
| 100 | ('Metro', 2.5, 40);
|
|---|
| 101 |
|
|---|
| 102 |
|
|---|
| 103 |
|
|---|
| 104 | INSERT INTO TRIP_STATUS (user_id, status_name, status_comment, updated_at)
|
|---|
| 105 | SELECT
|
|---|
| 106 | u.user_id,
|
|---|
| 107 | CASE
|
|---|
| 108 | WHEN RANDOM() < 0.6 THEN 'completed'::trip_status_name
|
|---|
| 109 | WHEN RANDOM() < 0.3 THEN 'in_progress'::trip_status_name
|
|---|
| 110 | ELSE 'cancelled'::trip_status_name
|
|---|
| 111 | END,
|
|---|
| 112 | CASE
|
|---|
| 113 | WHEN RANDOM() < 0.5 THEN 'Trip updated successfully'
|
|---|
| 114 | END,
|
|---|
| 115 | NOW() - (RANDOM()*365 || ' days')::INTERVAL
|
|---|
| 116 | FROM generate_series(1,1000000) g
|
|---|
| 117 | CROSS JOIN LATERAL (
|
|---|
| 118 | SELECT user_id
|
|---|
| 119 | FROM APP_USER
|
|---|
| 120 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 121 | LIMIT 1
|
|---|
| 122 | ) u;
|
|---|
| 123 |
|
|---|
| 124 |
|
|---|
| 125 |
|
|---|
| 126 |
|
|---|
| 127 | INSERT INTO TRIP_HISTORY (user_id, total_spent, notes, completed_at)
|
|---|
| 128 | SELECT
|
|---|
| 129 | u.user_id,
|
|---|
| 130 | (RANDOM()*10000)::DECIMAL(10,2),
|
|---|
| 131 | 'History_' || g,
|
|---|
| 132 | NOW() - (RANDOM()*1000 || ' days')::INTERVAL
|
|---|
| 133 | FROM generate_series(1,10000000) g
|
|---|
| 134 | CROSS JOIN LATERAL (
|
|---|
| 135 | SELECT user_id
|
|---|
| 136 | FROM APP_USER
|
|---|
| 137 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 138 | LIMIT 1
|
|---|
| 139 | ) u;
|
|---|
| 140 |
|
|---|
| 141 |
|
|---|
| 142 |
|
|---|
| 143 |
|
|---|
| 144 | INSERT INTO TRIP (user_id, city_id, status_id, history_id, title, start_date, end_date, total_budget, estimated_cost)
|
|---|
| 145 | SELECT
|
|---|
| 146 | u.user_id,
|
|---|
| 147 | c.city_id,
|
|---|
| 148 | (
|
|---|
| 149 | SELECT status_id
|
|---|
| 150 | FROM TRIP_STATUS
|
|---|
| 151 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 152 | LIMIT 1
|
|---|
| 153 | ),
|
|---|
| 154 | (
|
|---|
| 155 | SELECT history_id
|
|---|
| 156 | FROM TRIP_HISTORY
|
|---|
| 157 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 158 | LIMIT 1
|
|---|
| 159 | ),
|
|---|
| 160 | 'Trip_' || g,
|
|---|
| 161 | CURRENT_DATE - (RANDOM()*365)::INT,
|
|---|
| 162 | CURRENT_DATE + (RANDOM()*365)::INT,
|
|---|
| 163 | b.total_budget,
|
|---|
| 164 | LEAST(
|
|---|
| 165 | b.total_budget - 0.01,
|
|---|
| 166 | ROUND((b.total_budget * (0.5 + RANDOM() * 0.45))::NUMERIC, 2)
|
|---|
| 167 | )
|
|---|
| 168 | --ova pod treba
|
|---|
| 169 | FROM generate_series(1,2500000) g
|
|---|
| 170 | CROSS JOIN LATERAL (
|
|---|
| 171 | SELECT user_id
|
|---|
| 172 | FROM APP_USER
|
|---|
| 173 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 174 | LIMIT 1
|
|---|
| 175 | ) u
|
|---|
| 176 | CROSS JOIN LATERAL (
|
|---|
| 177 | SELECT city_id
|
|---|
| 178 | FROM CITY
|
|---|
| 179 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 180 | LIMIT 1
|
|---|
| 181 | ) c
|
|---|
| 182 | CROSS JOIN LATERAL (
|
|---|
| 183 | SELECT ROUND((RANDOM()*5000 + 500)::NUMERIC, 2) AS total_budget
|
|---|
| 184 | ) b;
|
|---|
| 185 |
|
|---|
| 186 |
|
|---|
| 187 |
|
|---|
| 188 |
|
|---|
| 189 | INSERT INTO TRIP_MEMBER (user_id, trip_id, first_name, last_name, username, role)
|
|---|
| 190 | SELECT
|
|---|
| 191 | u.user_id,
|
|---|
| 192 | t.trip_id,
|
|---|
| 193 | 'Name_' || g,
|
|---|
| 194 | 'Surname_' || g,
|
|---|
| 195 | 'member_' || g,
|
|---|
| 196 | CASE WHEN RANDOM() > 0.7 THEN 'owner'::user_role ELSE 'member'::user_role END
|
|---|
| 197 | FROM generate_series(1,10000000) g
|
|---|
| 198 | CROSS JOIN LATERAL (
|
|---|
| 199 | SELECT user_id
|
|---|
| 200 | FROM APP_USER
|
|---|
| 201 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 202 | LIMIT 1
|
|---|
| 203 | ) u
|
|---|
| 204 | CROSS JOIN LATERAL (
|
|---|
| 205 | SELECT trip_id
|
|---|
| 206 | FROM TRIP
|
|---|
| 207 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 208 | LIMIT 1
|
|---|
| 209 | ) t;
|
|---|
| 210 |
|
|---|
| 211 |
|
|---|
| 212 |
|
|---|
| 213 |
|
|---|
| 214 | INSERT INTO TRIP_DAY (trip_id, day_number, actual_date)
|
|---|
| 215 | SELECT
|
|---|
| 216 | t.trip_id,
|
|---|
| 217 | (RANDOM()*14 + 1)::INT,
|
|---|
| 218 | CURRENT_DATE + (RANDOM()*365)::INT
|
|---|
| 219 | FROM generate_series(1,1000000) g
|
|---|
| 220 | CROSS JOIN LATERAL (
|
|---|
| 221 | SELECT trip_id
|
|---|
| 222 | FROM TRIP
|
|---|
| 223 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 224 | LIMIT 1
|
|---|
| 225 | ) t;
|
|---|
| 226 |
|
|---|
| 227 |
|
|---|
| 228 |
|
|---|
| 229 |
|
|---|
| 230 | INSERT INTO SCHEDULE_TIME (scheduled_start_time, scheduled_end_time)
|
|---|
| 231 | SELECT
|
|---|
| 232 | (TIME '06:00:00' + (RANDOM()*12)::INT * INTERVAL '1 hour'),
|
|---|
| 233 | (TIME '12:00:00' + (RANDOM()*10)::INT * INTERVAL '1 hour')
|
|---|
| 234 | FROM generate_series(1,500) g;
|
|---|
| 235 |
|
|---|
| 236 |
|
|---|
| 237 | INSERT INTO PLAN_ITEM (trip_day_id, place_id, schedule_time_id, estimated_cost, notes)
|
|---|
| 238 | SELECT
|
|---|
| 239 | td.trip_day_id,
|
|---|
| 240 | p.place_id,
|
|---|
| 241 | s.schedule_time_id,
|
|---|
| 242 | (RANDOM()*200)::DECIMAL(10,2),
|
|---|
| 243 | 'Plan note ' || g
|
|---|
| 244 | FROM generate_series(1,1000000) g
|
|---|
| 245 | CROSS JOIN LATERAL (
|
|---|
| 246 | SELECT trip_day_id
|
|---|
| 247 | FROM TRIP_DAY
|
|---|
| 248 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 249 | LIMIT 1
|
|---|
| 250 | ) td
|
|---|
| 251 | CROSS JOIN LATERAL (
|
|---|
| 252 | SELECT place_id
|
|---|
| 253 | FROM PLACE
|
|---|
| 254 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 255 | LIMIT 1
|
|---|
| 256 | ) p
|
|---|
| 257 | CROSS JOIN LATERAL (
|
|---|
| 258 | SELECT schedule_time_id
|
|---|
| 259 | FROM SCHEDULE_TIME
|
|---|
| 260 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 261 | LIMIT 1
|
|---|
| 262 | ) s;
|
|---|
| 263 |
|
|---|
| 264 |
|
|---|
| 265 |
|
|---|
| 266 |
|
|---|
| 267 | INSERT INTO DISTANCE_SEGMENT (trip_id, predecessor_item_id, successor_item_id, transport_mode_id, distance_km, duration_minutes)
|
|---|
| 268 | SELECT
|
|---|
| 269 | t.trip_id,
|
|---|
| 270 | pi1.plan_item_id,
|
|---|
| 271 | pi2.plan_item_id,
|
|---|
| 272 | tm.transport_mode_id,
|
|---|
| 273 | ROUND((RANDOM()*200 + 1)::NUMERIC, 3),
|
|---|
| 274 | (RANDOM()*240 + 10)::INT
|
|---|
| 275 | FROM generate_series(1,1000000) g
|
|---|
| 276 | CROSS JOIN LATERAL (
|
|---|
| 277 | SELECT trip_id
|
|---|
| 278 | FROM TRIP
|
|---|
| 279 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 280 | LIMIT 1
|
|---|
| 281 | ) t
|
|---|
| 282 | CROSS JOIN LATERAL (
|
|---|
| 283 | SELECT plan_item_id
|
|---|
| 284 | FROM PLAN_ITEM
|
|---|
| 285 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 286 | LIMIT 1
|
|---|
| 287 | ) pi1
|
|---|
| 288 | CROSS JOIN LATERAL (
|
|---|
| 289 | SELECT plan_item_id
|
|---|
| 290 | FROM PLAN_ITEM
|
|---|
| 291 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 292 | LIMIT 1
|
|---|
| 293 | ) pi2
|
|---|
| 294 | CROSS JOIN LATERAL (
|
|---|
| 295 | SELECT transport_mode_id
|
|---|
| 296 | FROM TRANSPORT_MODE
|
|---|
| 297 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 298 | LIMIT 1
|
|---|
| 299 | ) tm
|
|---|
| 300 | WHERE RANDOM() > 0.1;
|
|---|
| 301 |
|
|---|
| 302 |
|
|---|
| 303 |
|
|---|
| 304 |
|
|---|
| 305 | INSERT INTO ACCOMODATION (trip_id, place_id)
|
|---|
| 306 | SELECT
|
|---|
| 307 | t.trip_id,
|
|---|
| 308 | p.place_id
|
|---|
| 309 | FROM generate_series(1,1000000) g
|
|---|
| 310 | CROSS JOIN LATERAL (
|
|---|
| 311 | SELECT trip_id
|
|---|
| 312 | FROM TRIP
|
|---|
| 313 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 314 | LIMIT 1
|
|---|
| 315 | ) t
|
|---|
| 316 | CROSS JOIN LATERAL (
|
|---|
| 317 | SELECT place_id
|
|---|
| 318 | FROM PLACE
|
|---|
| 319 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 320 | LIMIT 1
|
|---|
| 321 | ) p;
|
|---|
| 322 |
|
|---|
| 323 |
|
|---|
| 324 |
|
|---|
| 325 |
|
|---|
| 326 | INSERT INTO REVIEW (user_id, plan_item_id, rating, comment, visited_at, created_at)
|
|---|
| 327 | SELECT
|
|---|
| 328 | u.user_id,
|
|---|
| 329 | pi.plan_item_id,
|
|---|
| 330 | (RANDOM()*5)::DECIMAL(3,2),
|
|---|
| 331 | 'Review ' || g,
|
|---|
| 332 | NOW(),
|
|---|
| 333 | NOW()
|
|---|
| 334 | FROM generate_series(1,500000) g
|
|---|
| 335 | CROSS JOIN LATERAL (
|
|---|
| 336 | SELECT user_id
|
|---|
| 337 | FROM APP_USER
|
|---|
| 338 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 339 | LIMIT 1
|
|---|
| 340 | ) u
|
|---|
| 341 | CROSS JOIN LATERAL (
|
|---|
| 342 | SELECT plan_item_id
|
|---|
| 343 | FROM PLAN_ITEM
|
|---|
| 344 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 345 | LIMIT 1
|
|---|
| 346 | ) pi;
|
|---|
| 347 |
|
|---|
| 348 |
|
|---|
| 349 |
|
|---|
| 350 |
|
|---|
| 351 | INSERT INTO FAVOURITES (user_id, place_id)
|
|---|
| 352 | SELECT
|
|---|
| 353 | u.user_id,
|
|---|
| 354 | p.place_id
|
|---|
| 355 | FROM generate_series(1,1000000) g
|
|---|
| 356 | CROSS JOIN LATERAL (
|
|---|
| 357 | SELECT user_id
|
|---|
| 358 | FROM APP_USER
|
|---|
| 359 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 360 | LIMIT 1
|
|---|
| 361 | ) u
|
|---|
| 362 | CROSS JOIN LATERAL (
|
|---|
| 363 | SELECT place_id
|
|---|
| 364 | FROM PLACE
|
|---|
| 365 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 366 | LIMIT 1
|
|---|
| 367 | ) p
|
|---|
| 368 | ON CONFLICT DO NOTHING;
|
|---|
| 369 |
|
|---|
| 370 |
|
|---|
| 371 |
|
|---|
| 372 |
|
|---|
| 373 | INSERT INTO CHECKLIST (user_id, trip_id, title)
|
|---|
| 374 | SELECT
|
|---|
| 375 | u.user_id,
|
|---|
| 376 | t.trip_id,
|
|---|
| 377 | 'Checklist_' || g
|
|---|
| 378 | FROM generate_series(1,500000) g
|
|---|
| 379 | CROSS JOIN LATERAL (
|
|---|
| 380 | SELECT user_id
|
|---|
| 381 | FROM APP_USER
|
|---|
| 382 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 383 | LIMIT 1
|
|---|
| 384 | ) u
|
|---|
| 385 | CROSS JOIN LATERAL (
|
|---|
| 386 | SELECT trip_id
|
|---|
| 387 | FROM TRIP
|
|---|
| 388 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 389 | LIMIT 1
|
|---|
| 390 | ) t;
|
|---|
| 391 |
|
|---|
| 392 |
|
|---|
| 393 |
|
|---|
| 394 |
|
|---|
| 395 | INSERT INTO CHECKLIST_ITEM (checklist_id, item_id, description, is_checked)
|
|---|
| 396 | SELECT
|
|---|
| 397 | c.item_id,
|
|---|
| 398 | g,
|
|---|
| 399 | CASE (RANDOM()*5)::INT
|
|---|
| 400 | WHEN 0 THEN 'Passport'
|
|---|
| 401 | WHEN 1 THEN 'Tickets'
|
|---|
| 402 | WHEN 2 THEN 'Hotel reservation'
|
|---|
| 403 | WHEN 3 THEN 'Insurance'
|
|---|
| 404 | WHEN 4 THEN 'Clothes'
|
|---|
| 405 | ELSE 'Other item'
|
|---|
| 406 | END,
|
|---|
| 407 | (RANDOM() < 0.3)
|
|---|
| 408 | FROM generate_series(1,1000000) g
|
|---|
| 409 | CROSS JOIN LATERAL (
|
|---|
| 410 | SELECT item_id
|
|---|
| 411 | FROM CHECKLIST
|
|---|
| 412 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 413 | LIMIT 1
|
|---|
| 414 | ) c;
|
|---|
| 415 |
|
|---|
| 416 |
|
|---|
| 417 |
|
|---|
| 418 |
|
|---|
| 419 | INSERT INTO GROUP_CHAT (message_text, sent_at)
|
|---|
| 420 | SELECT
|
|---|
| 421 | 'Message ' || g,
|
|---|
| 422 | NOW() - (RANDOM()*10000 || ' seconds')::INTERVAL
|
|---|
| 423 | FROM generate_series(1,10000000) g;
|
|---|
| 424 |
|
|---|
| 425 |
|
|---|
| 426 |
|
|---|
| 427 |
|
|---|
| 428 | INSERT INTO GROUP_CHAT_TRIP_MEMBER (group_id, trip_member_id)
|
|---|
| 429 | SELECT
|
|---|
| 430 | gc.group_id,
|
|---|
| 431 | tm.trip_member_id
|
|---|
| 432 | FROM generate_series(1,1000000) g
|
|---|
| 433 | CROSS JOIN LATERAL (
|
|---|
| 434 | SELECT group_id
|
|---|
| 435 | FROM GROUP_CHAT
|
|---|
| 436 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 437 | LIMIT 1
|
|---|
| 438 | ) gc
|
|---|
| 439 | CROSS JOIN LATERAL (
|
|---|
| 440 | SELECT trip_member_id
|
|---|
| 441 | FROM TRIP_MEMBER
|
|---|
| 442 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 443 | LIMIT 1
|
|---|
| 444 | ) tm
|
|---|
| 445 | ON CONFLICT DO NOTHING;
|
|---|
| 446 |
|
|---|
| 447 |
|
|---|
| 448 |
|
|---|
| 449 |
|
|---|
| 450 | INSERT INTO NOTIFICATION (group_id, trip_member_id, is_read)
|
|---|
| 451 | SELECT
|
|---|
| 452 | gc.group_id,
|
|---|
| 453 | tm.trip_member_id,
|
|---|
| 454 | (RANDOM() > 0.5)
|
|---|
| 455 | FROM generate_series(1,10000000) g
|
|---|
| 456 | CROSS JOIN LATERAL (
|
|---|
| 457 | SELECT group_id
|
|---|
| 458 | FROM GROUP_CHAT
|
|---|
| 459 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 460 | LIMIT 1
|
|---|
| 461 | ) gc
|
|---|
| 462 | CROSS JOIN LATERAL (
|
|---|
| 463 | SELECT trip_member_id
|
|---|
| 464 | FROM TRIP_MEMBER
|
|---|
| 465 | ORDER BY RANDOM() + (g * 0)
|
|---|
| 466 | LIMIT 1
|
|---|
| 467 | ) tm;
|
|---|
| 468 |
|
|---|
| 469 |
|
|---|
| 470 |
|
|---|
| 471 |
|
|---|
| 472 | UPDATE TRIP t
|
|---|
| 473 | SET
|
|---|
| 474 | estimated_cost = calc.new_estimated_cost,
|
|---|
| 475 | total_budget = calc.new_estimated_cost + ROUND((RANDOM() * 500 + 100)::NUMERIC, 2)
|
|---|
| 476 | FROM (
|
|---|
| 477 | SELECT
|
|---|
| 478 | t2.trip_id,
|
|---|
| 479 | COALESCE(
|
|---|
| 480 | (SELECT SUM(pi.estimated_cost)
|
|---|
| 481 | FROM PLAN_ITEM pi
|
|---|
| 482 | JOIN TRIP_DAY td ON pi.trip_day_id = td.trip_day_id
|
|---|
| 483 | WHERE td.trip_id = t2.trip_id), 0)
|
|---|
| 484 | + COALESCE(
|
|---|
| 485 | (SELECT SUM(ds.distance_km * tm.estimated_cost)
|
|---|
| 486 | FROM DISTANCE_SEGMENT ds
|
|---|
| 487 | JOIN TRANSPORT_MODE tm ON ds.transport_mode_id = tm.transport_mode_id
|
|---|
| 488 | WHERE ds.trip_id = t2.trip_id), 0)
|
|---|
| 489 | AS new_estimated_cost
|
|---|
| 490 | FROM TRIP t2
|
|---|
| 491 | ) calc
|
|---|
| 492 | WHERE t.trip_id = calc.trip_id;
|
|---|