authx_core/models/
credential.rs1use 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 Webauthn,
10 OauthToken,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct Credential {
15 pub id: Uuid,
16 pub user_id: Uuid,
17 pub kind: CredentialKind,
18 pub credential_hash: String,
19 pub metadata: serde_json::Value,
20}
21
22#[derive(Debug, Clone)]
23pub struct CreateCredential {
24 pub user_id: Uuid,
25 pub kind: CredentialKind,
26 pub credential_hash: String,
27 pub metadata: Option<serde_json::Value>,
28}