Skip to main content

authx_core/models/
credential.rs

1use serde::{Deserialize, Serialize};
2use uuid::Uuid;
3
4#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
5#[serde(rename_all = "snake_case")]
6pub enum CredentialKind {
7    Password,
8    Passkey,
9    OauthToken,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
13pub struct Credential {
14    pub id: Uuid,
15    pub user_id: Uuid,
16    pub kind: CredentialKind,
17    pub credential_hash: String,
18    pub metadata: serde_json::Value,
19}
20
21#[derive(Debug, Clone)]
22pub struct CreateCredential {
23    pub user_id: Uuid,
24    pub kind: CredentialKind,
25    pub credential_hash: String,
26    pub metadata: Option<serde_json::Value>,
27}