// Path: src/main/java/com/lyubenblagoev/postfixrest/service/model/DomainResource.java
// public class DomainResource {
// 
// 	private Long id;
// 	
// 	@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ssZ")
// 	private Date created;
// 	
// 	@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ssZ")
// 	private Date updated;
// 	
// 	private Boolean enabled;
// 	
// 	@NotEmpty
// 	@Pattern(regexp="^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$", message = "must be a valid domain name")
// 	private String name;
// 	
// 	public static DomainResource fromDomain(Domain domain) {
// 		DomainResource resource = new DomainResource();
// 		resource.setId(domain.getId());
// 		resource.setName(domain.getName());
// 		resource.setEnabled(domain.isEnabled());
// 		resource.setCreated(domain.getCreated());
// 		resource.setUpdated(domain.getUpdated());
// 		return resource;
// 	}
// 	
// 	public static Domain toDomain(DomainResource domain) {
// 		Domain d = new Domain();
// 		d.setId(domain.getId());
// 		d.setName(domain.getName());
// 		d.setEnabled(domain.getEnabled());
// 		d.setCreated(domain.getCreated());
// 		d.setUpdated(domain.getUpdated());
// 		return d;
// 	}
// 
// 	public Long getId() {
// 		return id;
// 	}
// 
// 	public void setId(Long id) {
// 		this.id = id;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public Date getCreated() {
// 		return created;
// 	}
// 
// 	public void setCreated(Date created) {
// 		this.created = created;
// 	}
// 
// 	public Date getUpdated() {
// 		return updated;
// 	}
// 
// 	public void setUpdated(Date updated) {
// 		this.updated = updated;
// 	}
// 
// 	public Boolean getEnabled() {
// 		return enabled;
// 	}
// 
// 	public void setEnabled(Boolean enabled) {
// 		this.enabled = enabled;
// 	}
// 
// }


import java.util.List;
import java.util.Optional;
import com.lyubenblagoev.postfixrest.service.model.DomainResource;
package com.lyubenblagoev.postfixrest.service;



public interface DomainService {
	
	List<DomainResource> getAllDomains();

// Path: src/main/java/com/lyubenblagoev/postfixrest/service/model/DomainResource.java
// public class DomainResource {
// 
// 	private Long id;
// 	
// 	@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ssZ")
// 	private Date created;
// 	
// 	@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ssZ")
// 	private Date updated;
// 	
// 	private Boolean enabled;
// 	
// 	@NotEmpty
// 	@Pattern(regexp="^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$", message = "must be a valid domain name")
// 	private String name;
// 	
// 	public static DomainResource fromDomain(Domain domain) {
// 		DomainResource resource = new DomainResource();
// 		resource.setId(domain.getId());
// 		resource.setName(domain.getName());
// 		resource.setEnabled(domain.isEnabled());
// 		resource.setCreated(domain.getCreated());
// 		resource.setUpdated(domain.getUpdated());
// 		return resource;
// 	}
// 	
// 	public static Domain toDomain(DomainResource domain) {
// 		Domain d = new Domain();
// 		d.setId(domain.getId());
// 		d.setName(domain.getName());
// 		d.setEnabled(domain.getEnabled());
// 		d.setCreated(domain.getCreated());
// 		d.setUpdated(domain.getUpdated());
// 		return d;
// 	}
// 
// 	public Long getId() {
// 		return id;
// 	}
// 
// 	public void setId(Long id) {
// 		this.id = id;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public Date getCreated() {
// 		return created;
// 	}
// 
// 	public void setCreated(Date created) {
// 		this.created = created;
// 	}
// 
// 	public Date getUpdated() {
// 		return updated;
// 	}
// 
// 	public void setUpdated(Date updated) {
// 		this.updated = updated;
// 	}
// 
// 	public Boolean getEnabled() {
// 		return enabled;
// 	}
// 
// 	public void setEnabled(Boolean enabled) {
// 		this.enabled = enabled;
// 	}
// 
// }


// Path: src/main/java/com/lyubenblagoev/postfixrest/service/DomainService.java
import java.util.List;
import java.util.Optional;
import com.lyubenblagoev.postfixrest.service.model.DomainResource;

package com.lyubenblagoev.postfixrest.service;



public interface DomainService {
	
	List<DomainResource> getAllDomains();

	Optional<DomainResource> getDomainByName(String name);