// Path: src/main/java/com/ksa/myanmarlottery/dto/GetPrizeDTO.java
// public class GetPrizeDTO {
//  
//     private int numberOfTimes;
//     private String result;
//     private String code;
//     private String description;
// 
//     public GetPrizeDTO() {
//     }
// 
//     public GetPrizeDTO(int numberOfTimes, String result, String code, String description) {
//         this.numberOfTimes = numberOfTimes;
//         this.result = result;
//         this.code = code;
//         this.description = description;
//     }
//     
//     public String getResult() {
//         return result;
//     }
// 
//     public void setResult(String result) {
//         this.result = result;
//     }
// 
//     public String getCode() {
//         return code;
//     }
// 
//     public void setCode(String code) {
//         this.code = code;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
//     public int getNumberOfTimes() {
//         return numberOfTimes;
//     }
// 
//     public void setNumberOfTimes(int numberOfTimes) {
//         this.numberOfTimes = numberOfTimes;
//     }
// 
//     @Override
//     public String toString() {
//         return "GetPrizeDTO{" + "result=" + result + ", code=" + code + ", description=" + description + '}';
//     }
// }
// 
// Path: src/main/java/com/ksa/myanmarlottery/model/ScheduleItem.java
// @Entity
// @NamedQueries({
//     @NamedQuery(
//         name = "scheduleItem.findAll",
//         query = "from ScheduleItem s"
//     )}
// )
// public class ScheduleItem implements Serializable {
//     
//     @Id
//     private String recipientID;
//     
//     // 500 or 200
//     private int lotteryType;
//     
//     // query by range or specific query
//     private int queryType;
//     
//     @ElementCollection
//     @CollectionTable(name="param_table", joinColumns=@JoinColumn(name="recipient_id"))
//     @Column(name="params")
//     @OrderColumn(name="param_index")
//     private List<String> param = new ArrayList<>();
//     
//     private String originParam;
//     
//     @Temporal(TemporalType.TIMESTAMP)
//     private Date creationDate = new Date();
// 
//     public ScheduleItem() {}
// 
//     public ScheduleItem(String recipientID, int lotteryType, int queryType, String originParam) {
//         this.recipientID = recipientID;
//         this.lotteryType = lotteryType;
//         this.queryType = queryType;
//         this.originParam = originParam;
//     }
// 
//     public String getOriginParam() {
//         return originParam;
//     }
// 
//     public void setOriginParam(String originParam) {
//         this.originParam = originParam;
//     }
//     
//     public String getRecipientID() {
//         return recipientID;
//     }
// 
//     public void setRecipientID(String recipientID) {
//         this.recipientID = recipientID;
//     }
// 
//     public int getLotteryType() {
//         return lotteryType;
//     }
// 
//     public void setLotteryType(int lotteryType) {
//         this.lotteryType = lotteryType;
//     }
// 
//     public int getQueryType() {
//         return queryType;
//     }
// 
//     public void setQueryType(int queryType) {
//         this.queryType = queryType;
//     }
// 
//     public List<String> getParam() {
//         return param;
//     }
// 
//     public void setParam(List<String> param) {
//         this.param = param;
//     }
// 
//     public Date getCreationDate() {
//         return creationDate;
//     }
// 
//     public void setCreationDate(Date creationDate) {
//         this.creationDate = creationDate;
//     }
// 
// }


import com.ksa.myanmarlottery.model.ScheduleItem;
import java.util.List;
import java.util.concurrent.Future;
import com.ksa.myanmarlottery.dto.GetPrizeDTO;
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ksa.myanmarlottery.service;


/**
 *
 * @author Kyawswa
 */
