use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)] pub struct UserProfile { pub user_id: Uuid, pub full_name: Option, pub company: Option, pub location: Option, pub website_url: Option, pub twitter_username: Option, pub timezone: Option, pub language: Option, pub profile_readme: Option, pub created_at: DateTime, pub updated_at: DateTime, } impl UserProfile { pub async fn find_by_user_id( pool: &sqlx::PgPool, user_id: Uuid, ) -> Result, sqlx::Error> { sqlx::query_as::<_, UserProfile>( "SELECT user_id, full_name, company, location, website_url, twitter_username, \ timezone, language, profile_readme, created_at, updated_at \ FROM user_profile WHERE user_id = $1", ) .bind(user_id) .fetch_optional(pool) .await } }