pub(super) async fn upsert_rotations( user_id: &str, is_public: bool, rotations: &[PreparedRotation], ) -> Result<()>