#ifndef WIMASERVICEPOLYGON_H
#define WIMASERVICEPOLYGON_H

#include "QObject"
#include "WimaPolygon.h"

class WimaServicePolygon : public WimaPolygon
{
    Q_OBJECT
public:
    WimaServicePolygon(QObject* parent);
    Q_PROPERTY(QGeoCoordiante takeOffPosition           READ takeOffPosition                    WRITE setTakeOffPosition            NOTIFY takeOffPositionChanged)
    Q_PROPERTY(QGeoCoordinate landPosition              READ landPosition                       WRITE setLandPosition               NOTIFY landPositionChanged)
    Q_PROPERTY(Vehicle* vehicle                         READ vehicle                            WRITE setVehicle                    NOTIFY vehicleChanged)

    // Overrides from WimaPolygon
    QString         mapVisualQML    (void) const { return "WimaServicePolygonMapVisal.qml";}
    QString         editorQML       (void) const { return "WimaServicePolygonEditor.qml";}

    // Property acessors
    QGeoCoordinate          takeOffPosition             (void) const { return _takeOffPosition;}
    QGeoCoordinate          landPosition                (void) const { return _landPosition;}
    Vehicle*                vehicle                     (void) const { return _vehicle;}

    // Property setters
    void setTakeOffPosition             (QGeoCoordinate coordinate);
    void setLandPosition                (QGeoCoordinate coordinate);
    void setVehicle                     (Vehicle* vehicle);

signals:
    void takeOffPositionChanged         (QGeoCoordinate takeOffPos);
    void landPositionChanged            (QGeoCoordinate landPos);
    void vehicleChanged                 (Vehicle* vehicle);

private:
    QGeoCoordinate      _takeOffPosition;
    QGeoCoordinate      _landPosition;
    Vehicle*            _vehicle;
};

#endif // WIMASERVICEPOLYGON_H