public interface ScheduleService {
    List<ScheduleItem> findAll();
    ScheduleItem insertOrUpdateItem(ScheduleItem item);
    ScheduleItem findItemBySenderID(String senderID);
    public void deleteScheduleItem(String id);
// Path: src/main/java/com/ksa/myanmarlottery/dto/GetPrizeDTO.java
// public class GetPrizeDTO {
//  
//     private int numberOfTimes;
//     private String result;
//     private String code;
//     private String description;
// 
//     public GetPrizeDTO() {
//     }
// 
//     public GetPrizeDTO(int numberOfTimes, String result, String code, String description) {
//         this.numberOfTimes = numberOfTimes;
//         this.result = result;
//         this.code = code;
//         this.description = description;
//     }
//     
//     public String getResult() {
//         return result;
//     }
// 
//     public void setResult(String result) {
//         this.result = result;
//     }
// 
//     public String getCode() {
//         return code;
//     }
// 
//     public void setCode(String code) {
//         this.code = code;
//     }
// 
//     public String getDescription() {
//         return description;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
//     public int getNumberOfTimes() {
//         return numberOfTimes;
//     }
// 
//     public void setNumberOfTimes(int numberOfTimes) {
//         this.numberOfTimes = numberOfTimes;
//     }
// 
//     @Override
//     public String toString() {
//         return "GetPrizeDTO{" + "result=" + result + ", code=" + code + ", description=" + description + '}';
//     }
// }
// 
// Path: src/main/java/com/ksa/myanmarlottery/model/ScheduleItem.java
// @Entity
// @NamedQueries({
//     @NamedQuery(
//         name = "scheduleItem.findAll",
//         query = "from ScheduleItem s"
//     )}
// )
// public class ScheduleItem implements Serializable {
//     
//     @Id
//     private String recipientID;
//     
//     // 500 or 200
//     private int lotteryType;
//     
//     // query by range or specific query
//     private int queryType;
//     
//     @ElementCollection
//     @CollectionTable(name="param_table", joinColumns=@JoinColumn(name="recipient_id"))
//     @Column(name="params")
//     @OrderColumn(name="param_index")
//     private List<String> param = new ArrayList<>();
//     
//     private String originParam;
//     
//     @Temporal(TemporalType.TIMESTAMP)
//     private Date creationDate = new Date();
// 
//     public ScheduleItem() {}
// 
//     public ScheduleItem(String recipientID, int lotteryType, int queryType, String originParam) {
//         this.recipientID = recipientID;
//         this.lotteryType = lotteryType;
//         this.queryType = queryType;
//         this.originParam = originParam;
//     }
// 
//     public String getOriginParam() {
//         return originParam;
//     }
// 
//     public void setOriginParam(String originParam) {
//         this.originParam = originParam;
//     }
//     
//     public String getRecipientID() {
//         return recipientID;
//     }
// 
//     public void setRecipientID(String recipientID) {
//         this.recipientID = recipientID;
//     }
// 
//     public int getLotteryType() {
//         return lotteryType;
//     }
// 
//     public void setLotteryType(int lotteryType) {
//         this.lotteryType = lotteryType;
//     }
// 
//     public int getQueryType() {
//         return queryType;
//     }
// 
//     public void setQueryType(int queryType) {
//         this.queryType = queryType;
//     }
// 
//     public List<String> getParam() {
//         return param;
//     }
// 
//     public void setParam(List<String> param) {
//         this.param = param;
//     }
// 
//     public Date getCreationDate() {
//         return creationDate;
//     }
// 
//     public void setCreationDate(Date creationDate) {
//         this.creationDate = creationDate;
//     }
// 
// }


// Path: src/main/java/com/ksa/myanmarlottery/service/ScheduleService.java
import com.ksa.myanmarlottery.model.ScheduleItem;
import java.util.List;
import java.util.concurrent.Future;
import com.ksa.myanmarlottery.dto.GetPrizeDTO;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ksa.myanmarlottery.service;


/**
 *
 * @author Kyawswa
 */
public interface ScheduleService {
    List<ScheduleItem> findAll();
    ScheduleItem insertOrUpdateItem(ScheduleItem item);
    ScheduleItem findItemBySenderID(String senderID);
    public void deleteScheduleItem(String id);
    public Future<List<GetPrizeDTO>> scheduleItems(ScheduleItem item) throws InterruptedException;