OneCompiler

q9

679

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class ParcelTracking {

// Simulated database for tracking parcel details
static Map<String, TrackingDetails> trackingDatabase = new HashMap<>();
static String currentUser = "[email protected]"; // Simulated current user email or identifier

public static void main(String[] args) {
    // Prepopulate the database with sample tracking data
    populateSampleData();

    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter Booking ID to check tracking status: ");
    String bookingId = scanner.nextLine();

    // Fetch and display tracking details
    if (trackingDatabase.containsKey(bookingId)) {
        TrackingDetails details = trackingDatabase.get(bookingId);

        // Check if the booking belongs to the current user
        if (details.getUserEmail().equals(currentUser)) {
            displayTrackingStatus(details);
        } else {
            System.out.println("Error: The booking ID does not belong to the current user.");
        }
    } else {
        System.out.println("Error: Booking ID not found.");
    }

    scanner.close();
}

// Method to populate sample data
private static void populateSampleData() {
    TrackingDetails tracking1 = new TrackingDetails(
        "BKG12345", "John Doe", "123 Main St, Springfield, USA",
        "Alice Smith", "456 Elm St, Shelbyville, USA", 
        "2024-12-01", "In Transit", "[email protected]"
    );

    TrackingDetails tracking2 = new TrackingDetails(
        "BKG54321", "Jane Doe", "789 Maple Ave, Springfield, USA",
        "Bob Brown", "321 Oak St, Shelbyville, USA", 
        "2024-12-02", "Delivered", "[email protected]"
    );

    trackingDatabase.put(tracking1.getBookingId(), tracking1);
    trackingDatabase.put(tracking2.getBookingId(), tracking2);
}

// Method to display tracking status
private static void displayTrackingStatus(TrackingDetails details) {
    System.out.println("\nTracking Status:");
    System.out.println("Booking ID: " + details.getBookingId());
    System.out.println("Full Name: " + details.getFullName());
    System.out.println("Address: " + details.getSenderAddress());
    System.out.println("Receiver Name: " + details.getReceiverName());
    System.out.println("Receiver Address: " + details.getReceiverAddress());
    System.out.println("Date of Booking: " + details.getDateOfBooking());
    System.out.println("Parcel Status: " + details.getParcelStatus());
}

}

// Class to represent tracking details
class TrackingDetails {
private String bookingId;
private String fullName;
private String senderAddress;
private String receiverName;
private String receiverAddress;
private String dateOfBooking;
private String parcelStatus;
private String userEmail;

// Constructor
public TrackingDetails(String bookingId, String fullName, String senderAddress,
                       String receiverName, String receiverAddress, String dateOfBooking,
                       String parcelStatus, String userEmail) {
    this.bookingId = bookingId;
    this.fullName = fullName;
    this.senderAddress = senderAddress;
    this.receiverName = receiverName;
    this.receiverAddress = receiverAddress;
    this.dateOfBooking = dateOfBooking;
    this.parcelStatus = parcelStatus;
    this.userEmail = userEmail;
}

// Getters
public String getBookingId() { return bookingId; }
public String getFullName() { return fullName; }
public String getSenderAddress() { return senderAddress; }
public String getReceiverName() { return receiverName; }
public String getReceiverAddress() { return receiverAddress; }
public String getDateOfBooking() { return dateOfBooking; }
public String getParcelStatus() { return parcelStatus; }
public String getUserEmail() { return userEmail; }

}