text: /*
   *    Calendula - An assistant for personal medication management.
   *    Copyright (C) 2014-2018 CiTIUS - University of Santiago de Compostela
   *
   *    Calendula is free software; you can redistribute it and/or modify
   *    it under the terms of the GNU General Public License as published by
   *    the Free Software Foundation; either version 3 of the License, or
   *    (at your option) any later version.
   *
   *    This program is distributed in the hope that it will be useful,
   *    but WITHOUT ANY WARRANTY; without even the implied warranty of
   *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   *    GNU General Public License for more details.
   *
   *    You should have received a copy of the GNU General Public License
   *    along with this software.  If not, see <http://www.gnu.org/licenses/>.
   */
  
  package es.usc.citius.servando.calendula.persistence;
  
  import com.j256.ormlite.field.DatabaseField;
  import com.j256.ormlite.table.DatabaseTable;
  
  import org.joda.time.LocalDate;
  
  import java.util.Comparator;
  
  import es.usc.citius.servando.calendula.persistence.typeSerializers.LocalDatePersister;
  
  
  @DatabaseTable(tableName = "Pickups")
  public class PickupInfo {
  
      public static final String COLUMN_ID = "_id";
      public static final String COLUMN_FROM = "From";
      public static final String COLUMN_TO = "To";
      public static final String COLUMN_TAKEN = "Taken";
      public static final String COLUMN_MEDICINE = "Medicine";
  
  
      @DatabaseField(columnName = COLUMN_ID, generatedId = true)
      private Long id;
  
      @DatabaseField(columnName = COLUMN_FROM, persisterClass = LocalDatePersister.class)
      private LocalDate from;
  
      @DatabaseField(columnName = COLUMN_TO, persisterClass = LocalDatePersister.class)
      private LocalDate to;
  
      @DatabaseField(columnName = COLUMN_TAKEN)
      private boolean taken;
  
      @DatabaseField(columnName = COLUMN_MEDICINE, foreign = true, foreignAutoRefresh = true)
      private Medicine medicine;
  
  
      public Long getId() {
          return id;
      }
  
      public void setId(Long id) {
          this.id = id;
      }
  
      public LocalDate getFrom() {
          return from;
      }
  
      public void setFrom(LocalDate from) {
          this.from = from;
      }
  
      public LocalDate getTo() {
          return to;
      }
  
      public void setTo(LocalDate to) {
          this.to = to;
      }
  
      public boolean isTaken() {
          return taken;
      }
  
      public void setTaken(boolean taken) {
          this.taken = taken;
      }
  
      public Medicine getMedicine() {
          return medicine;
      }
  
      public void setMedicine(Medicine medicine) {
          this.medicine = medicine;
      }
  
  
      //
      // DB QUERIES
      //
  
  
      // Comparator
  
      public static class PickupComparator implements Comparator<PickupInfo> {
  
          public static PickupComparator instance = new PickupComparator();
  
          @Override
          public int compare(PickupInfo a, PickupInfo b) {
              LocalDate fromA = a.getFrom();
              LocalDate fromB = b.getFrom();
              return fromA.compareTo(fromB);
          }
      }
  
  }
  