#![allow(dead_code)]
use forklaunch_core::persistence::compliance::{
ComplianceEntity, ComplianceField, ComplianceLevel, ComplianceMetadata,
};
pub struct UserStorage;
impl ComplianceMetadata for UserStorage {
const ENTITY: &'static str = "User";
const FIELDS: &'static [ComplianceField] = &[
ComplianceField {
rust_name: "email",
storage_name: "email",
level: ComplianceLevel::None,
nullable: false,
},
ComplianceField {
rust_name: "firstName",
storage_name: "firstName",
level: ComplianceLevel::None,
nullable: false,
},
ComplianceField {
rust_name: "lastName",
storage_name: "lastName",
level: ComplianceLevel::None,
nullable: false,
},
ComplianceField {
rust_name: "phoneNumber",
storage_name: "phoneNumber",
level: ComplianceLevel::None,
nullable: true,
},
ComplianceField {
rust_name: "subscription",
storage_name: "subscription",
level: ComplianceLevel::None,
nullable: true,
},
ComplianceField {
rust_name: "providerFields",
storage_name: "providerFields",
level: ComplianceLevel::None,
nullable: true,
},
];
}
pub struct OrganizationStorage;
impl ComplianceMetadata for OrganizationStorage {
const ENTITY: &'static str = "Organization";
const FIELDS: &'static [ComplianceField] = &[
ComplianceField {
rust_name: "name",
storage_name: "name",
level: ComplianceLevel::None,
nullable: false,
},
ComplianceField {
rust_name: "domain",
storage_name: "domain",
level: ComplianceLevel::None,
nullable: false,
},
ComplianceField {
rust_name: "logoUrl",
storage_name: "logoUrl",
level: ComplianceLevel::None,
nullable: true,
},
ComplianceField {
rust_name: "subscription",
storage_name: "subscription",
level: ComplianceLevel::None,
nullable: false,
},
ComplianceField {
rust_name: "providerFields",
storage_name: "providerFields",
level: ComplianceLevel::None,
nullable: true,
},
ComplianceField {
rust_name: "status",
storage_name: "status",
level: ComplianceLevel::None,
nullable: false,
},
];
}
pub struct RoleStorage;
impl ComplianceMetadata for RoleStorage {
const ENTITY: &'static str = "Role";
const FIELDS: &'static [ComplianceField] = &[ComplianceField {
rust_name: "name",
storage_name: "name",
level: ComplianceLevel::None,
nullable: false,
}];
}
pub struct PermissionStorage;
impl ComplianceMetadata for PermissionStorage {
const ENTITY: &'static str = "Permission";
const FIELDS: &'static [ComplianceField] = &[ComplianceField {
rust_name: "slug",
storage_name: "slug",
level: ComplianceLevel::None,
nullable: false,
}];
}
pub fn declarations() -> Vec<ComplianceEntity> {
vec![
ComplianceEntity::of::<UserStorage>(
"fl_iam_directory.data[kind=user]",
"json-record-members",
),
ComplianceEntity::of::<OrganizationStorage>(
"fl_iam_directory.data[kind=organization]",
"json-record-members",
),
ComplianceEntity::of::<RoleStorage>(
"fl_iam_directory.data[kind=role]",
"json-record-members",
),
ComplianceEntity::of::<PermissionStorage>(
"fl_iam_directory.data[kind=permission]",
"json-record-members",
),
]
}