// BankAccountOps.java
// Static "operations" grouped for organization; still not encapsulation.
public class BankAccountOps {

    public static void deposit(BankAccountData account, int amount) {
        // No rules enforced yet (e.g., amount >= 0) — intentional for this stage
        account.balance += amount;
    }

    public static void withdraw(BankAccountData account, int amount) {
        // #3 poster-child rule: CLOSED accounts cannot withdraw
        if (account.status.equals("CLOSED")) {
            System.out.println("Withdrawal denied: account is CLOSED");
            return;
        }
        // Still no overdraft rule here — intentional to avoid rule overload
        account.balance -= amount;
    }

    public static void printAccount(BankAccountData account) {
        System.out.println("\nACCOUNT STATE");
        System.out.println("-------------");
        System.out.println("Account #: " + account.accountNumber);
        System.out.println("Owner: " + account.owner);
        System.out.println("Balance: " + account.balance + " cents");
        System.out.println("Status: " + account.status);
        System.out.println("Opened: " + account.openedDate);
    }
}
