#pragma once

class Trench {

private:

    int _size;
    char* _colour;
    int _price;
    int _quantity;
    char* _photograph;

public:
    /*
    * Constructor for the Trench class
    * Input: size - integer
    *       colour - string
    *      price - integer
    *     quantity - integer
    *    photograph - string
    * Output: trench object
    */
    Trench(int size, const char *colour, int price, int quantity, const char *photograph);
    

    /*
    * Destructor for the Trench class
    * Input: -
    * Output: -
    */
    ~Trench();

    /*
    * Copy constructor for the Trench class
    * Input: trench - trench object
    * Output: trench object
    */
    Trench(const Trench &trench);

    /*
    * Getter for the size attribute
    * Input: -
    * Output: size - integer
    */
    int size() const;

    /*
    * Setter for the size attribute
    * Input: newSize - integer
    * Output: -
    */
    void size(int newSize);

    /*
    * Getter for the colour attribute
    * Input: -
    * Output: colour - string
    */
    char* colour() const;

    /*
    * Setter for the colour attribute
    * Input: newColour - string
    * Output: -
    */
    void colour(const char *newColour);

    /*
    * Getter for the price attribute
    * Input: -
    * Output: price - integer
    */
    int price() const;

    /*
    * Setter for the price attribute
    * Input: newPrice - integer
    * Output: -
    */
    void price(int newPrice);

    /*
    * Getter for the quantity attribute
    * Input: -
    * Output: quantity - integer
    */
    int quantity() const;

    /*
    * Setter for the quantity attribute
    * Input: newQuantity - integer
    * Output: -
    */
    void quantity(int newQuantity);

    /*
    * Getter for the photograph attribute
    * Input: -
    * Output: photograph - string
    */
    char* photograph() const;

    /*
    * Setter for the photograph attribute
    * Input: newPhotograph - string
    * Output: -
    */
    void photograph(const char *newPhotograph);

    /*
    * Overload of the == operator
    * Input: trench - trench object
    * Output: true - if the trench objects are the same
    *         false - otherwise
    */
    bool operator==(const Trench& t);

    /*
    * Converts the trench object into a string
    * Input: -
    * Output: trench - char*
    */
    char* toString();

};
    