// Path: micro-core/src/main/java/sample/context/Timestamper.java
// public class Timestamper {
//     public static final String KeyDay = "system.businessDay.day";
// 
//     @Autowired(required = false)
//     private AppSettingHandler setting;
// 
//     private final Clock clock;
// 
//     public Timestamper() {
//         clock = Clock.systemDefaultZone();
//     }
// 
//     public Timestamper(final Clock clock) {
//         this.clock = clock;
//     }
// 
//     /** 営業日を返します。 */
//     public LocalDate day() {
//         return setting == null ? LocalDate.now(clock) : DateUtils.day(setting.setting(KeyDay).str());
//     }
// 
//     /** 日時を返します。 */
//     public LocalDateTime date() {
//         return LocalDateTime.now(clock);
//     }
// 
//     /** 営業日/日時を返します。 */
//     public TimePoint tp() {
//         return TimePoint.of(day(), date());
//     }
// 
//     /**
//      * 営業日を指定日へ進めます。
//      * <p>AppSettingHandlerを設定時のみ有効です。
//      * @param day 更新営業日
//      */
//     public Timestamper proceedDay(LocalDate day) {
//         if (setting != null)
//             setting.update(KeyDay, DateUtils.dayFormat(day));
//         return this;
//     }
// 
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java
// @Setter
// public class AssetRepository extends OrmRepository {
//     public static final String BeanNameDs = "assetDataSource";
//     public static final String BeanNameEmf = "assetEntityManagerFactory";
//     public static final String BeanNameTx = "assetTransactionManager";
// 
//     @PersistenceContext(unitName = BeanNameEmf)
//     private EntityManager em;
// 
//     @Override
//     public EntityManager em() {
//         return em;
//     }
// 
//     /** 資産スキーマのHibernateコンポーネントを生成します。 */
//     @ConfigurationProperties(prefix = "extension.datasource.asset")
//     @Data
//     @EqualsAndHashCode(callSuper = false)
//     public static class AssetDataSourceProperties extends OrmDataSourceProperties {
//         private OrmRepositoryProperties jpa = new OrmRepositoryProperties();
//         
//         public DataSource dataSource() {
//             return super.dataSource();
//         }
//         
//         public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
//                 final DataSource dataSource) {
//             return jpa.entityManagerFactoryBean(BeanNameEmf, dataSource);
//         }
// 
//         public JpaTransactionManager transactionManager(final EntityManagerFactory emf) {
//             return jpa.transactionManager(emf);
//         }
//     }
// 
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/model/asset/Cashflow.java
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// public static class RegCashflow implements Dto {
//     private static final long serialVersionUID = 1L;
//     @IdStr
//     private String accountId;
//     @Currency
//     private String currency;
//     @Amount
//     private BigDecimal amount;
//     @NotNull
//     private CashflowType cashflowType;
//     @Category
//     private String remark;
//     /** 未設定時は営業日を設定 */
//     @ISODateEmpty
//     private LocalDate eventDay;
//     @ISODate
//     private LocalDate valueDay;
// 
//     public Cashflow create(final TimePoint now) {
//         TimePoint eventDate = eventDay == null ? now : new TimePoint(eventDay, now.getDate());
//         Cashflow m = new Cashflow();
//         m.setAccountId(accountId);
//         m.setCurrency(currency);
//         m.setAmount(amount);
//         m.setCashflowType(cashflowType);
//         m.setRemark(remark);
//         m.setEventDay(eventDate.getDay());
//         m.setEventDate(eventDate.getDate());
//         m.setValueDay(valueDay);
//         m.setStatusType(ActionStatusType.Unprocessed);
//         return m;
//     }
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/model/asset/type/CashflowType.java
// public enum CashflowType {
//     /** 振込入金 */
//     CashIn,
//     /** 振込出金 */
//     CashOut,
//     /** 振替入金 */
//     CashTransferIn,
//     /** 振替出金 */
//     CashTransferOut
// }


import java.math.BigDecimal;
import java.time.*;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.*;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.support.TransactionTemplate;
import lombok.Setter;
import sample.ActionStatusType;
import sample.context.Timestamper;
import sample.microasset.context.orm.AssetRepository;
import sample.microasset.model.asset.*;
import sample.microasset.model.asset.Cashflow.RegCashflow;
import sample.microasset.model.asset.type.CashflowType;
import sample.model.BusinessDayHandler;
import sample.util.TimePoint;
package sample.microasset.model;





@Setter
public class AssetDataFixtures {
    
