// Generated by diesel_ext #![allow(unused, non_snake_case)] #![allow(clippy::all)] pub mod pds { #![allow(unnameable_types, unused_qualifications)] use anyhow::{Result, bail}; use chrono::DateTime; use chrono::offset::Utc; use diesel::backend::Backend; use diesel::deserialize::FromSql; use diesel::prelude::*; use diesel::serialize::{Output, ToSql}; use diesel::sql_types::Text; use diesel::sqlite::Sqlite; use diesel::*; use serde::{Deserialize, Serialize}; #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(request_uri))] #[diesel(table_name = crate::schema::pds::oauth_par_requests)] #[diesel(check_for_backend(Sqlite))] pub struct OauthParRequest { pub request_uri: String, pub client_id: String, pub response_type: String, pub code_challenge: String, pub code_challenge_method: String, pub state: Option, pub login_hint: Option, pub scope: Option, pub redirect_uri: Option, pub response_mode: Option, pub display: Option, pub created_at: i64, pub expires_at: i64, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(code))] #[diesel(table_name = crate::schema::pds::oauth_authorization_codes)] #[diesel(check_for_backend(Sqlite))] pub struct OauthAuthorizationCode { pub code: String, pub client_id: String, pub subject: String, pub code_challenge: String, pub code_challenge_method: String, pub redirect_uri: String, pub scope: Option, pub created_at: i64, pub expires_at: i64, pub used: bool, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(token))] #[diesel(table_name = crate::schema::pds::oauth_refresh_tokens)] #[diesel(check_for_backend(Sqlite))] pub struct OauthRefreshToken { pub token: String, pub client_id: String, pub subject: String, pub dpop_thumbprint: String, pub scope: Option, pub created_at: i64, pub expires_at: i64, pub revoked: bool, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(jti))] #[diesel(table_name = crate::schema::pds::oauth_used_jtis)] #[diesel(check_for_backend(Sqlite))] pub struct OauthUsedJti { pub jti: String, pub issuer: String, pub created_at: i64, pub expires_at: i64, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(did))] #[diesel(table_name = crate::schema::pds::account)] #[diesel(check_for_backend(Sqlite))] pub struct Account { pub did: String, pub email: String, #[diesel(column_name = recoveryKey)] #[serde(rename = "recoveryKey")] pub recovery_key: Option, pub password: String, #[diesel(column_name = createdAt)] #[serde(rename = "createdAt")] pub created_at: String, #[diesel(column_name = invitesDisabled)] #[serde(rename = "invitesDisabled")] pub invites_disabled: i16, #[diesel(column_name = emailConfirmedAt)] #[serde(rename = "emailConfirmedAt")] pub email_confirmed_at: Option, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(did))] #[diesel(table_name = crate::schema::pds::actor)] #[diesel(check_for_backend(Sqlite))] pub struct Actor { pub did: String, pub handle: Option, #[diesel(column_name = createdAt)] #[serde(rename = "createdAt")] pub created_at: String, #[diesel(column_name = takedownRef)] #[serde(rename = "takedownRef")] pub takedown_ref: Option, #[diesel(column_name = deactivatedAt)] #[serde(rename = "deactivatedAt")] pub deactivated_at: Option, #[diesel(column_name = deleteAfter)] #[serde(rename = "deleteAfter")] pub delete_after: Option, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(did, name))] #[diesel(table_name = crate::schema::pds::app_password)] #[diesel(check_for_backend(Sqlite))] pub struct AppPassword { pub did: String, pub name: String, pub password: String, #[diesel(column_name = createdAt)] #[serde(rename = "createdAt")] pub created_at: String, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(did))] #[diesel(table_name = crate::schema::pds::did_doc)] #[diesel(check_for_backend(Sqlite))] pub struct DidDoc { pub did: String, pub doc: String, #[diesel(column_name = updatedAt)] #[serde(rename = "updatedAt")] pub updated_at: i64, } #[derive( Clone, Copy, Debug, PartialEq, Eq, Hash, Default, Serialize, Deserialize, AsExpression, )] #[diesel(sql_type = Text)] pub enum EmailTokenPurpose { #[default] ConfirmEmail, UpdateEmail, ResetPassword, DeleteAccount, PlcOperation, } impl EmailTokenPurpose { pub fn as_str(&self) -> &'static str { match self { EmailTokenPurpose::ConfirmEmail => "confirm_email", EmailTokenPurpose::UpdateEmail => "update_email", EmailTokenPurpose::ResetPassword => "reset_password", EmailTokenPurpose::DeleteAccount => "delete_account", EmailTokenPurpose::PlcOperation => "plc_operation", } } pub fn from_str(s: &str) -> Result { match s { "confirm_email" => Ok(EmailTokenPurpose::ConfirmEmail), "update_email" => Ok(EmailTokenPurpose::UpdateEmail), "reset_password" => Ok(EmailTokenPurpose::ResetPassword), "delete_account" => Ok(EmailTokenPurpose::DeleteAccount), "plc_operation" => Ok(EmailTokenPurpose::PlcOperation), _ => bail!("Unable to parse as EmailTokenPurpose: `{s:?}`"), } } } impl Queryable for EmailTokenPurpose where DB: backend::Backend, String: deserialize::FromSql, { type Row = String; fn build(s: String) -> deserialize::Result { Ok(Self::from_str(&s)?) } } impl serialize::ToSql for EmailTokenPurpose where String: serialize::ToSql, { fn to_sql<'lifetime>( &'lifetime self, out: &mut serialize::Output<'lifetime, '_, sqlite::Sqlite>, ) -> serialize::Result { serialize::ToSql::::to_sql( match self { Self::ConfirmEmail => "confirm_email", Self::UpdateEmail => "update_email", Self::ResetPassword => "reset_password", Self::DeleteAccount => "delete_account", Self::PlcOperation => "plc_operation", }, out, ) } } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(purpose, did))] #[diesel(table_name = crate::schema::pds::email_token)] #[diesel(check_for_backend(Sqlite))] pub struct EmailToken { pub purpose: EmailTokenPurpose, pub did: String, pub token: String, #[diesel(column_name = requestedAt)] #[serde(rename = "requestedAt")] pub requested_at: String, } #[derive( Queryable, Identifiable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(code))] #[diesel(table_name = crate::schema::pds::invite_code)] #[diesel(check_for_backend(Sqlite))] pub struct InviteCode { pub code: String, #[diesel(column_name = availableUses)] #[serde(rename = "availableUses")] pub available_uses: i32, pub disabled: i16, #[diesel(column_name = forAccount)] #[serde(rename = "forAccount")] pub for_account: String, #[diesel(column_name = createdBy)] #[serde(rename = "createdBy")] pub created_by: String, #[diesel(column_name = createdAt)] #[serde(rename = "createdAt")] pub created_at: String, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(code, usedBy))] #[diesel(table_name = crate::schema::pds::invite_code_use)] #[diesel(check_for_backend(Sqlite))] pub struct InviteCodeUse { pub code: String, #[diesel(column_name = usedBy)] #[serde(rename = "usedBy")] pub used_by: String, #[diesel(column_name = usedAt)] #[serde(rename = "usedAt")] pub used_at: String, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(table_name = crate::schema::pds::refresh_token)] #[diesel(check_for_backend(Sqlite))] pub struct RefreshToken { pub id: String, pub did: String, #[diesel(column_name = expiresAt)] #[serde(rename = "expiresAt")] pub expires_at: String, #[diesel(column_name = nextId)] #[serde(rename = "nextId")] pub next_id: Option, #[diesel(column_name = appPasswordName)] #[serde(rename = "appPasswordName")] pub app_password_name: Option, } #[derive( Queryable, Identifiable, Selectable, Insertable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(seq))] #[diesel(table_name = crate::schema::pds::repo_seq)] #[diesel(check_for_backend(Sqlite))] pub struct RepoSeq { #[diesel(deserialize_as = i64)] pub seq: Option, pub did: String, #[diesel(column_name = eventType)] #[serde(rename = "eventType")] pub event_type: String, #[diesel(sql_type = Bytea)] pub event: Vec, #[diesel(deserialize_as = i16)] pub invalidated: Option, #[diesel(column_name = sequencedAt)] #[serde(rename = "sequencedAt")] pub sequenced_at: String, } impl RepoSeq { pub fn new(did: String, event_type: String, event: Vec, sequenced_at: String) -> Self { RepoSeq { did, event_type, event, sequenced_at, invalidated: None, // default values used on insert seq: None, // default values used on insert } } } #[derive( Queryable, Identifiable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(id))] #[diesel(table_name = crate::schema::pds::token)] #[diesel(check_for_backend(Sqlite))] pub struct Token { pub id: String, pub did: String, #[diesel(column_name = tokenId)] #[serde(rename = "tokenId")] pub token_id: String, #[diesel(column_name = createdAt)] #[serde(rename = "createdAt")] pub created_at: DateTime, #[diesel(column_name = updatedAt)] #[serde(rename = "updatedAt")] pub updated_at: DateTime, #[diesel(column_name = expiresAt)] #[serde(rename = "expiresAt")] pub expires_at: DateTime, #[diesel(column_name = clientId)] #[serde(rename = "clientId")] pub client_id: String, #[diesel(column_name = clientAuth)] #[serde(rename = "clientAuth")] pub client_auth: String, #[diesel(column_name = deviceId)] #[serde(rename = "deviceId")] pub device_id: Option, pub parameters: String, pub details: Option, pub code: Option, #[diesel(column_name = currentRefreshToken)] #[serde(rename = "currentRefreshToken")] pub current_refresh_token: Option, } #[derive( Queryable, Identifiable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(id))] #[diesel(table_name = crate::schema::pds::device)] #[diesel(check_for_backend(Sqlite))] pub struct Device { pub id: String, #[diesel(column_name = sessionId)] #[serde(rename = "sessionId")] pub session_id: Option, #[diesel(column_name = userAgent)] #[serde(rename = "userAgent")] pub user_agent: Option, #[diesel(column_name = ipAddress)] #[serde(rename = "ipAddress")] pub ip_address: String, #[diesel(column_name = lastSeenAt)] #[serde(rename = "lastSeenAt")] pub last_seen_at: DateTime, } #[derive( Queryable, Identifiable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(did))] #[diesel(table_name = crate::schema::pds::device_account)] #[diesel(check_for_backend(Sqlite))] pub struct DeviceAccount { pub did: String, #[diesel(column_name = deviceId)] #[serde(rename = "deviceId")] pub device_id: String, #[diesel(column_name = authenticatedAt)] #[serde(rename = "authenticatedAt")] pub authenticated_at: DateTime, pub remember: bool, #[diesel(column_name = authorizedClients)] #[serde(rename = "authorizedClients")] pub authorized_clients: String, } #[derive( Queryable, Identifiable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(id))] #[diesel(table_name = crate::schema::pds::authorization_request)] #[diesel(check_for_backend(Sqlite))] pub struct AuthorizationRequest { pub id: String, pub did: Option, #[diesel(column_name = deviceId)] #[serde(rename = "deviceId")] pub device_id: Option, #[diesel(column_name = clientId)] #[serde(rename = "clientId")] pub client_id: String, #[diesel(column_name = clientAuth)] #[serde(rename = "clientAuth")] pub client_auth: String, pub parameters: String, #[diesel(column_name = expiresAt)] #[serde(rename = "expiresAt")] pub expires_at: DateTime, pub code: Option, } #[derive( Queryable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(table_name = crate::schema::pds::used_refresh_token)] #[diesel(check_for_backend(Sqlite))] pub struct UsedRefreshToken { #[diesel(column_name = tokenId)] #[serde(rename = "tokenId")] pub token_id: String, #[diesel(column_name = refreshToken)] #[serde(rename = "refreshToken")] pub refresh_token: String, } } pub mod actor_store { #![allow(unnameable_types, unused_qualifications)] use anyhow::{Result, bail}; use chrono::DateTime; use chrono::offset::Utc; use diesel::backend::Backend; use diesel::deserialize::FromSql; use diesel::prelude::*; use diesel::serialize::{Output, ToSql}; use diesel::sql_types::Text; use diesel::sqlite::Sqlite; use diesel::*; use serde::{Deserialize, Serialize}; #[derive( Queryable, Identifiable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(table_name = crate::schema::actor_store::account_pref)] #[diesel(check_for_backend(Sqlite))] pub struct AccountPref { pub id: i32, pub name: String, #[diesel(column_name = valueJson)] #[serde(rename = "valueJson")] pub value_json: Option, } #[derive( Queryable, Identifiable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(uri, path))] #[diesel(table_name = crate::schema::actor_store::backlink)] #[diesel(check_for_backend(Sqlite))] pub struct Backlink { pub uri: String, pub path: String, #[diesel(column_name = linkTo)] #[serde(rename = "linkTo")] pub link_to: String, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(treat_none_as_null = true)] #[diesel(primary_key(cid))] #[diesel(table_name = crate::schema::actor_store::blob)] #[diesel(check_for_backend(Sqlite))] pub struct Blob { pub cid: String, pub did: String, #[diesel(column_name = mimeType)] #[serde(rename = "mimeType")] pub mime_type: String, pub size: i32, #[diesel(column_name = tempKey)] #[serde(rename = "tempKey")] pub temp_key: Option, pub width: Option, pub height: Option, #[diesel(column_name = createdAt)] #[serde(rename = "createdAt")] pub created_at: String, #[diesel(column_name = takedownRef)] #[serde(rename = "takedownRef")] pub takedown_ref: Option, } #[derive( Queryable, Identifiable, Insertable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(uri))] #[diesel(table_name = crate::schema::actor_store::record)] #[diesel(check_for_backend(Sqlite))] pub struct Record { pub uri: String, pub cid: String, pub did: String, pub collection: String, pub rkey: String, #[diesel(column_name = repoRev)] #[serde(rename = "repoRev")] pub repo_rev: Option, #[diesel(column_name = indexedAt)] #[serde(rename = "indexedAt")] pub indexed_at: String, #[diesel(column_name = takedownRef)] #[serde(rename = "takedownRef")] pub takedown_ref: Option, } #[derive( QueryableByName, Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(blobCid, recordUri))] #[diesel(table_name = crate::schema::actor_store::record_blob)] #[diesel(check_for_backend(Sqlite))] pub struct RecordBlob { #[diesel(column_name = blobCid, sql_type = Text)] #[serde(rename = "blobCid")] pub blob_cid: String, #[diesel(column_name = recordUri, sql_type = Text)] #[serde(rename = "recordUri")] pub record_uri: String, #[diesel(sql_type = Text)] pub did: String, } #[derive( Queryable, Identifiable, Selectable, Insertable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(cid))] #[diesel(table_name = crate::schema::actor_store::repo_block)] #[diesel(check_for_backend(Sqlite))] pub struct RepoBlock { #[diesel(sql_type = Text)] pub cid: String, pub did: String, #[diesel(column_name = repoRev)] #[serde(rename = "repoRev")] pub repo_rev: String, pub size: i32, #[diesel(sql_type = Bytea)] pub content: Vec, } #[derive( Queryable, Identifiable, Selectable, Clone, Debug, PartialEq, Default, Serialize, Deserialize, )] #[diesel(primary_key(did))] #[diesel(table_name = crate::schema::actor_store::repo_root)] #[diesel(check_for_backend(Sqlite))] pub struct RepoRoot { pub did: String, pub cid: String, pub rev: String, #[diesel(column_name = indexedAt)] #[serde(rename = "indexedAt")] pub indexed_at: String, } }