use serde::{Deserialize, Serialize};
use chrono::{DateTime, Utc};
#[derive(Debug, Serialize, Deserialize)]
pub struct UserResponse {
pub id: i64,
pub email: String,
pub role: String,
pub is_active: bool,
pub created_at: DateTime<Utc>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ApiTokenResponse {
pub id: String,
pub name: String,
pub token: Option<String>, pub scopes: Vec<String>,
pub created_at: DateTime<Utc>,
pub expires_at: Option<DateTime<Utc>>,
pub last_used_at: Option<DateTime<Utc>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ApiTokensListResponse {
pub tokens: Vec<ApiTokenResponse>,
pub total: usize,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CreateTokenRequest {
pub name: String,
pub scopes: Vec<String>,
pub expires_in_days: Option<i64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct CreateTokenResponse {
pub token: String,
pub token_id: String,
pub name: String,
pub scopes: Vec<String>,
pub expires_at: Option<DateTime<Utc>>,
}
#[derive(Debug, Clone)]
pub struct CurrentUser {
pub id: i64,
pub email: String,
pub role: String,
}