feat: Add seed_test_data script to populate initial test data for events, testimonials, hackathons, and mentors

This commit is contained in:
MythEclipse
2025-10-08 23:03:00 +07:00
parent 8c2527d61e
commit 466ba3391a
14 changed files with 395 additions and 54 deletions
+2 -2
View File
@@ -219,8 +219,8 @@ impl<'a> TeamsRepository<'a> {
let now = Instant::now();
let db = &self.state.surrealdb_ws;
let sql = format!(
"SELECT team.* FROM {} AS membership
INNER JOIN {} AS team ON membership.team_id = team.id
"SELECT team.* FROM {} membership
INNER JOIN {} team ON membership.team_id = team.id
WHERE membership.user_id = $user_id
AND membership.is_active = true
AND team.is_deleted = false
+6 -2
View File
@@ -87,8 +87,12 @@ impl<'a> UsersRepository<'a> {
.with_fetch("role")
.with_fetch("role.permissions");
let sql = builder.build();
let user_opt: Option<UsersDetailQueryDto> =
builder.apply_bindings(db.query(sql)).await?.take(0)?;
// Some SurrealDB queries may return multiple rows (e.g., duplicates).
// Safely take all rows and pick the first valid user (not deleted and with a valid role).
let rows: Vec<UsersDetailQueryDto> = builder.apply_bindings(db.query(sql)).await?.take(0)?;
let user_opt: Option<UsersDetailQueryDto> = rows
.into_iter()
.find(|u| !u.is_deleted && !u.role.is_deleted && u.role.updated_at.is_some());
let elapsed = now.elapsed();
if std::env::var("RUST_ENV").unwrap_or_else(|_| "development".to_string())