*/ public static function export( Requests $requests, int $user_id, callable $product_name ): array { $items = array(); foreach ( $requests->for_user( $user_id, self::LIMIT ) as $row ) { $items[] = array( 'id' => 'fitzaro-tryon-' . (string) $row['id'], 'data' => array( 'product' => (string) $product_name( (int) $row['product_id'] ), 'status' => (string) $row['status'], 'date' => (string) $row['created_at'], ), ); } return $items; } /** * Deletes the user's requests and their photos. Returns the number of requests removed. * * @param Requests $requests Request storage. * @param FileStore $files Private files. * @param int $user_id User ID. */ public static function erase( Requests $requests, FileStore $files, int $user_id ): int { $removed = 0; foreach ( $requests->for_user( $user_id, self::LIMIT ) as $row ) { $files->delete( (string) ( $row['upload_path'] ?? '' ) ); $files->delete( (string) ( $row['result_path'] ?? '' ) ); if ( $requests->delete( (string) $row['id'] ) ) { ++$removed; } } return $removed; } }