packagecom.example.goguma;

importcom.example.goguma.model.Post;
importcom.example.goguma.model.PostImg;
importcom.example.goguma.model.User;
importcom.example.goguma.service.ChatService;
importcom.example.goguma.service.OrderService;
importlombok.RequiredArgsConstructor;
importorg.springframework.security.crypto.password.PasswordEncoder;
importorg.springframework.stereotype.Component;
importorg.springframework.transaction.annotation.Transactional;

importjavax.annotation.PostConstruct;
importjavax.persistence.EntityManager;

@Component
@RequiredArgsConstructor
public classinitDB{
    private finalEntityManagerem;

    private finalInitServiceinitService;

@PostConstruct
public void init() {
        initService.dbInit();
    }

@Component
    @Transactional
    @RequiredArgsConstructor
static classInitService{
        private finalEntityManagerem;
        private finalPasswordEncoderpasswordEncoder;
        private finalChatServicechatService;
        private finalOrderServiceorderService;

        public void dbInit() {
Stringpw = passwordEncoder.encode("aaaa");

Useruser1 = new User("user1", pw, "호구마", "서울시 중구 뭐동");
Useruser2 = new User("user2", pw, "고냥이", "서울시 중구 뭐동");
Useruser3 = new User("user3", pw, "스마일", "서울시 중구 뭐동");

            em.persist(user1);
            em.persist(user2);
            em.persist(user3);

            em.flush();
            em.clear();

Postpost1 = new Post("title1", 1000, "content1", "서울 강남구 신사동 537-5", "2022-6-30 ~2022-7-4");
            post1.addUser(user1);
Postpost2 = new Post("title2", 2000, "content2", "서울 강남구 신사동 537-5","2022-6-30 ~2022-7-4");
            post2.addUser(user2);
Postpost3 = new Post("title3", 2000, "content2", "서울 강남구 신사동 537-5", "2022-6-30 ~2022-7-4");
            post3.addUser(user3);

            em.persist(post1);
            em.persist(post2);
            em.persist(post3);

            em.flush();
            em.clear();

PostImgpostImg1 = new PostImg("<https://opgg-com-image.akamaized.net/attach/images/20200415055358.1141863.jpg>");
            postImg1.addPost(post1);
PostImgpostImg2 = new PostImg("<http://50.76.59.227/files/testing_image.jpg>");
            postImg2.addPost(post1);
PostImgpostImg3 = new PostImg("<https://helpx.adobe.com/content/dam/help/en/photoshop/how-to/compositing/jcr%3acontent/main-pars/image/compositing_1408x792.jpg>");
            postImg3.addPost(post2);
PostImgpostImg4 = new PostImg("<https://helpx.adobe.com/content/dam/help/en/photoshop/how-to/compositing/jcr%3acontent/main-pars/image/compositing_1408x792.jpg>");
            postImg4.addPost(post3);

            em.persist(postImg1);
            em.persist(postImg2);
            em.persist(postImg3);
            em.persist(postImg4);

            em.flush();
            em.clear();

StringroomId = chatService.createRoom(user2, post1.getId());
            chatService.createRoom(user3, post1.getId());

            orderService.order(roomId);
        }
    }
}