/*
 * Copyright ©2026 Soham Pardeshi. All rights reserved.
 * Permission is hereby granted to students registered for University of
 * Washington CSE 333 for use solely during Summer Quarter 2026 for
 * purposes of the course. No other use, copying, distribution, or
 * modification is permitted without prior written consent. Copyrights
 * for third-party components of this work must be honored. Instructors
 * interested in reusing these course materials should contact the author.
 */

#include "Stock.h"

namespace cse333 {

void Stock::Buy(int shares, double price) {
  total_shares_ += shares;
  total_cost_ += shares * price;
}

double Stock::GetMarketValue() const {
  return total_shares_ * current_price_;
}

double Stock::GetProfit() const {
  // Note: GetMarketValue() is virtual, so in a DividendStock this call
  // runs DividendStock::GetMarketValue() (slide 20).
  return GetMarketValue() - total_cost_;
}

}  // namespace cse333