diff --git a/src/views/Content/ContentList.vue b/src/views/Content/ContentList.vue
index 0960683..11a26a9 100644
--- a/src/views/Content/ContentList.vue
+++ b/src/views/Content/ContentList.vue
@@ -378,6 +378,33 @@
label="가격"
required
/>
+ ※ 유료 콘텐츠 가격을 입력하면 해당 콘텐츠의 미리듣기 시간을 설정할 수 있습니다.
미리듣기 시간은 최소 30초 이상 설정해야 합니다.
+
+
+
+
+
+
+ 미리듣기 시간설정
+
+
+
+
+
+
+
+ ~
+
+
+
+
+
@@ -606,6 +633,12 @@ export default {
}
},
+ isValidTimeFormat(time) {
+ // 정규 표현식을 사용하여 "HH:mm:ss" 형식인지 확인
+ const regex = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;
+ return regex.test(time);
+ },
+
async save() {
if (
this.audio_content.title === null ||
@@ -647,7 +680,50 @@ export default {
price: this.audio_content.price,
themeId: this.audio_content.theme_id,
isAdult: this.audio_content.is_adult,
- isCommentAvailable: this.audio_content.is_comment_available,
+ isCommentAvailable: this.audio_content.is_comment_available
+ }
+
+ let previewStartTime = this.audio_content.preview_start_time;
+ let previewEndTime = this.audio_content.preview_end_time;
+
+ if (
+ previewStartTime !== undefined &&
+ previewStartTime !== null &&
+ previewStartTime.trim() !== '' &&
+ previewEndTime !== undefined &&
+ previewEndTime !== null &&
+ previewEndTime.trim() !== ''
+ ) {
+ if (
+ !this.isValidTimeFormat(previewStartTime) ||
+ !this.isValidTimeFormat(previewEndTime)
+ ) {
+ this.notifyError("미리 듣기 시간 형식은 00:30:00 과 같아야 합니다")
+ return
+ }
+
+ // 시간을 분해하고 계산하는 나머지 코드는 이전과 동일합니다.
+ const [h1, m1, s1] = previewStartTime.split(':').map(Number);
+ const [h2, m2, s2] = previewEndTime.split(':').map(Number);
+ const totalSeconds1 = h1 * 3600 + m1 * 60 + s1;
+ const totalSeconds2 = h2 * 3600 + m2 * 60 + s2;
+ const timeDifference = totalSeconds2 - totalSeconds1;
+
+ if (timeDifference < 30) {
+ this.notifyError("미리 듣기의 최소 시간은 30초 입니다.")
+ return
+ }
+
+ request["previewStartTime"] = previewStartTime
+ request["previewEndTime"] = previewEndTime
+ } else {
+ if (
+ (previewStartTime !== undefined && previewStartTime.trim() !== '') ||
+ (previewEndTime !== undefined && previewEndTime.trim() !== '')
+ ) {
+ this.notifyError("미리 듣기 시작 시간과 종료 시간 둘 다 입력을 하거나 둘 다 입력 하지 않아야 합니다.")
+ return
+ }
}
formData.append("coverImage", this.audio_content.cover_image)