Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,14 @@ public record CouncilCreateRequest(
@Schema(description = "총동아리연합회 운영 시간", example = "평일 09:00 ~ 18:00", requiredMode = REQUIRED)
String operatingHour,

@NotEmpty(message = "총동아리연합회 인스타 주소는 필수 입력입니다.")
@Size(max = 255, message = "총동아리연합회 인스타 주소는 최대 255자 입니다.")
@Pattern(regexp = "^https?://(www\\.)?instagram\\.com/[a-zA-Z0-9._]+/?$", message = "올바른 인스타그램 URL 형식이 아닙니다.")
@Schema(description = "총동아리연합회 인스타 주소", example = "https://www.instagram.com/koreatech_council", requiredMode = REQUIRED)
String instagramUrl
@NotEmpty(message = "총동아리연합회 인스타 아이디는 필수 입력입니다.")
@Size(max = 30, message = "총동아리연합회 인스타 아이디는 최대 30자 입니다.")
@Pattern(
regexp = "^[A-Za-z0-9._]+$",
message = "인스타 아이디는 영문/숫자/점(.)/밑줄(_)만 사용할 수 있으며 @ 는 포함할 수 없습니다."
)
@Schema(description = "총동아리연합회 인스타 아이디", example = "koreatechclub_flowers", requiredMode = REQUIRED)
String instagramUserName
) {
public Council toEntity(University university) {
return Council.builder()
Expand All @@ -68,7 +71,7 @@ public Council toEntity(University university) {
.personalColor(personalColor)
.phoneNumber(phoneNumber)
.email(email)
.instagramUrl(instagramUrl)
.instagramUserName(instagramUserName)
.operatingHour(operatingHour)
.university(university)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ public record CouncilResponse(
@Schema(description = "총동아리연합회 운영 시간", example = "평일 09:00 ~ 18:00", requiredMode = REQUIRED)
String operatingHour,

@Schema(description = "총동아리연합회 인스타 주소", example = "https://www.instagram.com/koreatech_council", requiredMode = REQUIRED)
String instagramUrl
@Schema(description = "총동아리연합회 인스타 아이디", example = "koreatechclub_flowers", requiredMode = REQUIRED)
String instagramUserName
) {
public static CouncilResponse from(Council council) {
return new CouncilResponse(
Expand All @@ -39,7 +39,7 @@ public static CouncilResponse from(Council council) {
council.getLocation(),
council.getPersonalColor(),
council.getOperatingHour(),
council.getInstagramUrl()
council.getInstagramUserName()
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,14 @@ public record CouncilUpdateRequest(
@Schema(description = "총동아리연합회 운영 시간", example = "평일 09:00 ~ 18:00", requiredMode = REQUIRED)
String operatingHour,

@NotEmpty(message = "총동아리연합회 인스타 주소는 필수 입력입니다.")
@Size(max = 255, message = "총동아리연합회 인스타 주소는 최대 255자 입니다.")
@Pattern(regexp = "^https?://(www\\.)?instagram\\.com/[a-zA-Z0-9._]+/?$", message = "올바른 인스타그램 URL 형식이 아닙니다.")
@Schema(description = "총동아리연합회 인스타 주소", example = "https://www.instagram.com/koreatech_council", requiredMode = REQUIRED)
String instagramUrl
@NotEmpty(message = "총동아리연합회 인스타 아이디는 필수 입력입니다.")
@Size(max = 30, message = "총동아리연합회 인스타 아이디는 최대 30자 입니다.")
@Pattern(
regexp = "^[A-Za-z0-9._]+$",
message = "인스타 아이디는 영문/숫자/점(.)/밑줄(_)만 사용할 수 있으며 @ 는 포함할 수 없습니다."
)
@Schema(description = "총동아리연합회 인스타 아이디", example = "koreatechclub_flowers", requiredMode = REQUIRED)
String instagramUserName
) {

}
14 changes: 7 additions & 7 deletions src/main/java/gg/agit/konect/domain/council/model/Council.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import static jakarta.persistence.GenerationType.IDENTITY;
import static lombok.AccessLevel.PROTECTED;

import gg.agit.konect.global.model.BaseEntity;
import gg.agit.konect.domain.university.model.University;
import gg.agit.konect.global.model.BaseEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
Expand Down Expand Up @@ -58,8 +58,8 @@ public class Council extends BaseEntity {
private String email;

@NotNull
@Column(name = "instagram_url", nullable = false)
private String instagramUrl;
@Column(name = "instagram_user_name", nullable = false)
private String instagramUserName;

@NotNull
@Column(name = "operating_hour", nullable = false)
Expand All @@ -79,7 +79,7 @@ private Council(
String personalColor,
String phoneNumber,
String email,
String instagramUrl,
String instagramUserName,
String operatingHour,
University university
) {
Expand All @@ -91,7 +91,7 @@ private Council(
this.personalColor = personalColor;
this.phoneNumber = phoneNumber;
this.email = email;
this.instagramUrl = instagramUrl;
this.instagramUserName = instagramUserName;
this.operatingHour = operatingHour;
this.university = university;
}
Expand All @@ -102,15 +102,15 @@ public void update(
String introduce,
String location,
String personalColor,
String instagramUrl,
String instagramUserName,
String operatingHour
) {
this.name = name;
this.imageUrl = imageUrl;
this.introduce = introduce;
this.location = location;
this.personalColor = personalColor;
this.instagramUrl = instagramUrl;
this.instagramUserName = instagramUserName;
this.operatingHour = operatingHour;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public void updateCouncil(Integer userId, CouncilUpdateRequest request) {
request.introduce(),
request.location(),
request.personalColor(),
request.instagramUrl(),
request.instagramUserName(),
request.operatingHour()
);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
ALTER TABLE council
CHANGE instagram_url instagram_user_name VARCHAR(30) NOT NULL;

UPDATE council
SET instagram_user_name = CASE
WHEN instagram_user_name IS NULL THEN instagram_user_name
WHEN instagram_user_name LIKE '%/%' OR instagram_user_name LIKE 'http%' THEN
SUBSTRING_INDEX(
SUBSTRING_INDEX(TRIM(TRAILING '/' FROM instagram_user_name), '?', 1),
'/',
-1
)
ELSE instagram_user_name
END;

UPDATE council
SET instagram_user_name = SUBSTRING(instagram_user_name, 2)
WHERE instagram_user_name LIKE '@%';