// Path: day-1/part-4/account-service/src/main/java/com/example/user/User.java
// @Entity
// public class User {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     private Long id;
// 
//     @Transient
//     private UserStatus status;
// 
//     private Long userId;
// 
//     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "user")
//     private List<Account> accounts;
// 
//     public User() {
//     }
// 
//     public User(Long userId) {
//         this.userId = userId;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public Long getUserId() {
//         return userId;
//     }
// 
//     public void setUserId(Long userId) {
//         this.userId = userId;
//     }
// 
//     public List<Account> getAccounts() {
//         return accounts;
//     }
// 
//     public void setAccounts(List<Account> accounts) {
//         this.accounts = accounts;
//     }
// 
//     public UserStatus getStatus() {
//         return status;
//     }
// 
//     public void setStatus(UserStatus status) {
//         this.status = status;
//     }
// 
//     @Override
//     public String toString() {
//         return "User{" +
//                 "id=" + id +
//                 ", status=" + status +
//                 ", userId=" + userId +
//                 ", accounts=" + accounts +
//                 '}';
//     }
// }


import com.example.user.User;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.util.UUID;
package com.example.account;



@Entity
public class Account {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @JsonIgnore
    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private User user;
    private String accountNumber;
    private AccountStatus status;

    public Account() {
        accountNumber = UUID.randomUUID().toString();
    }

    public Account(User user) {
        this();
        this.user = user;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

// Path: day-1/part-4/account-service/src/main/java/com/example/user/User.java
// @Entity
// public class User {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     private Long id;
// 
//     @Transient
//     private UserStatus status;
// 
//     private Long userId;
// 
//     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "user")
//     private List<Account> accounts;
// 
//     public User() {
//     }
// 
//     public User(Long userId) {
//         this.userId = userId;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public Long getUserId() {
//         return userId;
//     }
// 
//     public void setUserId(Long userId) {
//         this.userId = userId;
//     }
// 
//     public List<Account> getAccounts() {
//         return accounts;
//     }
// 
//     public void setAccounts(List<Account> accounts) {
//         this.accounts = accounts;
//     }
// 
//     public UserStatus getStatus() {
//         return status;
//     }
// 
//     public void setStatus(UserStatus status) {
//         this.status = status;
//     }
// 
//     @Override
//     public String toString() {
//         return "User{" +
//                 "id=" + id +
//                 ", status=" + status +
//                 ", userId=" + userId +
//                 ", accounts=" + accounts +
//                 '}';
//     }
// }


// Path: day-1/part-4/account-service/src/main/java/com/example/account/Account.java
import com.example.user.User;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javax.persistence.*;
import java.util.UUID;

package com.example.account;



@Entity
public class Account {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @JsonIgnore
    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    private User user;
    private String accountNumber;
    private AccountStatus status;

    public Account() {
        accountNumber = UUID.randomUUID().toString();
    }

    public Account(User user) {
        this();
        this.user = user;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public User getUser() {