rustauth_plugins/phone_number/
schema.rs1use rustauth_core::db::{DbField, DbFieldType, TableOptions};
2use rustauth_core::plugin::PluginSchemaContribution;
3
4#[derive(Debug, Clone, Default, PartialEq, Eq)]
5pub struct PhoneNumberSchemaOptions {
6 pub user: TableOptions,
7}
8
9pub(crate) const PHONE_NUMBER_FIELD: &str = "phone_number";
10pub(crate) const PHONE_NUMBER_VERIFIED_FIELD: &str = "phone_number_verified";
11
12pub(crate) fn phone_number_field(options: &PhoneNumberSchemaOptions) -> PluginSchemaContribution {
13 PluginSchemaContribution::field(
14 "user",
15 PHONE_NUMBER_FIELD,
16 DbField::new(
17 options
18 .user
19 .field_names
20 .get("phoneNumber")
21 .or_else(|| options.user.field_names.get("phone_number"))
22 .cloned()
23 .unwrap_or_else(|| "phone_number".to_owned()),
24 DbFieldType::String,
25 )
26 .optional()
27 .unique(),
28 )
29}
30
31pub(crate) fn phone_number_verified_field(
32 options: &PhoneNumberSchemaOptions,
33) -> PluginSchemaContribution {
34 PluginSchemaContribution::field(
35 "user",
36 PHONE_NUMBER_VERIFIED_FIELD,
37 DbField::new(
38 options
39 .user
40 .field_names
41 .get("phoneNumberVerified")
42 .or_else(|| options.user.field_names.get("phone_number_verified"))
43 .cloned()
44 .unwrap_or_else(|| "phone_number_verified".to_owned()),
45 DbFieldType::Boolean,
46 )
47 .optional(),
48 )
49}