/*
 * Swagger Petstore
 * This is a sample server Petstore server.  You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/).  For this sample, you can use the api key `special-key` to test the authorization filters.
 *
 * OpenAPI spec version: 1.0.0
 * Contact: apiteam@swagger.io
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

/**
 * An order for a pets from the pet store
 */
public class SwagOrder {
    /**
     * Get id
     * @return id
     */
    public Long id { get; set; }

    /**
     * Get petId
     * @return petId
     */
    public Long petId { get; set; }

    /**
     * Get quantity
     * @return quantity
     */
    public Integer quantity { get; set; }

    /**
     * Get shipDate
     * @return shipDate
     */
    public Datetime shipDate { get; set; }

    /**
     * Order Status
     */
    public enum StatusEnum {
        PLACED,
        APPROVED,
        DELIVERED
    }

    /**
     * Order Status
     * @return status
     */
    public StatusEnum status { get; set; }

    /**
     * Get complete
     * @return complete
     */
    public Boolean complete { get; set; }

    public SwagOrder() {
        complete = false;
    }

    public static SwagOrder getExample() {
        SwagOrder order = new SwagOrder();
        order.id = 123456789L;
        order.petId = 123456789L;
        order.quantity = 123;
        order.shipDate = Datetime.newInstanceGmt(2000, 1, 23, 4, 56, 7);
        order.status = StatusEnum.PLACED;
        order.complete = true;
        return order;
    }

    public Boolean equals(Object obj) {
        if (obj instanceof SwagOrder) {
            SwagOrder order = (SwagOrder) obj;
            return this.id == order.id
                && this.petId == order.petId
                && this.quantity == order.quantity
                && this.shipDate == order.shipDate
                && this.status == order.status
                && this.complete == order.complete;
        }
        return false;
    }

    public Integer hashCode() {
        Integer hashCode = 43;
        hashCode = (17 * hashCode) + (id == null ? 0 : System.hashCode(id));
        hashCode = (17 * hashCode) + (petId == null ? 0 : System.hashCode(petId));
        hashCode = (17 * hashCode) + (quantity == null ? 0 : System.hashCode(quantity));
        hashCode = (17 * hashCode) + (shipDate == null ? 0 : System.hashCode(shipDate));
        hashCode = (17 * hashCode) + (status == null ? 0 : System.hashCode(status));
        hashCode = (17 * hashCode) + (complete == null ? 0 : System.hashCode(complete));
        return hashCode;
    }
}

