pub struct InitiatePaymentUseCase { /* private fields */ }Expand description
Use Case: Initiate Payment
Initiates a payment transaction for article access. This creates a pending transaction that will be confirmed after on-chain verification.
Responsibilities:
- Validate input (DTO validation)
- Verify article exists and is purchasable
- Verify creator can receive payments
- Check for duplicate transaction signature (prevent replay attacks)
- Create domain Transaction entity
- Persist via repository
- Return response DTO
Implementations§
Source§impl InitiatePaymentUseCase
impl InitiatePaymentUseCase
pub fn new( transaction_repository: Arc<dyn TransactionRepository>, article_repository: Arc<dyn ArticleRepository>, creator_repository: Arc<dyn CreatorRepository>, ) -> Self
pub async fn execute( &self, request: InitiatePaymentRequest, ) -> Result<InitiatePaymentResponse>
Auto Trait Implementations§
impl Freeze for InitiatePaymentUseCase
impl !RefUnwindSafe for InitiatePaymentUseCase
impl Send for InitiatePaymentUseCase
impl Sync for InitiatePaymentUseCase
impl Unpin for InitiatePaymentUseCase
impl UnsafeUnpin for InitiatePaymentUseCase
impl !UnwindSafe for InitiatePaymentUseCase
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more