use crate::dto::prelude::*;
#[derive(CandidType, Clone, Debug, Deserialize)]
pub struct ShardingRegistryEntry {
pub pid: Principal,
pub entry: ShardEntry,
}
#[derive(CandidType, Clone, Debug, Deserialize)]
pub struct ShardingRegistryResponse(pub Vec<ShardingRegistryEntry>);
#[derive(CandidType, Clone, Debug, Deserialize)]
pub struct ShardingPartitionKeysResponse(pub Vec<String>);
#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq)]
pub struct ShardEntry {
pub slot: u32,
pub capacity: u32,
pub count: u32,
pub pool: String,
pub canister_role: CanisterRole,
pub created_at: u64,
}
#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq)]
pub enum ShardingPlanStateResponse {
AlreadyAssigned { pid: Principal },
UseExisting { pid: Principal },
CreateAllowed,
CreateBlocked { reason: String },
}