Skip to content

Commit

Permalink
feat: User도메인에 약관 도메인을 추가한다
Browse files Browse the repository at this point in the history
  • Loading branch information
devxb committed Dec 27, 2023
1 parent 182a52a commit d8704da
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 2 deletions.
28 changes: 28 additions & 0 deletions src/main/java/net/teumteum/user/domain/Terms.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package net.teumteum.user.domain;

import jakarta.persistence.Column;
import jakarta.persistence.Embeddable;
import jakarta.persistence.PrePersist;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.springframework.util.Assert;

@Getter
@Embeddable
@NoArgsConstructor
@AllArgsConstructor
public class Terms {

@Column(name = "terms_of_service", nullable = false)
private Boolean service;

@Column(name = "privacy_policy", nullable = false)
private Boolean privacyPolicy;

@PrePersist
private void assertTerms() {
Assert.isTrue(service, () -> "서비스 이용 약관은 항상 동의 되어야 합니다.");
Assert.isTrue(privacyPolicy, () -> "개인정보 처리 방침은 항상 동의 되어야 합니다.");
}
}
3 changes: 3 additions & 0 deletions src/main/java/net/teumteum/user/domain/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ public class User {
@ElementCollection
private List<String> interests;

@Embedded
private Terms terms;

@PrePersist
private void assertField() {
assertName();
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/db/migration/V1__create_users.sql
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ create table if not exists users(
job_class varchar(255),
job_name varchar(255),
status enum('직장인','학생','취업준비생'),
terms_of_service boolean not null,
privacy_policy boolean not null,
primary key (id)
);

Expand Down
6 changes: 4 additions & 2 deletions src/test/java/net/teumteum/user/domain/UserFixture.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package net.teumteum.user.domain;

import jakarta.persistence.Column;
import java.util.List;
import lombok.Builder;

Expand Down Expand Up @@ -29,7 +28,8 @@ public static User newUserByBuilder(UserBuilder userBuilder) {
userBuilder.status,
userBuilder.goal,
userBuilder.job,
userBuilder.interests
userBuilder.interests,
userBuilder.terms
);
}

Expand Down Expand Up @@ -62,6 +62,8 @@ public static class UserBuilder {
private List<String> interests = List.of(
"game", "sleep", "Eating delicious food"
);
@Builder.Default
private Terms terms = new Terms(true, true);
}

}
2 changes: 2 additions & 0 deletions src/test/resources/schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ create table if not exists users(
job_class varchar(255),
job_name varchar(255),
status enum('직장인','학생','취업준비생'),
terms_of_service boolean not null,
privacy_policy boolean not null,
primary key (id)
);

Expand Down

0 comments on commit d8704da

Please sign in to comment.