/*
 * Artifact Keeper API
 *
 * Enterprise artifact registry supporting 45+ package formats.
 *
 * The version of the OpenAPI document: 1.2.1
 * 
 * Generated by: https://openapi-generator.tech
 */

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

/// OciBlobRepoFootprint : Per-repository row in the OCI blob footprint report.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct OciBlobRepoFootprint {
    /// Number of `oci_blobs` rows attributed to this repository.
    #[serde(rename = "blob_rows")]
    pub blob_rows: i64,
    /// Sum of `oci_blobs.size_bytes` for this repository's rows. Because OCI blob storage is content-addressed and deduplicated across repos, the same physical bytes can be counted under more than one repository here; see [`OciBlobFootprintReport::physical_bytes`] for the dedup-aware total.
    #[serde(rename = "logical_bytes")]
    pub logical_bytes: i64,
    /// Repository id owning these `oci_blobs` rows.
    #[serde(rename = "repository_id")]
    pub repository_id: uuid::Uuid,
}

impl OciBlobRepoFootprint {
    /// Per-repository row in the OCI blob footprint report.
    pub fn new(blob_rows: i64, logical_bytes: i64, repository_id: uuid::Uuid) -> OciBlobRepoFootprint {
        OciBlobRepoFootprint {
            blob_rows,
            logical_bytes,
            repository_id,
        }
    }
}

