diff --git a/README.md b/README.md index 1913f7d..706e70b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Apartment Maintenance Request Tracker +##333#### Apartment Maintenance Request Tracker ### Keep the Building Running. diff --git a/src/main/java/org/codedifferently/Main.java b/src/main/java/org/codedifferently/Main.java index 435139b..c242453 100644 --- a/src/main/java/org/codedifferently/Main.java +++ b/src/main/java/org/codedifferently/Main.java @@ -1,17 +1,35 @@ package org.codedifferently; +import java.util.ArrayList; +import java.util.List; +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!"); + List requests = new ArrayList<>(); + Scanner scanner = new Scanner(System.in); - 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); + // Intake requests from the user + while (true) { + System.out.print("Enter issue type (or 'done' to finish): "); + String issueType = scanner.nextLine(); + if (issueType.equalsIgnoreCase("done")) { + break; + } + System.out.print("Enter severity level (1-5): "); + int severity = Integer.parseInt(scanner.nextLine()); + + MaintenanceRequest request = new MaintenanceRequest(issueType, severity); + requests.add(request); + System.out.println("Request logged: " + request); + if (severity >= 4) { + System.out.println("HIGH PRIORITY"); + } + } + + // Print all requests + System.out.println("\nAll logged requests:"); + for (MaintenanceRequest req : requests) { + System.out.println(req); } } } \ No newline at end of file diff --git a/src/main/java/org/codedifferently/MaintenanceRequest.java b/src/main/java/org/codedifferently/MaintenanceRequest.java new file mode 100644 index 0000000..6388b87 --- /dev/null +++ b/src/main/java/org/codedifferently/MaintenanceRequest.java @@ -0,0 +1,46 @@ +package org.codedifferently; + +public class MaintenanceRequest { + private String issueType; + private int severity; + private String status; + + // Default constructor + public MaintenanceRequest() { + this.status = "NEW"; + } + + // Parameterized constructor + public MaintenanceRequest(String issueType, int severity) { + this.issueType = issueType; + this.severity = severity; + this.status = "NEW"; + } + + // Getters and Setters + 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; + } + + // toString method + @Override + public String toString() { + return "Issue: " + issueType + ", Severity: " + severity + ", Status: " + status; + } +} \ No newline at end of file diff --git a/src/main/java/org/codedifferently/MaintenceOffice.java b/src/main/java/org/codedifferently/MaintenceOffice.java new file mode 100644 index 0000000..ae470f3 --- /dev/null +++ b/src/main/java/org/codedifferently/MaintenceOffice.java @@ -0,0 +1,94 @@ +package org.codedifferently; + +import java.util.ArrayList; + +public class MaintenanceOffice { + + private ArrayList requests; + + public MaintenanceOffice() { + this.requests = new ArrayList<>(); + } + + public void addRequest(MaintenanceRequest request) { + requests.add(request); + } + + // LEVEL 3 — Assign Tech Based on Severity + public void assignTechnician(MaintenanceRequest request) { + + if (request.getSeverity().equalsIgnoreCase("HIGH")) { + request.setTechnician("Senior Tech"); + } else if (request.getSeverity().equalsIgnoreCase("MEDIUM")) { + request.setTechnician("Regular Tech"); + } else { + request.setTechnician("Junior Tech"); + } + + request.setStatus("IN_PROGRESS"); + } + + // Update Status (only allowed values) + public void updateStatus(MaintenanceRequest request, String newStatus) { + + if (newStatus.equals("NEW") || + newStatus.equals("IN_PROGRESS") || + newStatus.equals("DONE")) { + + request.setStatus(newStatus); + } else { + System.out.println("Invalid status update."); + } + } + + // Close request ONLY if DONE + public void closeRequest(MaintenanceRequest request) { + + if (request.getStatus().equals("DONE")) { + System.out.println("Request closed."); + } else { + System.out.println("Cannot close request unless status is DONE."); + } + } + + // LEVEL 4 — Daily Report + public void printDailyReport() { + + int total = requests.size(); + int open = 0; + int closed = 0; + + int low = 0; + int medium = 0; + int high = 0; + + for (MaintenanceRequest r : requests) { + + if (!r.getStatus().equals("DONE")) { + open++; + } else { + closed++; + } + + if (r.getSeverity().equalsIgnoreCase("LOW")) { + low++; + } else if (r.getSeverity().equalsIgnoreCase("MEDIUM")) { + medium++; + } else if (r.getSeverity().equalsIgnoreCase("HIGH")) { + high++; + } + } + + System.out.println("===== DAILY REPORT ====="); + System.out.println("Total Requests: " + total); + 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); + + if (high > 3) { + System.out.println("⚠ OVERLOAD WARNING: Too many high priority requests!"); + } + } +} \ No newline at end of file