use chrono::NaiveDateTime;
use serde::Serialize;
use crate::status::{ProvenTxReqStatus, SyncStatus, TransactionStatus};
use crate::types::{Chain, StorageProvidedBy};
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Paged {
pub limit: i64,
pub offset: i64,
}
#[derive(Debug, Default)]
pub struct UserPartial {
pub user_id: Option<i64>,
pub identity_key: Option<String>,
pub active_storage: Option<String>,
}
#[derive(Debug, Default)]
pub struct FindUsersArgs {
pub partial: UserPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CertificatePartial {
pub certificate_id: Option<i64>,
pub user_id: Option<i64>,
pub cert_type: Option<String>,
pub serial_number: Option<String>,
pub certifier: Option<String>,
pub subject: Option<String>,
pub verifier: Option<String>,
pub revocation_outpoint: Option<String>,
pub signature: Option<String>,
pub is_deleted: Option<bool>,
}
#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FindCertificatesArgs {
pub partial: CertificatePartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default)]
pub struct CertificateFieldPartial {
pub certificate_id: Option<i64>,
pub user_id: Option<i64>,
pub field_name: Option<String>,
pub field_value: Option<String>,
pub master_key: Option<String>,
}
#[derive(Debug, Default)]
pub struct FindCertificateFieldsArgs {
pub partial: CertificateFieldPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default)]
pub struct CommissionPartial {
pub commission_id: Option<i64>,
pub user_id: Option<i64>,
pub transaction_id: Option<i64>,
pub satoshis: Option<i64>,
pub key_offset: Option<String>,
pub is_redeemed: Option<bool>,
}
#[derive(Debug, Default)]
pub struct FindCommissionsArgs {
pub partial: CommissionPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default)]
pub struct MonitorEventPartial {
pub id: Option<i64>,
pub event: Option<String>,
}
#[derive(Debug, Default)]
pub struct FindMonitorEventsArgs {
pub partial: MonitorEventPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct OutputBasketPartial {
pub basket_id: Option<i64>,
pub user_id: Option<i64>,
pub name: Option<String>,
pub is_deleted: Option<bool>,
pub number_of_desired_utxos: Option<i64>,
pub minimum_desired_utxo_value: Option<i64>,
}
#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FindOutputBasketsArgs {
pub partial: OutputBasketPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default)]
pub struct OutputTagPartial {
pub output_tag_id: Option<i64>,
pub user_id: Option<i64>,
pub tag: Option<String>,
pub is_deleted: Option<bool>,
}
#[derive(Debug, Default)]
pub struct FindOutputTagsArgs {
pub partial: OutputTagPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default)]
pub struct OutputTagMapPartial {
pub output_tag_id: Option<i64>,
pub output_id: Option<i64>,
pub is_deleted: Option<bool>,
}
#[derive(Debug, Default)]
pub struct FindOutputTagMapsArgs {
pub partial: OutputTagMapPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct OutputPartial {
pub output_id: Option<i64>,
pub user_id: Option<i64>,
pub transaction_id: Option<i64>,
pub basket_id: Option<i64>,
pub spendable: Option<bool>,
pub change: Option<bool>,
pub vout: Option<i32>,
pub satoshis: Option<i64>,
pub provided_by: Option<StorageProvidedBy>,
pub purpose: Option<String>,
pub output_type: Option<String>,
pub txid: Option<String>,
pub sender_identity_key: Option<String>,
pub spent_by: Option<i64>,
}
#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FindOutputsArgs {
pub partial: OutputPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
pub tx_status: Option<Vec<TransactionStatus>>,
pub no_script: bool,
pub include_basket: bool,
pub include_tags: bool,
}
#[derive(Debug, Default)]
pub struct ProvenTxPartial {
pub proven_tx_id: Option<i64>,
pub txid: Option<String>,
pub height: Option<i32>,
pub block_hash: Option<String>,
}
#[derive(Debug, Default)]
pub struct FindProvenTxsArgs {
pub partial: ProvenTxPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ProvenTxReqPartial {
pub proven_tx_req_id: Option<i64>,
pub proven_tx_id: Option<i64>,
pub status: Option<ProvenTxReqStatus>,
pub txid: Option<String>,
pub batch: Option<String>,
pub notified: Option<bool>,
pub attempts: Option<i32>,
}
#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FindProvenTxReqsArgs {
pub partial: ProvenTxReqPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
pub statuses: Option<Vec<ProvenTxReqStatus>>,
}
#[derive(Debug, Default)]
pub struct SettingsPartial {
pub storage_identity_key: Option<String>,
pub storage_name: Option<String>,
pub chain: Option<Chain>,
pub wallet_settings_json: Option<String>,
}
#[derive(Debug, Default)]
pub struct FindSettingsArgs {
pub partial: SettingsPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default)]
pub struct SyncStatePartial {
pub sync_state_id: Option<i64>,
pub user_id: Option<i64>,
pub storage_identity_key: Option<String>,
pub storage_name: Option<String>,
pub status: Option<SyncStatus>,
pub init: Option<bool>,
pub sync_map: Option<String>,
pub when: Option<chrono::NaiveDateTime>,
}
#[derive(Debug, Default)]
pub struct FindSyncStatesArgs {
pub partial: SyncStatePartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default)]
pub struct TransactionPartial {
pub transaction_id: Option<i64>,
pub user_id: Option<i64>,
pub proven_tx_id: Option<i64>,
pub status: Option<TransactionStatus>,
pub reference: Option<String>,
pub is_outgoing: Option<bool>,
pub txid: Option<String>,
pub raw_tx: Option<Vec<u8>>,
}
#[derive(Debug, Default)]
pub struct FindTransactionsArgs {
pub partial: TransactionPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
pub status: Option<Vec<TransactionStatus>>,
pub no_raw_tx: bool,
}
#[derive(Debug, Default)]
pub struct TxLabelPartial {
pub tx_label_id: Option<i64>,
pub user_id: Option<i64>,
pub label: Option<String>,
pub is_deleted: Option<bool>,
}
#[derive(Debug, Default)]
pub struct FindTxLabelsArgs {
pub partial: TxLabelPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Default)]
pub struct TxLabelMapPartial {
pub tx_label_id: Option<i64>,
pub transaction_id: Option<i64>,
pub is_deleted: Option<bool>,
}
#[derive(Debug, Default)]
pub struct FindTxLabelMapsArgs {
pub partial: TxLabelMapPartial,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}
#[derive(Debug, Clone)]
pub struct PurgeParams {
pub purge_spent: bool,
pub purge_completed: bool,
pub purge_failed: bool,
pub purge_spent_age: u64,
pub purge_completed_age: u64,
pub purge_failed_age: u64,
pub purge_monitor_events: bool,
pub purge_monitor_events_age: u64,
}
impl Default for PurgeParams {
fn default() -> Self {
Self {
purge_spent: false,
purge_completed: false,
purge_failed: true,
purge_spent_age: 2 * 604_800_000, purge_completed_age: 2 * 604_800_000,
purge_failed_age: 5 * 86_400_000, purge_monitor_events: true,
purge_monitor_events_age: 30 * 86_400_000, }
}
}
#[derive(Debug)]
pub struct FindForUserSincePagedArgs {
pub user_id: i64,
pub since: Option<NaiveDateTime>,
pub paged: Option<Paged>,
}