Initial commit: split VNOX monorepo into VNOX-Server

Unified server binary (vnox-serverd) combining:
- Gateway (TCP, auth, channels, sessions, SQLite)
- Voice-node (UDP relay, Opus, jitter buffer)

Standalone gateway (vnox-gateway) and voice-node (vnox-voice-node) preserved as sub-crates.
This commit is contained in:
loki5512344 2026-07-09 11:52:56 +02:00
commit e751e0bf5b
94 changed files with 9771 additions and 0 deletions

View file

@ -0,0 +1,38 @@
use anyhow::Result;
impl super::Storage {
pub async fn increment_dm_unread(&self, dm_id: &str, recipient_id: &str) -> Result<()> {
let (u1, _u2) = sqlx::query_as::<_, (String, String)>(
"SELECT user1_id,user2_id FROM direct_messages WHERE id=?",
)
.bind(dm_id)
.fetch_one(&self.pool)
.await?;
if recipient_id == u1 {
sqlx::query("UPDATE direct_messages SET unread_count_2=unread_count_2+1 WHERE id=?")
.bind(dm_id)
.execute(&self.pool)
.await?;
} else {
sqlx::query("UPDATE direct_messages SET unread_count_1=unread_count_1+1 WHERE id=?")
.bind(dm_id)
.execute(&self.pool)
.await?;
}
Ok(())
}
pub async fn reset_dm_unread(&self, dm_id: &str, user_id: &str) -> Result<()> {
sqlx::query(
"UPDATE direct_messages SET \
unread_count_1 = CASE WHEN user1_id=? THEN 0 ELSE unread_count_1 END, \
unread_count_2 = CASE WHEN user2_id=? THEN 0 ELSE unread_count_2 END WHERE id=?",
)
.bind(user_id)
.bind(user_id)
.bind(dm_id)
.execute(&self.pool)
.await?;
Ok(())
}
}