멤버 (Member
)
public class Member extends BaseEntity {
private Long id;
private Long socialId;
private String nickname;
private String gender;
private int age;
private String profileImageUrl;
private TravelSchedule travelSchedule;
private Membership membership;
// 로그인 관련 메서드
void login();
void logout();
// 정보 관련 메서드
void deleteAccount();
void updateProfile();
}
여행 일정 (TravelSchedule
)
public class TravelSchedule extends BaseEntity {
private Long id;
private String memberId;
private String country;
private List<String> cities;
private LocalDate startDate;
private LocalDate endDate;
// 메서드
void createSchedule();
void updateSchedule();
}
멤버십 (Membership
)
public class Membership extends BaseEntity {
private Long id;
private String memberId;
private boolean isActive;
private LocalDateTime activatedDate;
private LocalDateTime expiredDate;
// 메서드
void activate();
void deactivate();
boolean isActive();
}
결제(Payment
) - 아직 잘 모르겠음..
public class Payment extends BaseEntity {
private Long id;
private Long memberId;
private BigDecimal amount;
private String status; // Pending, Approved, Failed, Refunded
private LocalDateTime requestDate;
private LocalDateTime completionDate;
// 메서드
void approve();
void fail();
void refund();
boolean isSuccessful();
}
동행 (Udong
)
public class Udong extends BaseEntity {
private Long id;
private String title;
private String country;
private List<String> cities;
private LocalDate startDate;
private LocalDate endDate;
private List<Tag> tags;
private Status status; // 모집 중, 진행 중, 종료
// 관계
private Participants participants;
private Waiters waiters;
private UdongSchedule schedules;
private Cost costs;
private Chat chat;
// 메서드
void updateUdong();
void deleteUdong();
void changeStatus();
// 참여&대기 관련
void participate();
void leaveUdong();
void addWaiter();
void removeWatier();
// 약속 관련
void createUdongSchedule();
// 정산 관련
void createCost();
}
태그(Tag
)
public class Tag {
private Long tagId;
}
동행 상태(UdongStatus
)