diff --git a/database-service/src/characters.rs b/database-service/src/characters.rs index c7b72b6..e1ad69d 100644 --- a/database-service/src/characters.rs +++ b/database-service/src/characters.rs @@ -142,9 +142,13 @@ impl CharacterRepository { return Ok(characters); } + // Update the is_active flag + let query = "UPDATE character SET \"isActive\" = (\"deletedAt\" IS NULL OR \"deletedAt\" > now()) WHERE \"userId\" = $1"; + let _ = sqlx::query(query).bind(user_id.clone()).execute(&self.pool).await?; + // Fetch from database let characters = sqlx::query_as::<_, Character>( - "SELECT id, \"userId\" as user_id, name, money, inventory, stats, skills, looks, position, \"createdAt\" as created_at, \"updatedAt\" as updated_at, extract(epoch from (\"deletedAt\" - now()))::BIGINT as deleted_at, \"isActive\" as is_active FROM character WHERE \"userId\" = $1 AND \"isActive\" = true", + "SELECT id, \"userId\" as user_id, name, money, inventory, stats, skills, looks, position, \"createdAt\" as created_at, \"updatedAt\" as updated_at, extract(epoch from (\"deletedAt\" - now()))::BIGINT as deleted_at, (\"deletedAt\" IS NULL OR \"deletedAt\" > now()) AS is_active FROM character WHERE \"userId\" = $1 AND \"isActive\" = true", ) .bind(user_id) .fetch_all(&self.pool)