#class NasService:
#    def __init__(self, nas_address, username, password):
#        self.nas_address = '192.168.1.84'
#        self.username = 'Daftjoe'
#        self.password = 'NAS69sisfim'
#
#    def connect(self):
#        # Logic to connect to the NAS device
#        pass
#
#    def retrieve_music_files(self):
#        # Logic to retrieve music files from the NAS
#        pass
#
#    def stream_music(self, file_path):
#        # Logic to stream music from the NAS
#        pass

from smbprotocol.connection import Connection
from smbprotocol.session import Session
from smbprotocol.tree import TreeConnect
import uuid

class NasService:
    def __init__(self, nas_address, username, password):
        self.nas_address = '192.168.1.84'
        self.username = 'Daftjoe'
        self.password = 'NAS69sisfim'
        self.connection = None
        self.session = None
        self.tree = None

    def connect(self):
        try:
            # Establish SMB connection
            self.connection = Connection(uuid.uuid4(), self.nas_address, 445)
            self.connection.connect()

            # Create an SMB session
            self.session = Session(self.connection, self.username, self.password)
            self.session.connect()

            # Connect to the NAS share (e.g., "Music" share)
            share_name = "Music"  # Replace with your NAS share name
            self.tree = TreeConnect(self.session, f"\\\\{self.nas_address}\\{share_name}")
            self.tree.connect()

            print("Connected to NAS successfully.")
        except Exception as e:
            print(f"Failed to connect to NAS: {e}")
            self.disconnect()

    def disconnect(self):
        if self.tree:
            self.tree.disconnect()
        if self.session:
            self.session.disconnect()
        if self.connection:
            self.connection.disconnect()
        print("Disconnected from NAS.")