/*
 * Orvanta API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.2.0
 * Contact: contact@orvanta.cloud
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WorkspaceComparison {
    /// All items with changes ahead are visible by the user of the request.
    #[serde(rename = "all_ahead_items_visible")]
    pub all_ahead_items_visible: bool,
    /// All items with changes behind are visible by the user of the request.
    #[serde(rename = "all_behind_items_visible")]
    pub all_behind_items_visible: bool,
    /// Whether the comparison was skipped. This happens with old forks that where not being kept track of
    #[serde(rename = "skipped_comparison")]
    pub skipped_comparison: bool,
    /// List of differences found between workspaces
    #[serde(rename = "diffs")]
    pub diffs: Vec<models::WorkspaceItemDiff>,
    #[serde(rename = "summary")]
    pub summary: Box<models::CompareSummary>,
}

impl WorkspaceComparison {
    pub fn new(all_ahead_items_visible: bool, all_behind_items_visible: bool, skipped_comparison: bool, diffs: Vec<models::WorkspaceItemDiff>, summary: models::CompareSummary) -> WorkspaceComparison {
        WorkspaceComparison {
            all_ahead_items_visible,
            all_behind_items_visible,
            skipped_comparison,
            diffs,
            summary: Box::new(summary),
        }
    }
}

