// Path: src/main/java/org/chorem/ecd/model/stream/SignageStream.java
// public class SignageStream {
// 
//     private UUID id;
// 
//     private String name;
// 
//     private Integer timing;
// 
//     private LocalDateTime creationDateTime;
// 
//     private LocalDateTime lastUpdateDateTime;
// 
//     private List<SignageStreamFrame> frames;
// 
//     public UUID getId() {
//         return id;
//     }
// 
//     public void setId(UUID id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public Integer getTiming() {
//         return timing;
//     }
// 
//     public void setTiming(Integer timing) {
//         this.timing = timing;
//     }
// 
//     public LocalDateTime getCreationDateTime() {
//         return creationDateTime;
//     }
// 
//     public void setCreationDateTime(LocalDateTime creationDateTime) {
//         this.creationDateTime = creationDateTime;
//     }
// 
//     public LocalDateTime getLastUpdateDateTime() {
//         return lastUpdateDateTime;
//     }
// 
//     public void setLastUpdateDateTime(LocalDateTime lastUpdateDateTime) {
//         this.lastUpdateDateTime = lastUpdateDateTime;
//     }
// 
//     public List<SignageStreamFrame> getFrames() {
//         return frames;
//     }
// 
//     public void setFrames(List<SignageStreamFrame> frames) {
//         this.frames = frames;
//     }
// }
// 
// Path: src/main/java/org/chorem/ecd/model/stream/SignageStreamFrame.java
// public class SignageStreamFrame {
// 
//     private String src;
// 
//     private String thumbnail;
// 
//     public SignageStreamFrame(Path src, Path thumbnail) {
//         this(src.toString(), thumbnail.toString());
//     }
// 
//     public SignageStreamFrame(String src, String thumbnail) {
//         this.src = src;
//         this.thumbnail = thumbnail;
//     }
// 
//     public String getSrc() {
//         return src;
//     }
// 
//     public void setSrc(String src) {
//         this.src = src;
//     }
// 
//     public String getThumbnail() {
//         return thumbnail;
//     }
// 
//     public void setThumbnail(String thumbnail) {
//         this.thumbnail = thumbnail;
//     }
// }


import com.google.gson.reflect.TypeToken;
import org.chorem.ecd.model.stream.SignageStream;
import org.jooq.DSLContext;
import org.jooq.Record;
import org.jooq.RecordMapper;
import org.chorem.ecd.model.stream.SignageStreamFrame;
import org.jooq.impl.DSL;
import org.jooq.util.postgres.PostgresDataType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.enterprise.context.ApplicationScoped;
import java.lang.reflect.Type;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.List;
import java.util.UUID;
import static org.chorem.ecd.mapping.tables.SignageStream.SIGNAGE_STREAM;
package org.chorem.ecd.dao;





/**
 * @author Julien Gaston (gaston@codelutin.com)
 */
@ApplicationScoped
public class SignageStreamDao extends AbstractDao<SignageStream, UUID> {

    private static final Logger logger = LoggerFactory.getLogger(SignageStreamDao.class);

// Path: src/main/java/org/chorem/ecd/model/stream/SignageStream.java
// public class SignageStream {
// 
//     private UUID id;
// 
//     private String name;
// 
//     private Integer timing;
// 
//     private LocalDateTime creationDateTime;
// 
//     private LocalDateTime lastUpdateDateTime;
// 
//     private List<SignageStreamFrame> frames;
// 
//     public UUID getId() {
//         return id;
//     }
// 
//     public void setId(UUID id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public Integer getTiming() {
//         return timing;
//     }
// 
//     public void setTiming(Integer timing) {
//         this.timing = timing;
//     }
// 
//     public LocalDateTime getCreationDateTime() {
//         return creationDateTime;
//     }
// 
//     public void setCreationDateTime(LocalDateTime creationDateTime) {
//         this.creationDateTime = creationDateTime;
//     }
// 
//     public LocalDateTime getLastUpdateDateTime() {
//         return lastUpdateDateTime;
//     }
// 
//     public void setLastUpdateDateTime(LocalDateTime lastUpdateDateTime) {
//         this.lastUpdateDateTime = lastUpdateDateTime;
//     }
// 
//     public List<SignageStreamFrame> getFrames() {
//         return frames;
//     }
// 
//     public void setFrames(List<SignageStreamFrame> frames) {
//         this.frames = frames;
//     }
// }
// 
// Path: src/main/java/org/chorem/ecd/model/stream/SignageStreamFrame.java
// public class SignageStreamFrame {
// 
//     private String src;
// 
//     private String thumbnail;
// 
//     public SignageStreamFrame(Path src, Path thumbnail) {
//         this(src.toString(), thumbnail.toString());
//     }
// 
//     public SignageStreamFrame(String src, String thumbnail) {
//         this.src = src;
//         this.thumbnail = thumbnail;
//     }
// 
//     public String getSrc() {
//         return src;
//     }
// 
//     public void setSrc(String src) {
//         this.src = src;
//     }
// 
//     public String getThumbnail() {
//         return thumbnail;
//     }
// 
//     public void setThumbnail(String thumbnail) {
//         this.thumbnail = thumbnail;
//     }
// }


// Path: src/main/java/org/chorem/ecd/dao/SignageStreamDao.java
import com.google.gson.reflect.TypeToken;
import org.chorem.ecd.model.stream.SignageStream;
import org.jooq.DSLContext;
import org.jooq.Record;
import org.jooq.RecordMapper;
import org.chorem.ecd.model.stream.SignageStreamFrame;
import org.jooq.impl.DSL;
import org.jooq.util.postgres.PostgresDataType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.enterprise.context.ApplicationScoped;
import java.lang.reflect.Type;
import java.sql.Timestamp;
import java.time.Instant;
import java.util.List;
import java.util.UUID;
import static org.chorem.ecd.mapping.tables.SignageStream.SIGNAGE_STREAM;

package org.chorem.ecd.dao;





/**
 * @author Julien Gaston (gaston@codelutin.com)
 */
@ApplicationScoped
public class SignageStreamDao extends AbstractDao<SignageStream, UUID> {

    private static final Logger logger = LoggerFactory.getLogger(SignageStreamDao.class);

    private final Type framesListType = new TypeToken<List<SignageStreamFrame>>(){}.getType();