use thiserror::Error; /// Represents errors that can occur during Bluesky profile import operations. /// /// These errors typically happen when attempting to import a user's Bluesky profile /// (`app.bsky.actor.profile`) to create a Smokesignal profile on first login. #[derive(Debug, Error)] #[allow(clippy::enum_variant_names)] pub(crate) enum ProfileImportError { /// Failed to fetch the Bluesky profile from the user's PDS. #[error("error-smokesignal-profile-import-2 Failed to fetch Bluesky profile: {0}")] FetchFailed(String), /// Failed to parse the Bluesky profile record. #[error("error-smokesignal-profile-import-3 Failed to parse Bluesky profile: {0}")] ParseFailed(String), /// Failed to download the avatar blob from PDS. #[error("error-smokesignal-profile-import-4 Failed to download avatar: {0}")] AvatarDownloadFailed(String), /// Failed to process the avatar image through the image pipeline. #[error("error-smokesignal-profile-import-5 Failed to process avatar: {0}")] AvatarProcessFailed(String), /// Failed to upload the processed avatar to the user's PDS. #[error("error-smokesignal-profile-import-6 Failed to upload avatar: {0}")] AvatarUploadFailed(String), /// Failed to write the new Smokesignal profile to the user's PDS. #[error("error-smokesignal-profile-import-7 Failed to write profile to PDS: {0}")] PdsWriteFailed(String), /// Failed to store the profile locally in the database. #[error("error-smokesignal-profile-import-8 Failed to store profile locally: {0}")] StorageFailed(String), }