//! Types for error handling and retry logic tests

use std::time::Duration;

#[derive(Debug, Clone)]
pub struct DownloadRequest {
    pub description: String,
}

impl DownloadRequest {
    pub fn new_test_request() -> Self {
        Self {
            description: "Test download".to_string(),
        }
    }
}

#[derive(Debug, Clone)]
pub struct DownloadResult {
    pub retry_count: u32,
    pub was_rate_limited: bool,
    pub total_wait_time: Duration,
}

#[derive(Debug, Clone)]
pub struct ScheduleResponse {
    pub job_id: String,
}

#[derive(Debug, Clone)]
pub struct StatusResponse {
    pub job_details: JobDetails,
}

#[derive(Debug, Clone)]
pub struct JobDetails {
    pub status: u32,
}
