package com.psg.dlsysinfo.dl_sysinfo_server.dto;

import java.time.LocalDateTime;
import java.util.List;

public class DetailedDeviceDTO extends DeviceDTO {
    private Long deviceId;
    private String hostname;
    private String osName;
    private String osVersion;
    private String windowsVersion;
    private String windowsBuild;
    private String osArchitecture;
    private String processorName;
    private String processorArchitecture;
    private List<String> gpuNames;
    private String totalMemory;
    private String lastBootTime;
    private LocalDateTime lastCheckedIn;

    private List<DriveInfoDTO> drives;
    private List<IpAddressDTO> ipAddresses;
    private List<InstalledAppDTO> installedApplications;

    private String clientName; // ✅ Added field

    // ✅ Getter
    public String getClientName() {
        return clientName;
    }

    // ✅ Setter
    public void setClientName(String clientName) {
        this.clientName = clientName;
    }

    public Long getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }

    public String getHostname() {
        return hostname;
    }

    public void setHostname(String hostname) {
        this.hostname = hostname;
    }

    public String getOsName() {
        return osName;
    }

    public void setOsName(String osName) {
        this.osName = osName;
    }

    public String getOsVersion() {
        return osVersion;
    }

    public void setOsVersion(String osVersion) {
        this.osVersion = osVersion;
    }

    public String getWindowsVersion() {
        return windowsVersion;
    }

    public void setWindowsVersion(String windowsVersion) {
        this.windowsVersion = windowsVersion;
    }

    public String getWindowsBuild() {
        return windowsBuild;
    }

    public void setWindowsBuild(String windowsBuild) {
        this.windowsBuild = windowsBuild;
    }

    public String getOsArchitecture() {
        return osArchitecture;
    }

    public void setOsArchitecture(String osArchitecture) {
        this.osArchitecture = osArchitecture;
    }

    public String getProcessorName() {
        return processorName;
    }

    public void setProcessorName(String processorName) {
        this.processorName = processorName;
    }

    public String getProcessorArchitecture() {
        return processorArchitecture;
    }

    public void setProcessorArchitecture(String processorArchitecture) {
        this.processorArchitecture = processorArchitecture;
    }

    public List<String> getGpuNames() {
        return gpuNames;
    }

    public void setGpuNames(List<String> gpuNames) {
        this.gpuNames = gpuNames;
    }

    public String getTotalMemory() {
        return totalMemory;
    }

    public void setTotalMemory(String totalMemory) {
        this.totalMemory = totalMemory;
    }

    public String getLastBootTime() {
        return lastBootTime;
    }

    public void setLastBootTime(String lastBootTime) {
        this.lastBootTime = lastBootTime;
    }

    public LocalDateTime getLastCheckedIn() {
        return lastCheckedIn;
    }

    public void setLastCheckedIn(LocalDateTime lastCheckedIn) {
        this.lastCheckedIn = lastCheckedIn;
    }

    public List<DriveInfoDTO> getDrives() {
        return drives;
    }

    public void setDrives(List<DriveInfoDTO> drives) {
        this.drives = drives;
    }

    public List<IpAddressDTO> getIpAddresses() {
        return ipAddresses;
    }

    public void setIpAddresses(List<IpAddressDTO> ipAddresses) {
        this.ipAddresses = ipAddresses;
    }

    public List<InstalledAppDTO> getInstalledApplications() {
        return installedApplications;
    }

    public void setInstalledApplications(List<InstalledAppDTO> installedApplications) {
        this.installedApplications = installedApplications;
    }
}
