diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java
index 435139b..6743b63 100644
--- a/src/main/java/org/codedifferently/Main.java
+++ b/src/main/java/org/codedifferently/Main.java
@@ -1,17 +1,58 @@
package org.codedifferently;
+import java.util.Scanner;
+
//TIP To Run code, press or
// click the icon in the gutter.
public class Main {
public static void main(String[] args) {
- //TIP Press with your caret at the highlighted text
- // to see how IntelliJ IDEA suggests fixing it.
- System.out.printf("Hello and welcome!");
-
- for (int i = 1; i <= 5; i++) {
- //TIP Press to start debugging your code. We have set one breakpoint
- // for you, but you can always add more by pressing .
- System.out.println("i = " + i);
+
+ Scanner sc = new Scanner(System.in);
+ MaintenanceOffice office = new MaintenanceOffice();
+
+ MaintenanceRequest request1 =
+ new MaintenanceRequest("Freddy", 112, "Plumbing", 3);
+ MaintenanceRequest request2 =
+ new MaintenanceRequest("Paul", 306, "Electrical", 4);
+ MaintenanceRequest request3 =
+ new MaintenanceRequest("Elana", 971, "HVAC", 5);
+
+ office.addRequest(request1);
+ office.addRequest(request2);
+ office.addRequest(request3);
+
+ System.out.println("Initial Requests:");
+ office.getRequests();
+
+ while (true) {
+ System.out.println("\nEnter tenant name (or type 'done'):");
+ String name = sc.nextLine();
+ if (name.equalsIgnoreCase("done"))
+ break;
+ System.out.println("Apartment number:");
+ int aptNum = sc.nextInt();
+ System.out.println("Issue type:");
+ String issue = sc.nextLine();
+ System.out.println("Severity (1-5):");
+ int severity = sc.nextInt();
+ sc.nextLine();
+
+ MaintenanceRequest newRequest = new MaintenanceRequest(name, aptNum, issue, severity);
+ office.addRequest(newRequest);
+
+ System.out.println("Request logged successfully!");
+
+ if (issue.equals("Electrical") && severity >= 4) {
+ System.out.println("Electrical high severity warning!");
+ }
+
+ if (severity == 5) {
+ System.out.println("Dispatching immediately!");
+ office.assignTech(newRequest);
+ }
+ }
+ office.getRequests();
+ office.dailyReport();
+ sc.close();
}
}
-}
\ No newline at end of file
diff --git a/src/main/java/org/codedifferently/MaintenanceOffice.java b/src/main/java/org/codedifferently/MaintenanceOffice.java
new file mode 100644
index 0000000..afd81c0
--- /dev/null
+++ b/src/main/java/org/codedifferently/MaintenanceOffice.java
@@ -0,0 +1,102 @@
+package org.codedifferently;
+
+import java.util.ArrayList;
+
+public class MaintenanceOffice {
+
+ private ArrayList requests = new ArrayList<>();
+
+ MaintenanceRequest mr = new MaintenanceRequest();
+
+ public MaintenanceOffice() {
+ requests = new ArrayList<>();
+ }
+
+ //Creating a method to add to the array list
+ public void addRequest(MaintenanceRequest request) {
+ requests.add(request);
+ }
+
+ public void assignTech(MaintenanceRequest request) {
+ if (request.getSeverity() >= 4) {
+ request.setStatus("IN PROGRESS");
+ System.out.println("Senior tech assigned.");
+ } else {
+ request.setStatus("IN PROGRESS");
+ System.out.println("Standard tech assigned.");
+ }
+ }
+
+ public void closeRequest(MaintenanceRequest request) {
+ if (request.getStatus().equals("DONE")) {
+ System.out.println("Request successfully closed.");
+ } else {
+ System.out.println("Cannot close request unless status is DONE.");
+ }
+ }
+
+ public void dailyReport() {
+ int open = 0;
+ int closed = 0;
+ int low = 0;
+ int medium = 0;
+ int high = 0;
+
+ ArrayList issueTypes = new ArrayList<>();
+ ArrayList issueCounts = new ArrayList<>();
+
+ for (MaintenanceRequest request : requests) {
+ if (request.getStatus().equals("DONE")){
+ closed++;}
+ else
+ open++;
+ if (request.getSeverity() <= 2){
+ low++;}
+ else if (request.getSeverity() == 3){
+ medium++;}
+ else
+ high++;
+
+ String currentIssue = request.getIssueType();
+
+ if (issueTypes.contains(currentIssue)) {
+ int index = issueTypes.indexOf(currentIssue);
+ issueCounts.set(index, issueCounts.get(index) + 1);
+ } else {
+ issueTypes.add(currentIssue);
+ issueCounts.add(1);
+ }
+ }
+
+ String mostCommon = "";
+ int max = 0;
+
+ for (int i = 0; i < issueCounts.size(); i++) {
+ if (issueCounts.get(i) > max) {
+ max = issueCounts.get(i);
+ mostCommon = issueTypes.get(i);
+ }
+ }
+
+ System.out.println("==== DAILY REPORT ====");
+ System.out.println("Total Requests: " + requests.size());
+ System.out.println("Open: " + open);
+ System.out.println("Closed: " + closed);
+ System.out.println("Low Severity: " + low);
+ System.out.println("Medium Severity: " + medium);
+ System.out.println("High Severity: " + high);
+ System.out.println("Most Common Issue: " + mostCommon);
+
+ if (high > 3) {
+ System.out.println("OVERLOAD WARNING: Too many high priority requests!");
+ }
+ }
+
+ public void getRequests() {
+ for (MaintenanceRequest r : requests) {
+ System.out.println("Tenant Name: "+r.getTenantName()+"\nApt # "+ r.getAptNumber()+"\nIssue Type: "+r.getIssueType()+"\nSeverity level: "+r.getSeverity());
+ System.out.println("===============================");
+ }
+ }
+}
+
diff --git a/src/main/java/org/codedifferently/MaintenanceRequest.java b/src/main/java/org/codedifferently/MaintenanceRequest.java
new file mode 100644
index 0000000..7b57a60
--- /dev/null
+++ b/src/main/java/org/codedifferently/MaintenanceRequest.java
@@ -0,0 +1,64 @@
+package org.codedifferently;
+
+public class MaintenanceRequest {
+ String tenantName;
+ int aptNumber;
+ String issueType;
+ int severity;
+ String status;
+
+ public MaintenanceRequest() {
+ this.status = "NEW";
+ }
+
+ public MaintenanceRequest(String tenantName, int aptNumber, String issueType, int severity) {
+ this.tenantName = tenantName;
+ this.aptNumber = aptNumber;
+ this.issueType = issueType;
+ this.severity = severity;
+ this.status = "NEW";
+ }
+
+ //getters & setters
+
+
+ public String getTenantName() {
+ return tenantName;
+ }
+
+ public void setTenantName(String tenantName) {
+ this.tenantName = tenantName;
+ }
+
+ public int getAptNumber() {
+ return aptNumber;
+ }
+
+ public void setAptNumber(int aptNumber) {
+ this.aptNumber = aptNumber;
+ }
+
+ public String getIssueType() {
+ return issueType;
+ }
+
+ public void setIssueType(String issueType) {
+ this.issueType = issueType;
+ }
+
+ public int getSeverity() {
+ return severity;
+ }
+
+ public void setSeverity(int severity) {
+ this.severity = severity;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+}