    @Autowired
    private Timestamper time;
    @Autowired
    private BusinessDayHandler businessDay;
    @Autowired
// Path: micro-core/src/main/java/sample/context/Timestamper.java
// public class Timestamper {
//     public static final String KeyDay = "system.businessDay.day";
// 
//     @Autowired(required = false)
//     private AppSettingHandler setting;
// 
//     private final Clock clock;
// 
//     public Timestamper() {
//         clock = Clock.systemDefaultZone();
//     }
// 
//     public Timestamper(final Clock clock) {
//         this.clock = clock;
//     }
// 
//     /** 営業日を返します。 */
//     public LocalDate day() {
//         return setting == null ? LocalDate.now(clock) : DateUtils.day(setting.setting(KeyDay).str());
//     }
// 
//     /** 日時を返します。 */
//     public LocalDateTime date() {
//         return LocalDateTime.now(clock);
//     }
// 
//     /** 営業日/日時を返します。 */
//     public TimePoint tp() {
//         return TimePoint.of(day(), date());
//     }
// 
//     /**
//      * 営業日を指定日へ進めます。
//      * <p>AppSettingHandlerを設定時のみ有効です。
//      * @param day 更新営業日
//      */
//     public Timestamper proceedDay(LocalDate day) {
//         if (setting != null)
//             setting.update(KeyDay, DateUtils.dayFormat(day));
//         return this;
//     }
// 
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/context/orm/AssetRepository.java
// @Setter
// public class AssetRepository extends OrmRepository {
//     public static final String BeanNameDs = "assetDataSource";
//     public static final String BeanNameEmf = "assetEntityManagerFactory";
//     public static final String BeanNameTx = "assetTransactionManager";
// 
//     @PersistenceContext(unitName = BeanNameEmf)
//     private EntityManager em;
// 
//     @Override
//     public EntityManager em() {
//         return em;
//     }
// 
//     /** 資産スキーマのHibernateコンポーネントを生成します。 */
//     @ConfigurationProperties(prefix = "extension.datasource.asset")
//     @Data
//     @EqualsAndHashCode(callSuper = false)
//     public static class AssetDataSourceProperties extends OrmDataSourceProperties {
//         private OrmRepositoryProperties jpa = new OrmRepositoryProperties();
//         
//         public DataSource dataSource() {
//             return super.dataSource();
//         }
//         
//         public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(
//                 final DataSource dataSource) {
//             return jpa.entityManagerFactoryBean(BeanNameEmf, dataSource);
//         }
// 
//         public JpaTransactionManager transactionManager(final EntityManagerFactory emf) {
//             return jpa.transactionManager(emf);
//         }
//     }
// 
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/model/asset/Cashflow.java
// @Data
// @NoArgsConstructor
// @AllArgsConstructor
// public static class RegCashflow implements Dto {
//     private static final long serialVersionUID = 1L;
//     @IdStr
//     private String accountId;
//     @Currency
//     private String currency;
//     @Amount
//     private BigDecimal amount;
//     @NotNull
//     private CashflowType cashflowType;
//     @Category
//     private String remark;
//     /** 未設定時は営業日を設定 */
//     @ISODateEmpty
//     private LocalDate eventDay;
//     @ISODate
//     private LocalDate valueDay;
// 
//     public Cashflow create(final TimePoint now) {
//         TimePoint eventDate = eventDay == null ? now : new TimePoint(eventDay, now.getDate());
//         Cashflow m = new Cashflow();
//         m.setAccountId(accountId);
//         m.setCurrency(currency);
//         m.setAmount(amount);
//         m.setCashflowType(cashflowType);
//         m.setRemark(remark);
//         m.setEventDay(eventDate.getDay());
//         m.setEventDate(eventDate.getDate());
//         m.setValueDay(valueDay);
//         m.setStatusType(ActionStatusType.Unprocessed);
//         return m;
//     }
// }
// 
// Path: micro-asset/src/main/java/sample/microasset/model/asset/type/CashflowType.java
// public enum CashflowType {
//     /** 振込入金 */
//     CashIn,
//     /** 振込出金 */
//     CashOut,
//     /** 振替入金 */
//     CashTransferIn,
//     /** 振替出金 */
//     CashTransferOut
// }


// Path: micro-asset/src/main/java/sample/microasset/model/AssetDataFixtures.java
import java.math.BigDecimal;
import java.time.*;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.*;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.support.TransactionTemplate;
import lombok.Setter;
import sample.ActionStatusType;
import sample.context.Timestamper;
import sample.microasset.context.orm.AssetRepository;
import sample.microasset.model.asset.*;
import sample.microasset.model.asset.Cashflow.RegCashflow;
import sample.microasset.model.asset.type.CashflowType;
import sample.model.BusinessDayHandler;
import sample.util.TimePoint;

package sample.microasset.model;





@Setter
public class AssetDataFixtures {
    
    @Autowired
    private Timestamper time;
    @Autowired
    private BusinessDayHandler businessDay;
    @Autowired
    private AssetRepository rep;