// Path: acmeair-customer-common/src/main/java/com/acmeair/entities/CustomerSession.java
// public interface CustomerSession {
// 
// 	String SESSIONID_COOKIE_NAME = "sessionid";
// 
// 	String getId();
// 
// 
// 	String getCustomerid();
// 
// 
// 	Date getLastAccessedTime();
// 	
// 
// 	Date getTimeoutTime();
// 
// 	
// }


import com.acmeair.entities.Customer;
import com.acmeair.entities.CustomerSession;
import com.acmeair.morphia.entities.CustomerAddressImpl;
package com.acmeair.service;


public interface CustomerService {
    Customer createCustomer(String username, String password, Customer.MemberShipStatus status, int total_miles, int miles_ytd, String phoneNumber,
                                   Customer.PhoneType phoneNumberType, CustomerAddressImpl address
    );
    
    CustomerAddressImpl createAddress(String streetAddress1, String streetAddress2, String city, String stateProvince, String country, String postalCode);
    
    Customer updateCustomer(Customer customer);
    
    Customer getCustomerByUsername(String username);
    
    boolean validateCustomer(String username, String password);
    
    Customer getCustomerByUsernameAndPassword(String username, String password);
    
// Path: acmeair-customer-common/src/main/java/com/acmeair/entities/CustomerSession.java
// public interface CustomerSession {
// 
// 	String SESSIONID_COOKIE_NAME = "sessionid";
// 
// 	String getId();
// 
// 
// 	String getCustomerid();
// 
// 
// 	Date getLastAccessedTime();
// 	
// 
// 	Date getTimeoutTime();
// 
// 	
// }


// Path: acmeair-customer-service/src/main/java/com/acmeair/service/CustomerService.java
import com.acmeair.entities.Customer;
import com.acmeair.entities.CustomerSession;
import com.acmeair.morphia.entities.CustomerAddressImpl;

package com.acmeair.service;


public interface CustomerService {
    Customer createCustomer(String username, String password, Customer.MemberShipStatus status, int total_miles, int miles_ytd, String phoneNumber,
                                   Customer.PhoneType phoneNumberType, CustomerAddressImpl address
    );
    
    CustomerAddressImpl createAddress(String streetAddress1, String streetAddress2, String city, String stateProvince, String country, String postalCode);
    
    Customer updateCustomer(Customer customer);
    
    Customer getCustomerByUsername(String username);
    
    boolean validateCustomer(String username, String password);
    
    Customer getCustomerByUsernameAndPassword(String username, String password);
    
    CustomerSession validateSession(String sessionid);