* * @since 0.1.0 */ public function find_stale_open( DateTimeImmutable $before, int $limit ): array; /** * Abandoned intents whose last activity is older than $before. * * @param DateTimeImmutable $before Cut-off. * @param int $limit Max rows. * @return list * * @since 0.1.0 */ public function find_expired_abandoned( DateTimeImmutable $before, int $limit ): array; /** * Intents in a status, newest activity first. * * @param OrderIntentStatus $status Status. * @param int $limit Max rows. * @return list * * @since 0.1.0 */ public function find_by_status( OrderIntentStatus $status, int $limit ): array; /** * Converting intents stuck since before $before. * * @param DateTimeImmutable $before Cut-off. * @param int $limit Max rows. * @return list * * @since 0.1.0 */ public function find_stuck_converting( DateTimeImmutable $before, int $limit ): array; /** * Intents whose customer_draft email matches (case-insensitive). * * @param string $email Email address. * @return list * * @since 0.1.0 */ public function find_by_draft_email( string $email ): array; /** * Hard-delete an intent and cascading children (cart, items, transaction intents). * * @param int $id Intent id. * * @since 0.1.0 */ public function delete_cascade( int $id ): void; }