This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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"
|
||||
|
||||
10
pcinvj/pcinv/.idea/.gitignore
generated
vendored
10
pcinvj/pcinv/.idea/.gitignore
generated
vendored
@@ -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
|
||||
10
pcinvj/pcinv/.idea/gradle.xml
generated
10
pcinvj/pcinv/.idea/gradle.xml
generated
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
7
pcinvj/pcinv/.idea/misc.xml
generated
7
pcinvj/pcinv/.idea/misc.xml
generated
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
8
pcinvj/pcinv/.idea/modules.xml
generated
8
pcinvj/pcinv/.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/pcinv.iml" filepath="$PROJECT_DIR$/pcinv.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
pcinvj/pcinv/.idea/vcs.xml
generated
6
pcinvj/pcinv/.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
78
pcinvj/pcinv/.idea/workspace.xml
generated
78
pcinvj/pcinv/.idea/workspace.xml
generated
@@ -1,78 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="4b0dc0d8-58e0-4f36-b2cd-dd2f5eed7a7c" name="Changes" comment="" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="GitLabMergeRequestsSettings"><![CDATA[{
|
||||
"editorReviewEnabled": false
|
||||
}]]></component>
|
||||
<component name="GitlabMajeraCodeReviewSettings">
|
||||
<option name="popularEmojiShortcuts">
|
||||
<list />
|
||||
</option>
|
||||
</component>
|
||||
<component name="GoLibraries">
|
||||
<option name="indexEntireGoPath" value="true" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo"><![CDATA[{
|
||||
"associatedIndex": 1
|
||||
}]]></component>
|
||||
<component name="ProjectId" id="2y1jDw3iOs0SbjysMi6qvadjqNS" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="autoscrollToSource" value="true" />
|
||||
<option name="flattenModules" value="true" />
|
||||
<option name="flattenPackages" value="true" />
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
||||
"RunOnceActivity.GoLinterPluginOnboarding": "true",
|
||||
"RunOnceActivity.GoLinterPluginStorageMigration": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.go.migrated.go.modules.settings": "true",
|
||||
"git-widget-placeholder": "master",
|
||||
"go.import.settings.migrated": "true",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"settings.editor.selected.configurable": "preferences.pluginManager"
|
||||
}
|
||||
}]]></component>
|
||||
<component name="SharedIndexes">
|
||||
<attachedChunks>
|
||||
<set>
|
||||
<option value="bundled-jdk-9823dce3aa75-fbdcb00ec9e3-intellij.indexing.shared.core-IU-251.25410.129" />
|
||||
<option value="bundled-js-predefined-d6986cc7102b-6a121458b545-JavaScript-IU-251.25410.129" />
|
||||
</set>
|
||||
</attachedChunks>
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="4b0dc0d8-58e0-4f36-b2cd-dd2f5eed7a7c" name="Changes" comment="" />
|
||||
<created>1739869040002</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1739869040002</updated>
|
||||
<workItem from="1739869042627" duration="241000" />
|
||||
<workItem from="1749008861428" duration="2000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="VgoProject">
|
||||
<integration-enabled>false</integration-enabled>
|
||||
<settings-migrated>true</settings-migrated>
|
||||
</component>
|
||||
</project>
|
||||
37
src/main/java/be/seeseepuff/pcinv/models/Asset.java
Normal file
37
src/main/java/be/seeseepuff/pcinv/models/Asset.java
Normal file
@@ -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;
|
||||
}
|
||||
18
src/main/java/be/seeseepuff/pcinv/models/AssetCondition.java
Normal file
18
src/main/java/be/seeseepuff/pcinv/models/AssetCondition.java
Normal file
@@ -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,
|
||||
}
|
||||
32
src/main/java/be/seeseepuff/pcinv/models/HddAsset.java
Normal file
32
src/main/java/be/seeseepuff/pcinv/models/HddAsset.java
Normal file
@@ -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;
|
||||
}
|
||||
29
src/main/java/be/seeseepuff/pcinv/models/RamAsset.java
Normal file
29
src/main/java/be/seeseepuff/pcinv/models/RamAsset.java
Normal file
@@ -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;
|
||||
}
|
||||
@@ -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<Asset, Long> {}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user