<script lang="ts">
import GPSPoint from '../models/GPSPoint';
import LocationQuery from '../models/LocationQuery';

export default {
  data() {
    return {
      gpsPoints: [] as GPSPoint[],
      hasNextPage: true,
      hasPrevPage: true,
      locationQuery: new LocationQuery({}) as LocationQuery,
    }
  },

  computed: {
    newestPoint(): GPSPoint | null {
      return this.gpsPoints[this.gpsPoints.length - 1] || null
    },

    oldestPoint(): GPSPoint | null {
      return this.gpsPoints[0] || null
    },
  },

  methods: {
    prevPageQuery(): LocationQuery | null {
      if (!this.oldestPoint) {
        return null
      }

      return new LocationQuery({
        ...this.locationQuery,
        minId: undefined,
        maxId: this.oldestPoint.id,
      })
    },

    nextPageQuery(): LocationQuery | null {
      if (!this.newestPoint) {
        return null
      }

      return new LocationQuery({
        ...this.locationQuery,
        minId: this.newestPoint.id,
        maxId: undefined,
      })
    },
  },
}
</script>