From 51820545a0404f28aa08bbc68dd052332fac4efe Mon Sep 17 00:00:00 2001 From: Sebastiaan de Schaetzen Date: Sun, 8 Jun 2025 15:03:46 +0200 Subject: [PATCH] Add Chassis asset model and repository; define properties and metadata --- .../seeseepuff/pcinv/models/ChassisAsset.java | 50 +++++++++++++++++++ .../pcinv/repositories/ChassisRepository.java | 12 +++++ 2 files changed, 62 insertions(+) create mode 100644 src/main/java/be/seeseepuff/pcinv/models/ChassisAsset.java create mode 100644 src/main/java/be/seeseepuff/pcinv/repositories/ChassisRepository.java diff --git a/src/main/java/be/seeseepuff/pcinv/models/ChassisAsset.java b/src/main/java/be/seeseepuff/pcinv/models/ChassisAsset.java new file mode 100644 index 0000000..9cb63b9 --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/models/ChassisAsset.java @@ -0,0 +1,50 @@ +package be.seeseepuff.pcinv.models; + +import be.seeseepuff.pcinv.meta.AssetInfo; +import be.seeseepuff.pcinv.meta.Description; +import be.seeseepuff.pcinv.meta.HideInOverview; +import be.seeseepuff.pcinv.meta.Property; +import jakarta.persistence.*; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Entity +@AssetInfo( + displayName = "Chassis", + pluralName = "Chassis", + type = "chassis" +) +@Table(name = "chassis_assets") +public class ChassisAsset implements Asset +{ + @Id + @GeneratedValue + private long id; + + /// The generic asset associated with this RAM. + @OneToOne(orphanRemoval = true) + private GenericAsset asset; + + @Description("The number of 5.25\" drive bays in the chassis.") + @Property("5.25\" Bays") + @HideInOverview + private Long bay5_25Count; + + @Description("The number of 3.5\" drive bays in the chassis.") + @Property("3.5\" Bays") + private Long bay3_5Count; + + @Description("The number of internal 3.5\" drive bays in the chassis.") + @Property("Internal 3.5\" Bays") + private Long internalBay3_5Count; + + @Description("The number of 2.5\" drive bays in the chassis.") + @Property("2.5\" Bays") + private Long bay2_5Count; + + @Description("The number of expansion slots in the chassis.") + @Property("Expansion Slots") + private Long expansionSlotCount; +} diff --git a/src/main/java/be/seeseepuff/pcinv/repositories/ChassisRepository.java b/src/main/java/be/seeseepuff/pcinv/repositories/ChassisRepository.java new file mode 100644 index 0000000..35fc809 --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/repositories/ChassisRepository.java @@ -0,0 +1,12 @@ +package be.seeseepuff.pcinv.repositories; + +import be.seeseepuff.pcinv.models.ChassisAsset; +import org.springframework.data.jpa.repository.JpaRepository; + +@SuppressWarnings("unused") +public interface ChassisRepository extends JpaRepository, AssetRepository { + @Override + default Class getAssetType() { + return ChassisAsset.class; + } +}