diff --git a/src/main/java/com/swyp/picke/domain/user/entity/UserTendencyScoreHistory.java b/src/main/java/com/swyp/picke/domain/user/entity/UserTendencyScoreHistory.java index 164f423..ef8b5f3 100644 --- a/src/main/java/com/swyp/picke/domain/user/entity/UserTendencyScoreHistory.java +++ b/src/main/java/com/swyp/picke/domain/user/entity/UserTendencyScoreHistory.java @@ -1,6 +1,7 @@ package com.swyp.picke.domain.user.entity; import com.swyp.picke.global.common.BaseEntity; +import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.JoinColumn; @@ -29,6 +30,7 @@ public class UserTendencyScoreHistory extends BaseEntity { private int change; + @Column(name = "inner_score") private int inner; private int ideal; diff --git a/src/main/java/com/swyp/picke/domain/user/enums/CreditType.java b/src/main/java/com/swyp/picke/domain/user/enums/CreditType.java index 076db61..845a633 100644 --- a/src/main/java/com/swyp/picke/domain/user/enums/CreditType.java +++ b/src/main/java/com/swyp/picke/domain/user/enums/CreditType.java @@ -4,15 +4,16 @@ @Getter public enum CreditType { - DEFAULT_CREDIT(30), // 기본 크레딧: 회원가입 시 기본 지급 - BATTLE_VOTE(5), // 배틀 참여 보상: 사후 투표 완료 시 즉시 지급 - BATTLE_ENTRY(-10), // 지난 배틀 이용 비용: 사전 투표 최초 진입 시 차감 - MAJORITY_WIN(10), // 다수결 보상: 월요일 배치, 2주 전 배틀 TOP≥10 대상 - BEST_COMMENT(50), // 베댓 보상: 월요일 배치, 2주 전 배틀 좋아요 1위 - WEEKLY_CHARGE(40), // 주간 자동 충전: 매주 월요일 00:00 활성 사용자 전체 - FREE_CHARGE(0), // 광고/자유 충전: 가변 금액 - TOPIC_SUGGEST(30), // 주제 제안 - TOPIC_ADOPTED(100); // 주제 채택 + TODAY_CREDIT(5), // 출석체크: 하루 1회 + DEFAULT_CREDIT(30), // 기본 크레딧: 회원가입 시 기본 지급 + BATTLE_VOTE(5), // 배틀 참여 보상: 사후 투표 완료 시 즉시 지급 + BATTLE_ENTRY(-5), // 지난 배틀 이용 비용: 사전 투표 최초 진입 시 차감 + MAJORITY_WIN(10), // 다수결 보상: 월요일 배치, 2주 전 배틀 TOP≥10 대상 + BEST_COMMENT(15), // 베댓 보상: 월요일 배치, 2주 전 배틀 좋아요 1위 + WEEKLY_CHARGE(40), // 주간 자동 충전: 매주 월요일 00:00 활성 사용자 전체 + FREE_CHARGE(20), // 광고/자유 충전: 가변 금액 + TOPIC_SUGGEST(100), // 주제 제안 + TOPIC_ADOPTED(120); // 주제 채택 private final int defaultAmount; diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a7b79d6 --- /dev/null +++ b/src/main/resources/application-prod.yml @@ -0,0 +1,14 @@ +spring: + datasource: + url: ${DB_URL} + username: ${DB_USER} + password: ${DB_PASSWORD} + driver-class-name: org.postgresql.Driver + + jpa: + hibernate: + ddl-auto: update + show-sql: false + properties: + hibernate: + dialect: org.hibernate.dialect.PostgreSQLDialect \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 28597ca..fa973fa 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,45 +1,28 @@ -# 1. Spring 핵심 설정 +# 1. 환경 설정 (기본값을 local로 지정) spring: + profiles: + active: local servlet: multipart: enabled: true max-file-size: 50MB max-request-size: 50MB - # 2. 데이터베이스 설정 (PostgreSQL) - datasource: - url: ${DB_URL} - username: ${DB_USER} - password: ${DB_PASSWORD} - driver-class-name: org.postgresql.Driver +# 2. 클라우드 인프라 설정 (AWS, GCP) +cloud: + aws: + s3: + bucket: ${AWS_S3_BUCKET} + region: + static: ${AWS_REGION} + credentials: + access-key: ${AWS_ACCESS_KEY} + secret-key: ${AWS_SECRET_KEY} + gcp: + credentials: + location: ${GCP_CREDENTIALS_PATH} - # 3. JPA/Hibernate 설정 - jpa: - hibernate: - ddl-auto: update - show-sql: true - properties: - hibernate: - format_sql: true - dialect: org.hibernate.dialect.PostgreSQLDialect - - # 4. 클라우드 인프라 설정 (AWS, GCP) - cloud: - # AWS S3 설정 - aws: - s3: - bucket: ${AWS_S3_BUCKET} - region: - static: ${AWS_REGION} - credentials: - access-key: ${AWS_ACCESS_KEY} - secret-key: ${AWS_SECRET_KEY} - # GCP TTS 인증 - gcp: - credentials: - location: ${GCP_CREDENTIALS_PATH} - -# 5. 인증 및 보안 설정 (OAuth2, JWT) +# 3. 인증 및 보안 설정 (OAuth2, JWT) oauth: kakao: client-id: ${KAKAO_CLIENT_ID} @@ -48,9 +31,8 @@ oauth: client-id: ${GOOGLE_CLIENT_ID} client-secret: ${GOOGLE_CLIENT_SECRET} -# 6. 외부 API 설정 (AdMob, OpenAI, Fish Audio 등) +# 4. 외부 API 설정 (AdMob, OpenAI, Fish Audio, ElevenLabs 등) admob: - # // 6.1 애드몹 앱 및 광고 단위 설정 app-id: ${ADMOB_APP_ID} reward: unit-id: ${ADMOB_REWARD_UNIT_ID} @@ -67,6 +49,11 @@ fishaudio: api-key: ${FISHAUDIO_API_KEY} tts: url: https://api.fish.audio/v1/tts + voice-id: + a: ${FISHAUDIO_VOICE_A} + b: ${FISHAUDIO_VOICE_B} + user: ${FISHAUDIO_VOICE_USER} + narrator: ${FISHAUDIO_VOICE_NARRATOR} elevenlabs: api-key: ${ELEVENLABS_API_KEY} @@ -77,7 +64,7 @@ elevenlabs: user: ${ELEVENLABS_VOICE_USER} narrator: ${ELEVENLABS_VOICE_NARRATOR} -# 7. Swagger 문서 설정 +# 5. 기타 설정 (Swagger, JWT, 미디어 등) springdoc: default-consumes-media-type: application/json default-produces-media-type: application/json @@ -89,11 +76,10 @@ springdoc: api-docs: path: /v3/api-docs -# 8. JWT 설정 jwt: secret: ${JWT_SECRET} - access-token-expiration: 3600000 # 1시간 - refresh-token-expiration: 1209600000 # 14일 + access-token-expiration: 3600000 + refresh-token-expiration: 1209600000 picke: baseUrl: ${PICKE_BASE_URL:https://picke.store} @@ -103,9 +89,8 @@ picke: local-storage: root: ${PICKE_LOCAL_STORAGE_ROOT:${java.io.tmpdir}/picke-local-storage} -# 9. 미디어 처리 설정 (FFmpeg) media: ffmpeg: path: ${FFMPEG_PATH:ffmpeg} ffprobe: - path: ${FFPROBE_PATH:ffprobe} + path: ${FFPROBE_PATH:ffprobe} \ No newline at end of file