190 lines
10 KiB
Dart
190 lines
10 KiB
Dart
import 'dart:math';
|
|
|
|
import 'package:drift/drift.dart';
|
|
import 'package:sendtrain/database/database.dart';
|
|
|
|
Future<void> seedDb(AppDatabase database) async {
|
|
// seed data setup
|
|
final List<List> sessionValues = [
|
|
[
|
|
'Projecting',
|
|
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.'
|
|
'Climbers Rock Inc.'
|
|
],
|
|
[
|
|
'Moonboard',
|
|
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.'
|
|
'Beta Bloc'
|
|
],
|
|
[
|
|
'Off-Wall Training',
|
|
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.'
|
|
'Climbers Rcok Inc.'
|
|
],
|
|
[
|
|
'Climbing Outdoors',
|
|
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.'
|
|
'Gravity Hamilton'
|
|
],
|
|
[
|
|
'Volume Session',
|
|
'Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.'
|
|
'Up the Bloc'
|
|
],
|
|
];
|
|
|
|
final List<List> mediaItems = [
|
|
[
|
|
'https://www.climbing.com/wp-content/uploads/2022/06/campus-board-e1655470701154.jpeg',
|
|
MediaType.image
|
|
],
|
|
['BgheYcxhrsw', MediaType.youtube]
|
|
];
|
|
|
|
final List<String> actionTypes = [
|
|
"[[{\"actionID\": 0, \"name\": \"1, 3, 5\", \"type\": \"repititions\", \"amount\": 1, \"weight\": 0}, {\"actionID\": 1, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 300}], [{\"actionID\": 2, \"name\": \"1, 3, 5\", \"type\": \"repititions\", \"amount\": 1, \"weight\": 0}, {\"actionID\": 3, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 300}], [{\"actionID\": 4, \"name\": \"1, 3, 5\", \"type\": \"repititions\", \"amount\": 1, \"weight\": 0}, {\"actionID\": 5, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 300}]]",
|
|
"[[{\"actionID\": 0, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weight\": 80}, {\"actionID\": 1, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 5}, {\"actionID\": 2, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weights\": 80}, {\"actionID\": 3, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 300}], [{\"actionID\": 4, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weight\": 80}, {\"actionID\": 5, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 5}, {\"actionID\": 6, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weights\": 80}, {\"actionID\": 7, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 300}], [{\"actionID\": 8, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weight\": 80}, {\"actionID\": 9, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 5}, {\"actionID\": 10, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weights\": 80}, {\"actionID\": 11, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 300}], [{\"actionID\": 12, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weight\": 80}, {\"actionID\": 13, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 5}, {\"actionID\": 14, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weights\": 80}, {\"actionID\": 15, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 300}], [{\"actionID\": 16, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weight\": 80}, {\"actionID\": 17, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 5}, {\"actionID\": 18, \"name\": \"Long Pulls\", \"type\": \"seconds\", \"amount\": 5, \"weights\": 80}, {\"actionID\": 19, \"name\": \"Rest\", \"type\": \"seconds\", \"amount\": 300}]]"
|
|
];
|
|
|
|
final int totalSessions = 15;
|
|
final int totalActivities = 6;
|
|
final int totalActions = 5;
|
|
final int totalMedia = 5;
|
|
final random = Random();
|
|
|
|
// seed loop
|
|
for (int i = 0; i < totalSessions; i++) {
|
|
// session things
|
|
var status = SessionStatus.completed;
|
|
if (i == 0) status = SessionStatus.started;
|
|
if (i == 1) status = SessionStatus.pending;
|
|
|
|
final sessionValue = sessionValues[random.nextInt(sessionValues.length)];
|
|
await database
|
|
.into(database.sessions)
|
|
.insert(SessionsCompanion.insert(
|
|
title: sessionValue[0],
|
|
content: sessionValue[1],
|
|
status: status,
|
|
date: Value(DateTime.now())))
|
|
.then((sessionId) async {
|
|
// activities things
|
|
for (int j = 0; j <= random.nextInt(totalActivities); j++) {
|
|
await database
|
|
.into(database.activities)
|
|
.insert(ActivitiesCompanion.insert(
|
|
title: "Test activity $j",
|
|
type: ActivityType
|
|
.values[random.nextInt(ActivityType.values.length)],
|
|
description:
|
|
"$j Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.",
|
|
category: ActivityCategories
|
|
.values[random.nextInt(ActivityCategories.values.length)]))
|
|
.then((activityId) async {
|
|
// session activity relationships
|
|
await database
|
|
.into(database.sessionActivities)
|
|
.insert(SessionActivitiesCompanion.insert(
|
|
sessionId: sessionId,
|
|
activityId: activityId,
|
|
position: j,
|
|
results: Value("results json, will need to test"),
|
|
achievements: Value("comma, seperated, items"),
|
|
));
|
|
|
|
// actions
|
|
for (int k = 0; k <= random.nextInt(totalActions); k++) {
|
|
await database
|
|
.into(database.actions)
|
|
.insert(ActionsCompanion.insert(
|
|
title: 'Test action $k',
|
|
description:
|
|
'$k Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
|
|
set: actionTypes[random.nextInt(actionTypes.length)]))
|
|
.then((actionId) async {
|
|
// add activity action association
|
|
await database.into(database.activityActions).insert(
|
|
ActivityActionsCompanion.insert(
|
|
activityId: activityId, actionId: actionId, position: k));
|
|
|
|
for (int l = 0; l <= random.nextInt(totalMedia); l++) {
|
|
final mediaItem = mediaItems[random.nextInt(mediaItems.length)];
|
|
await database
|
|
.into(database.mediaItems)
|
|
.insert(MediaItemsCompanion.insert(
|
|
title: 'Media title $l',
|
|
description:
|
|
'Media description $l Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
|
|
reference: mediaItem[0],
|
|
type: mediaItem[1]))
|
|
.then((mediaId) async {
|
|
await database.into(database.objectMediaItems).insert(
|
|
ObjectMediaItemsCompanion.insert(
|
|
objectId: actionId,
|
|
mediaId: mediaId,
|
|
objectType: ObjectType.actions));
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
for (int m = 0; m <= random.nextInt(totalMedia); m++) {
|
|
final mediaItem = mediaItems[random.nextInt(mediaItems.length)];
|
|
await database
|
|
.into(database.mediaItems)
|
|
.insert(MediaItemsCompanion.insert(
|
|
title: 'Media title $m',
|
|
description:
|
|
'Media description $m Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
|
|
reference: mediaItem[0],
|
|
type: mediaItem[1]))
|
|
.then((mediaId) async {
|
|
await database.into(database.objectMediaItems).insert(
|
|
ObjectMediaItemsCompanion.insert(
|
|
objectId: activityId,
|
|
mediaId: mediaId,
|
|
objectType: ObjectType.activities));
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
for (int n = 0; n <= random.nextInt(totalMedia); n++) {
|
|
final mediaItem = mediaItems[random.nextInt(mediaItems.length)];
|
|
await database
|
|
.into(database.mediaItems)
|
|
.insert(MediaItemsCompanion.insert(
|
|
title: 'Media title $n',
|
|
description:
|
|
'Media description $n Beta pully beta beta pinch one arm crimpy. Futuristic pinch, dyno dynamic drop knee climb. Climbing ondra slopey onsight beta ondra power endurance.',
|
|
reference: mediaItem[0],
|
|
type: mediaItem[1]))
|
|
.then((mediaId) async {
|
|
await database.into(database.objectMediaItems).insert(
|
|
ObjectMediaItemsCompanion.insert(
|
|
objectId: sessionId,
|
|
mediaId: mediaId,
|
|
objectType: ObjectType.sessions));
|
|
});
|
|
}
|
|
|
|
await database
|
|
.into(database.mediaItems)
|
|
.insert(MediaItemsCompanion.insert(
|
|
title: 'Locations details',
|
|
description:
|
|
'5155 Harvester Rd #1, Burlington, ON L7L 6V2, Canada',
|
|
reference:
|
|
'https://lh3.googleusercontent.com/places/ANXAkqHz0IeMrJnqjBwQJvYVHv9qSp0huWPCBcdeMZds66wpLofxGAIk3KrYFD2ShEZzqm1A-GO7BfmO3OtRdjSlnO6DAHgyDv_C_7w=s4800-w800',
|
|
type: MediaType.location))
|
|
.then((mediaId) async {
|
|
await database.into(database.objectMediaItems).insert(
|
|
ObjectMediaItemsCompanion.insert(
|
|
objectId: sessionId,
|
|
mediaId: mediaId,
|
|
objectType: ObjectType.activities));
|
|
});
|
|
});
|
|
}
|
|
}
|