From ab06c37a71911027ace20b7bee5a80e1bb6a3d90 Mon Sep 17 00:00:00 2001 From: Sebastiaan de Schaetzen Date: Mon, 9 Jun 2025 08:46:04 +0200 Subject: [PATCH] Add CpuAsset model and CpuRepository for CPU asset management --- .../be/seeseepuff/pcinv/models/CpuAsset.java | 65 +++++++++++++++++++ .../pcinv/repositories/CpuRepository.java | 12 ++++ 2 files changed, 77 insertions(+) create mode 100644 src/main/java/be/seeseepuff/pcinv/models/CpuAsset.java create mode 100644 src/main/java/be/seeseepuff/pcinv/repositories/CpuRepository.java diff --git a/src/main/java/be/seeseepuff/pcinv/models/CpuAsset.java b/src/main/java/be/seeseepuff/pcinv/models/CpuAsset.java new file mode 100644 index 0000000..a73e769 --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/models/CpuAsset.java @@ -0,0 +1,65 @@ +package be.seeseepuff.pcinv.models; + +import be.seeseepuff.pcinv.meta.*; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +/** + * Represents a CPU or similar device. + */ +@Getter +@Setter +@Entity +@AssetInfo( + displayName = "Central Processing Unit", + pluralName = "Central Processing Units", + type = "cpu" +) +@Table(name = "cpu_assets") +public class CpuAsset implements Asset +{ + @Id + @GeneratedValue + private long id; + + @OneToOne(orphanRemoval = true) + private GenericAsset asset; + + @Description("The number of cores in the CPU.") + @Property("Cores") + private int cores; + + @Description("The number of threads in the CPU.") + @Property("Threads") + private int threads; + + @Description("The base clock speed of the CPU in MHz.") + @Property("Base Clock Speed (MHz)") + private int baseClockSpeed; + + @Description("The boost clock speed of the CPU in MHz.") + @Property("Boost Clock Speed (MHz)") + @HideInOverview + private int boostClockSpeed; + + @Description("The thermal design power (TDP) of the CPU in watts.") + @Property("Thermal Design Power (TDP) (W)") + private int tdp; + + @Description("The socket type of the CPU.") + @Property("Socket Type") + @InputList + private String socketType; + + @Description("The architecture of the CPU, e.g., x86, ARM, etc.") + @Property("Architecture") + @HideInOverview + @InputList + private String architecture; + + @Description("The manufacturing process of the CPU in nanometers.") + @Property("Manufacturing Process (nm)") + @HideInOverview + private int manufacturingProcess; +} diff --git a/src/main/java/be/seeseepuff/pcinv/repositories/CpuRepository.java b/src/main/java/be/seeseepuff/pcinv/repositories/CpuRepository.java new file mode 100644 index 0000000..8cb13c6 --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/repositories/CpuRepository.java @@ -0,0 +1,12 @@ +package be.seeseepuff.pcinv.repositories; + +import be.seeseepuff.pcinv.models.CpuAsset; +import org.springframework.data.jpa.repository.JpaRepository; + +@SuppressWarnings("unused") +public interface CpuRepository extends JpaRepository, AssetRepository { + @Override + default Class getAssetType() { + return CpuAsset.class; + } +}