// 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;
use bt_gatt::GattTypes;

/// Represents a connection to a single peer and manages its audio streams.
pub struct BapUnicastClient<T: GattTypes> {
    peer_id: PeerId,
    #[allow(unused)]
    gatt_client: T::Client,
    // TODO: Add ASCS and PACS clients here.
}

impl<T: GattTypes> BapUnicastClient<T> {
    pub fn new(peer_id: PeerId, gatt_client: T::Client) -> Self {
        Self { peer_id, gatt_client }
    }

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