// Path: identity-service/src/main/java/eu/nimble/core/infrastructure/identity/entity/UaaUser.java
// @Entity
// public class UaaUser implements Serializable {
// 
//     @Id
//     @Column(nullable = false, unique = true)
//     private String externalID;
// 
//     private String username;
// 
//     @OneToOne
//     private PersonType ublPerson;
// 
//     @ColumnDefault("false")
//     private Boolean showWelcomeInfo = false;
// 
//     public UaaUser() {
//     }
// 
//     public UaaUser(String username, PersonType ublPerson, String externalID) {
//         this.username = username;
//         this.ublPerson = ublPerson;
//         this.externalID = externalID;
//         this.showWelcomeInfo = true;
//     }
// 
//     public String getUsername() {
//         return username;
//     }
// 
//     public String getExternalID() {
//         return externalID;
//     }
// 
//     public PersonType getUBLPerson() {
//         return this.ublPerson;
//     }
// 
//     public Boolean getShowWelcomeInfo() {
//         return showWelcomeInfo;
//     }
// 
//     public void setShowWelcomeInfo(Boolean showWelcomeInfo) {
//         this.showWelcomeInfo = showWelcomeInfo;
//     }
// }


import com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect;
import eu.nimble.core.infrastructure.identity.entity.UaaUser;
import eu.nimble.service.model.ubl.commonaggregatecomponents.PartyType;
import eu.nimble.service.model.ubl.commonaggregatecomponents.PersonType;
import eu.nimble.service.model.ubl.commonbasiccomponents.CodeType;
import eu.nimble.utility.email.EmailService;
import eu.nimble.utility.email.ThymeleafConfig;
import eu.nimble.utility.persistence.binary.BinaryContentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.context.annotation.*;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import javax.sql.DataSource;
package eu.nimble.core.infrastructure.identity;



@Configuration
@EnableDiscoveryClient
@EnableHystrix
@EnableFeignClients
@SpringBootApplication
@EnableScheduling
@EnableJpaRepositories(basePackages = {"eu.nimble.core.infrastructure.identity"})
// Path: identity-service/src/main/java/eu/nimble/core/infrastructure/identity/entity/UaaUser.java
// @Entity
// public class UaaUser implements Serializable {
// 
//     @Id
//     @Column(nullable = false, unique = true)
//     private String externalID;
// 
//     private String username;
// 
//     @OneToOne
//     private PersonType ublPerson;
// 
//     @ColumnDefault("false")
//     private Boolean showWelcomeInfo = false;
// 
//     public UaaUser() {
//     }
// 
//     public UaaUser(String username, PersonType ublPerson, String externalID) {
//         this.username = username;
//         this.ublPerson = ublPerson;
//         this.externalID = externalID;
//         this.showWelcomeInfo = true;
//     }
// 
//     public String getUsername() {
//         return username;
//     }
// 
//     public String getExternalID() {
//         return externalID;
//     }
// 
//     public PersonType getUBLPerson() {
//         return this.ublPerson;
//     }
// 
//     public Boolean getShowWelcomeInfo() {
//         return showWelcomeInfo;
//     }
// 
//     public void setShowWelcomeInfo(Boolean showWelcomeInfo) {
//         this.showWelcomeInfo = showWelcomeInfo;
//     }
// }


// Path: identity-service/src/main/java/eu/nimble/core/infrastructure/identity/IdentityServiceApplication.java
import com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect;
import eu.nimble.core.infrastructure.identity.entity.UaaUser;
import eu.nimble.service.model.ubl.commonaggregatecomponents.PartyType;
import eu.nimble.service.model.ubl.commonaggregatecomponents.PersonType;
import eu.nimble.service.model.ubl.commonbasiccomponents.CodeType;
import eu.nimble.utility.email.EmailService;
import eu.nimble.utility.email.ThymeleafConfig;
import eu.nimble.utility.persistence.binary.BinaryContentService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.context.annotation.*;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import javax.sql.DataSource;

package eu.nimble.core.infrastructure.identity;



@Configuration
@EnableDiscoveryClient
@EnableHystrix
@EnableFeignClients
@SpringBootApplication
@EnableScheduling
@EnableJpaRepositories(basePackages = {"eu.nimble.core.infrastructure.identity"})
@EntityScan(basePackageClasses = {UaaUser.class, PartyType.class, PersonType.class, CodeType.class})