diff --git a/build.gradle.kts b/build.gradle.kts index 9e56f52..5497c36 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,6 +27,7 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-thymeleaf") implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-actuator") compileOnly("org.projectlombok:lombok") developmentOnly("org.springframework.boot:spring-boot-devtools") runtimeOnly("org.postgresql:postgresql") diff --git a/docker-compose.yml b/docker-compose.yml index 3cdc7c1..ed02886 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,8 +2,8 @@ services: database: image: postgres:latest environment: - POSTGRES_USER: pcinvj - POSTGRES_PASSWORD: pcinvj - POSTGRES_DB: pcinvj + POSTGRES_USER: pcinv + POSTGRES_PASSWORD: pcinv + POSTGRES_DB: pcinv ports: - "5432:5432" diff --git a/pcinvj/pcinv/.idea/.gitignore b/pcinvj/pcinv/.idea/.gitignore deleted file mode 100644 index 7bc07ec..0000000 --- a/pcinvj/pcinv/.idea/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Environment-dependent path to Maven home directory -/mavenHomeManager.xml -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/pcinvj/pcinv/.idea/gradle.xml b/pcinvj/pcinv/.idea/gradle.xml deleted file mode 100644 index 49ef579..0000000 --- a/pcinvj/pcinv/.idea/gradle.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/pcinvj/pcinv/.idea/misc.xml b/pcinvj/pcinv/.idea/misc.xml deleted file mode 100644 index 5cd9a10..0000000 --- a/pcinvj/pcinv/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/pcinvj/pcinv/.idea/modules.xml b/pcinvj/pcinv/.idea/modules.xml deleted file mode 100644 index ae57db8..0000000 --- a/pcinvj/pcinv/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/pcinvj/pcinv/.idea/vcs.xml b/pcinvj/pcinv/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/pcinvj/pcinv/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/pcinvj/pcinv/.idea/workspace.xml b/pcinvj/pcinv/.idea/workspace.xml deleted file mode 100644 index 6c86464..0000000 --- a/pcinvj/pcinv/.idea/workspace.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1739869040002 - - - - - - - false - true - - \ No newline at end of file diff --git a/src/main/java/be/seeseepuff/pcinv/models/Asset.java b/src/main/java/be/seeseepuff/pcinv/models/Asset.java new file mode 100644 index 0000000..a3c6b23 --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/models/Asset.java @@ -0,0 +1,37 @@ +package be.seeseepuff.pcinv.models; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import lombok.Getter; +import lombok.Setter; + +/** + * Represents a generic asset in the inventory system. + */ +@Getter +@Setter +@Entity +public class Asset +{ + @Id @GeneratedValue + private Long id; + + /// The QR code attached to the asset, used for identification. + private Long qr; + + /// The brand of the asset. + private String brand; + + /// The model of the asset + private String model; + + /// The asset's serial number. + private String serialNumber; + + /// A description of the asset, providing additional details. + private String description; + + /// The state of the asset, indicating its condition. + private AssetCondition condition; +} diff --git a/src/main/java/be/seeseepuff/pcinv/models/AssetCondition.java b/src/main/java/be/seeseepuff/pcinv/models/AssetCondition.java new file mode 100644 index 0000000..c928d6e --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/models/AssetCondition.java @@ -0,0 +1,18 @@ +package be.seeseepuff.pcinv.models; + +/** + * Represents the condition of an asset in the inventory system. + */ +public enum AssetCondition +{ + /// The asset is in perfect working order. + HEALTHY, + /// The condition of the asset is unknown. E.g.: it is untested. + UNKNOWN, + /// The asset generally works, but has some known issues. + PARTIAL, + /// The asset is in need of repair, but is not completely broken. + REPAIR, + /// The asset is completely broken and cannot be used. + BORKED, +} diff --git a/src/main/java/be/seeseepuff/pcinv/models/HddAsset.java b/src/main/java/be/seeseepuff/pcinv/models/HddAsset.java new file mode 100644 index 0000000..06fc866 --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/models/HddAsset.java @@ -0,0 +1,32 @@ +package be.seeseepuff.pcinv.models; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import lombok.Getter; +import lombok.Setter; + +/** + * Represents a hard drive or similar device. + */ +@Getter +@Setter +@Entity +public class HddAsset +{ + @Id + @GeneratedValue + private Long id; + + /// The ID of the associated asset, linking it to the generic Asset model. + private Long assetId; + + /// The capacity of the drive in bytes. + private Long capacity; + + /// The drive's interface type, such as SATA, IDE, ISA-16, ... + private String interfaceType; + + /// The drive's form factor, such as 2.5", 3.5", etc. + private String formFactor; +} diff --git a/src/main/java/be/seeseepuff/pcinv/models/RamAsset.java b/src/main/java/be/seeseepuff/pcinv/models/RamAsset.java new file mode 100644 index 0000000..9340450 --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/models/RamAsset.java @@ -0,0 +1,29 @@ +package be.seeseepuff.pcinv.models; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; +import lombok.Getter; +import lombok.Setter; + +/** + * Represents a RAM DIMM or similar memory asset in the inventory system. + */ +@Getter +@Setter +@Entity +public class RamAsset +{ + @Id + @GeneratedValue + private Long id; + + /// The ID of the associated asset, linking it to the generic Asset model. + private Long assetId; + + /// The capacity of the RAM in bytes. + private Long capacity; + + /// The type of memory. E.g.: DDR2, SDRAM, ISA-8, etc... + private String type; +} diff --git a/src/main/java/be/seeseepuff/pcinv/repositories/AssetRepository.java b/src/main/java/be/seeseepuff/pcinv/repositories/AssetRepository.java new file mode 100644 index 0000000..6f4c96d --- /dev/null +++ b/src/main/java/be/seeseepuff/pcinv/repositories/AssetRepository.java @@ -0,0 +1,8 @@ +package be.seeseepuff.pcinv.repositories; + +import be.seeseepuff.pcinv.models.Asset; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface AssetRepository extends CrudRepository {} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index c127059..91c83da 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,6 @@ spring.application.name=pcinv +server.port=8088 +spring.datasource.url=jdbc:postgresql://localhost:5432/pcinv +spring.datasource.username=pcinv +spring.datasource.password=pcinv +a