// Copyright 2026 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

use bt_common::PeerId;

/// Represents a connection to a single peer and manages its audio streams.
#[derive(Debug)]
pub struct BapUnicastClient {
    peer_id: PeerId,
    // TODO: Add ASCS and PACS clients here.
}

impl BapUnicastClient {
    pub fn new(peer_id: PeerId) -> Self {
        Self { peer_id }
    }

    pub fn peer_id(&self) -> PeerId {
        self.peer_id
    }
}
