Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2.0.0 #547

Merged
merged 111 commits into from
Aug 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
e462002
hotfix: 학과 쿼리 메서드 수정 (#284)
Sangwook02 Mar 8, 2024
aee7ca2
hotfix: spotless 적용 (#285)
Sangwook02 Mar 8, 2024
62f5ae7
chore: CI/CD 워크플로의 알림 채널을 디스코드에서 슬랙으로 이전 (#289)
uwoobeat Apr 11, 2024
9fd7012
test: 레포지토리 테스트 템플릿 구현 (#287)
Sangwook02 Apr 11, 2024
79a0bef
test: 온보딩 멤버 서비스 테스트 코드 (#294)
uwoobeat Apr 11, 2024
f49ba32
test: 가입조건에 따른 승인 가능 멤버 조회 테스트 (#297)
Sangwook02 Apr 15, 2024
f26d6d6
refactor: findNormalByOauthId 메서드를 쿼리 메서드로 대체 (#301)
Sangwook02 Apr 19, 2024
2e4af4d
refactor: 디스코드 리스너 및 핸들러 구조 개선 (#307)
uwoobeat Apr 20, 2024
4b70090
test: SQLRestriction에 대한 테스트 추가 (#302)
Sangwook02 Apr 20, 2024
46a3942
test: 멤버 도메인 단위 테스트 (#306)
AlmondBreez3 Apr 21, 2024
f59dce4
chore: setup-gradle 업그레이드 대응 (#309)
Sangwook02 Apr 21, 2024
d5438c5
chore: id를 빌드 단계로 이동 (#312)
Sangwook02 Apr 25, 2024
5657eeb
feat: 가입 승인 시 자동으로 디스코드 역할을 부여하도록 변경 (#315)
uwoobeat Apr 25, 2024
4f90397
test: MemberRole에 대한 멤버 레포지토리 테스트 (#314)
Sangwook02 Apr 27, 2024
5647700
test: 멤버 테스트 상수들을 상수 클래스로 분리 (#316)
Sangwook02 Apr 29, 2024
c0b28c4
feat: application 도메인 구현 (#322)
Sangwook02 May 1, 2024
90d86c4
feat: Recruitment 도메인 구현 (#329)
Sangwook02 May 10, 2024
6036891
feat: 멤버 엔티티에 디스코드 ID 추가 및 기존 멤버 Batch (#327)
Sangwook02 May 11, 2024
f3a76d3
feat: Recruitment의 VO Period 생성 (#337)
AlmondBreez3 May 13, 2024
f95b9ab
feat: 멤버십 가입 신청 API 구현 (#326)
Sangwook02 May 21, 2024
d5f7a60
refactor: 멤버 엔티티 승인 함수 준회원 승급으로 변경 (#340)
AlmondBreez3 Jun 3, 2024
fc59a78
feat: Recruitment 생성 API 구현 (#345)
Sangwook02 Jun 4, 2024
78ecf30
feat: 쿠폰 도메인 구현 (#356)
uwoobeat Jun 9, 2024
0b5522c
feat: 멤버 기본 회원 정보 조회 API 구현 (#353)
Sangwook02 Jun 10, 2024
5482906
refactor: 멤버십에 리쿠르팅을 외래키로 추가 (#361)
Sangwook02 Jun 10, 2024
d353702
feat: 온보딩 로그인 시 항상 대시보드로 랜딩하도록 변경 (#366)
uwoobeat Jun 10, 2024
49268cc
refactor : 멤버 도메인 준회원 승급 조건 추가 - 기본 정보 작성 (#349)
AlmondBreez3 Jun 11, 2024
b175360
refactor: 멤버 이벤트 트랜잭션 변경 (#373)
AlmondBreez3 Jun 12, 2024
a372bef
refactor: 기존 가입조건을 준회원 승급조건 및 정회원 승급조건 VO로 분리 (#375)
uwoobeat Jun 12, 2024
e715627
feat: 멤버 도메인의 1차 MVP 기능 제거 및 기존 로직 개선 (#380)
uwoobeat Jun 13, 2024
f7296b4
feat: 리쿠르팅에 회비와 차수 추가 (#383)
Sangwook02 Jun 14, 2024
c4e321b
feat: Recruitment 조회 API 구현 (#352)
Sangwook02 Jun 15, 2024
09acd95
feat: 디스코드 서버 합류 여부 조회 API 구현 (#368)
uwoobeat Jun 15, 2024
0f48091
test: 2차 MVP 정책에 대한 멤버 도메인 테스트 추가 (#386)
uwoobeat Jun 15, 2024
00a7292
feat: 상태별 회원 조회 목록 api 구현 (#371)
AlmondBreez3 Jun 15, 2024
69a8994
feat: 리쿠르팅 수정 API 구현 (#387)
Sangwook02 Jun 16, 2024
8ead2cb
feat: 기존 학교 이메일 인증 API 기능(동작 방식) 재구성 (#381)
seulgi99 Jun 17, 2024
891e544
feat: 정회원 시트 추가 (#394)
Sangwook02 Jun 18, 2024
553da0d
feat: Money VO에 대하여 `equals()` 가 동작하지 않는 문제 수정 (#396)
uwoobeat Jun 18, 2024
0f57f3b
refactor: 사용하지 않는 QueryDSL 로직 제거 (#395)
Sangwook02 Jun 19, 2024
ca38172
feat: 정회원 일괄 강등 API 구현 (#393)
Sangwook02 Jun 19, 2024
8a385c5
feat: 쿠폰 API 구현 (#397)
uwoobeat Jun 20, 2024
13e72b1
feat: 온보딩 대시보드 페이지 API 구현 (#399)
uwoobeat Jun 21, 2024
22cb667
refactor: 멤버 등급 정회원 승급 로직 (#388)
AlmondBreez3 Jun 22, 2024
458bc00
fix: PhoneFormatter의 null 처리 (#403)
Sangwook02 Jun 23, 2024
0d2e27b
rename: `VERIFIED`를 `SATISFIED`로 변경 (#401)
Sangwook02 Jun 24, 2024
4d8cf45
feat: 프록시 URL 추가 (#405)
Sangwook02 Jun 24, 2024
191e2e0
refactor: `this`를 필요한 경우에만 사용하도록 수정 (#406)
Sangwook02 Jun 24, 2024
e4a29f0
feat: 사용 가능한 내 발급쿠폰 조회하기 API 구현 (#408)
uwoobeat Jun 24, 2024
8e1f8e2
refactor: 대기중인 회원 조회 API 제거 (#411)
Sangwook02 Jun 25, 2024
67352ba
feat: 스터디 도메인 테이블 추가 (#412)
seulgi99 Jun 25, 2024
f847dda
test: 테스트 템플릿 위치 변경 (#414)
Sangwook02 Jun 26, 2024
f384c9e
refactor: 디스코드 유저네임 활용 로직을 id 활용으로 변경 (#413)
Sangwook02 Jun 26, 2024
6728e7b
refactor: 과제 엔티티 필드 이름 수정 (#416)
AlmondBreez3 Jun 26, 2024
4a8a6ee
refactor: 스터디 세션 엔티티 필드명 수정 (#419)
seulgi99 Jun 28, 2024
39b5dd8
feat: BaseTimeEntity에 생성자와 수정자 추가 (#420)
Sangwook02 Jun 28, 2024
94bc657
refactor: 스터디 세션 및 과제 상태 enum값 추가 (#422)
seulgi99 Jul 1, 2024
ba32c43
feat: 쿠폰 및 발급된 쿠폰 조회 API 기능 추가하기 (#427)
AlmondBreez3 Jul 3, 2024
07dfcef
feat: 임시 주문 생성 API 구현 (#430)
uwoobeat Jul 3, 2024
8af5c2d
feat: 도메인 서비스 및 도메인 팩토리 어노테이션 추가 (#433)
uwoobeat Jul 3, 2024
6dbd9f5
fix: 멤버 DTO 필드 추가 (#439)
AlmondBreez3 Jul 5, 2024
59b662b
refactor: 리쿠르팅 정규화 (#445)
Sangwook02 Jul 8, 2024
281963b
refactor: StudyHistory 엔티티 수정 (#451)
Sangwook02 Jul 8, 2024
4d7a4b0
fix: 진행중인 모집회차가 없을 경우 `CustomException` 발생하도록 수정 (#460)
Sangwook02 Jul 10, 2024
973e41a
feat: 모집회차 조회 API 추가 (#458)
Sangwook02 Jul 10, 2024
794bb85
feat: 토스페이먼츠 결제 API 연동 설정 (#466)
uwoobeat Jul 12, 2024
f20de72
refactor: 리쿠르팅 생성 API 수정 (#452)
Sangwook02 Jul 15, 2024
53e58ad
refactor: 멤버십 가입 신청 접수 API 수정 (#464)
Sangwook02 Jul 15, 2024
c3f8770
fix: 발급된 쿠폰 조회 오류 수정 (#456)
AlmondBreez3 Jul 15, 2024
7237fc9
fix: 모집회차 조회 응답에 차수 추가 (#468)
Sangwook02 Jul 16, 2024
03f6c14
feat: 쿠폰지급용 정회원+준회원 조회 API 추가 (#437)
seulgi99 Jul 16, 2024
030ca5d
feat: 과제 개설하기 API 스펙 구현 (#463)
AlmondBreez3 Jul 16, 2024
04db7e0
feat: 스터디 개설하기 API 추가 (#431)
seulgi99 Jul 16, 2024
912371c
feat: 모집회차 생성하기 API 추가 (#465)
Sangwook02 Jul 16, 2024
3c6419e
refactor: 리쿠르팅과 모집회차의 에러코드 분리 (#475)
Sangwook02 Jul 17, 2024
dea3dea
refactor: 모집회차 수정하기 API 수정 (#474)
Sangwook02 Jul 17, 2024
26e1d42
feat: 주문 완료하기 API 구현 (#472)
uwoobeat Jul 17, 2024
1260296
feat: 리쿠르팅에 회비 이름 추가 (#480)
Sangwook02 Jul 19, 2024
68f632e
feat: Feign ErrorDecoder 관련 예외처리 (#481)
uwoobeat Jul 19, 2024
f7b9efa
refactor: 디스코드 연동 로직에 도메인 서비스 적용 (#485)
Sangwook02 Jul 19, 2024
a243dc3
refactor: 메일 발송 요청 로직에 도메인 서비스 적용 (#488)
Sangwook02 Jul 19, 2024
c42e9e2
feat: 임시 토큰 발급 API 추가 (#487)
seulgi99 Jul 20, 2024
a8f3f5e
fix: 발급된 쿠폰 조회 오류 (#489)
AlmondBreez3 Jul 20, 2024
6252c03
refactor: Formatter 로직 수정 및 Deprecated 기능 제거 (#493)
uwoobeat Jul 21, 2024
cd8fffc
hotfix: 스웨거 CORS URL 등록 (#496)
seulgi99 Jul 22, 2024
3e1f4be
fix: QueryOption 패턴 제약 제거 (#501)
Sangwook02 Jul 23, 2024
fe69612
feat: 테스트용 회원 강등 API (#477)
AlmondBreez3 Jul 23, 2024
89c6977
feat: 주문 목록 조회하기 API 구현 (#497)
uwoobeat Jul 23, 2024
172eab1
test: 리쿠르팅 테스트 상수 이름 수정 (#505)
Sangwook02 Jul 23, 2024
f47c15e
refactor: QueryMethod를 인터페이스 기반으로 개선 (#499)
AlmondBreez3 Jul 23, 2024
63074db
feat: 주문 결제정보 조회하기 API 구현 (#508)
uwoobeat Jul 23, 2024
cfd737f
refactor: 디스코드 ID 배치시 역할 검증 로직을 도메인 서비스로 이동 (#507)
Sangwook02 Jul 23, 2024
e45ea44
refactor: 준회원으로 일괄 강등 로직에 도메인 서비스 적용 (#503)
Sangwook02 Jul 23, 2024
e3dbc25
feat: 주문 취소하기 API 구현 (#512)
uwoobeat Jul 24, 2024
3c0ee8f
feat: 도메인 이벤트 명시적 save호출 추가 (#514)
AlmondBreez3 Jul 25, 2024
b15079a
refactor: 검증 메서드 로직 단순화 (#517)
Sangwook02 Jul 26, 2024
7622747
feat: 무료 주문 생성하기 API 구현 (#520)
uwoobeat Jul 26, 2024
9916bdf
test: 템플릿에 역할별 멤버 생성 메서드 추가 (#515)
Sangwook02 Jul 26, 2024
23ce284
feat: 주문 목록 검색 시 승인일시를 일자 기준으로 수정 (#521)
AlmondBreez3 Jul 29, 2024
4661b5f
fix: PaymentFeignClient 설정 중복 제거 (#527)
seulgi99 Jul 30, 2024
d444dee
feat: 신청 가능한 스터디 조회 API 추가 (#523)
Sangwook02 Jul 30, 2024
7cb984b
fix: 주문 조회하기 쿼리 메서드 수정 (#529)
Sangwook02 Jul 30, 2024
c10d2e5
feat: 스터디 수강신청 API 추가 (#532)
Sangwook02 Jul 31, 2024
1c8d352
feat: 주문 완료 이벤트 핸들링 구현 및 후속 로직 개선 (#533)
uwoobeat Jul 31, 2024
2f5fc23
hotfix: ZonedDateTime 역직렬화 지원 의존성 추가 (#539)
uwoobeat Jul 31, 2024
0504152
hotfix: JavaTimeModule 세팅 (#540)
uwoobeat Jul 31, 2024
3a41c97
refactor: 인증시 학교 이메일 인증 메일 전송 여부 판단 로직 추가 (#513)
seulgi99 Jul 31, 2024
98241bc
feat: 스터디 수강신청 취소 API 추가 (#536)
Sangwook02 Jul 31, 2024
29c7004
hotfix: 학과 쿼리 메서드 수정 (#544)
Sangwook02 Aug 1, 2024
b86ec9c
fix: main 브랜치와의 conflict 해결 (#546)
Sangwook02 Aug 1, 2024
344a535
Merge branch 'main' into develop
Sangwook02 Aug 1, 2024
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
42 changes: 21 additions & 21 deletions .github/workflows/develop_build_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ name: Build and Deploy to Develop

on:
push:
branches: ["develop"]
branches:
- develop

permissions:
id-token: write
Expand Down Expand Up @@ -40,19 +41,19 @@ jobs:
run: docker-compose -f ./docker-compose-test.yaml up -d

# Gradle 빌드
- name: Build with Gradle
id: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
arguments: |
build
--configuration-cache
cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }} # feature 브랜치는 캐시를 읽기 전용으로 설정
cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}
add-job-summary-as-pr-comment: always
build-scan-publish: true
build-scan-terms-of-service-url: "https://gradle.com/terms-of-service"
build-scan-terms-of-service-agree: "yes"
build-scan-terms-of-use-url: "https://gradle.com/help/legal-terms-of-use"
build-scan-terms-of-use-agree: "yes"

- name: Build with Gradle
id: gradle
run: ./gradlew build --configuration-cache

# Dockerhub 로그인
- name: Login to Dockerhub
Expand Down Expand Up @@ -98,19 +99,6 @@ jobs:
- name: Copy docker-compose file to S3
run: aws s3 cp docker-compose.yml ${{ env.S3_COPY_PATH }}

# 디스코드 둘기봇으로 gradle build scan 결과 발송
- name: Send Gradle Build Scan Result to Discord
uses: Ilshidur/action-discord@master
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
DISCORD_EMBEDS: |
[
{
"title": "푸드덕푸드덕푸드덕",
"description": "구구구구국 구구...: ${{ steps.gradle.outputs.build-scan-url }}"
}
]

# EC2로 배포
- name: Deploy to EC2 Server
uses: appleboy/ssh-action@master
Expand All @@ -128,3 +116,15 @@ jobs:
docker pull ${{ env.IMAGE_FULL_URL }}
docker compose up -d
docker image prune -a -f

# Slack 알림
- name: Send Deploy Result to Slack
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_USERNAME: 둘기봇
SLACK_ICON: https://github.com/GDSC-Hongik/gdsc-server/assets/91878695/1d3861bd-672d-4ee7-8de4-f06c9a06f514
SLACK_TITLE: "Deploy Summary - Develop"
SLACK_MESSAGE: |
- image tag: `${{ steps.metadata.outputs.tags }}`
- build scan report: ${{ steps.gradle.outputs.build-scan-url }}
13 changes: 12 additions & 1 deletion .github/workflows/develop_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@ jobs:
deploy:
runs-on: ubuntu-latest
environment: develop
env:
IMAGE_FULL_URL: ${{ secrets.DOCKERHUB_USERNAME }}/gdsc-server:${{ github.event.inputs.commit_hash }}
steps:
- name: Deploy to EC2 Server
uses: appleboy/ssh-action@master
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
IMAGE_FULL_URL: ${{ secrets.DOCKERHUB_USERNAME }}/gdsc-server:${{ github.event.inputs.commit_hash }}
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
Expand All @@ -27,3 +28,13 @@ jobs:
docker pull ${{ env.IMAGE_FULL_URL }}
docker compose up -d
docker image prune -a -f

# Slack 알림
- name: Send Deploy Result to Slack
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_USERNAME: 둘기봇
SLACK_ICON: https://github.com/GDSC-Hongik/gdsc-server/assets/91878695/1d3861bd-672d-4ee7-8de4-f06c9a06f514
SLACK_TITLE: "Deploy Summary - Develop"
SLACK_MESSAGE: Manually deployed with `${{ env.IMAGE_FULL_URL }}`
39 changes: 19 additions & 20 deletions .github/workflows/production_build_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,19 @@ jobs:
run: docker-compose -f ./docker-compose-test.yaml up -d

# Gradle 빌드
- name: Build with Gradle
id: gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
arguments: |
build
--configuration-cache
cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }} # feature 브랜치는 캐시를 읽기 전용으로 설정
cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}
add-job-summary-as-pr-comment: always
build-scan-publish: true
build-scan-terms-of-service-url: "https://gradle.com/terms-of-service"
build-scan-terms-of-service-agree: "yes"
build-scan-terms-of-use-url: "https://gradle.com/help/legal-terms-of-use"
build-scan-terms-of-use-agree: "yes"

- name: Build with Gradle
id: gradle
run: ./gradlew build --configuration-cache

# Dockerhub 로그인
- name: Login to Dockerhub
Expand Down Expand Up @@ -114,19 +114,6 @@ jobs:
- name: Copy docker-compose file to S3
run: aws s3 cp docker-compose.yml ${{ env.S3_COPY_PATH }}

# 디스코드 둘기봇으로 gradle build scan 결과 발송
- name: Send Gradle Build Scan Result to Discord
uses: Ilshidur/action-discord@master
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
DISCORD_EMBEDS: |
[
{
"title": "푸드덕푸드덕푸드덕",
"description": "구구구구국 구구...: ${{ steps.gradle.outputs.build-scan-url }}"
}
]

- name: Deploy to EC2 Server
uses: appleboy/ssh-action@master
env:
Expand All @@ -143,3 +130,15 @@ jobs:
docker pull ${{ env.IMAGE_FULL_URL }}
docker-compose up -d
docker image prune -a -f

# Slack 알림
- name: Send Deploy Result to Slack
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_USERNAME: 둘기봇
SLACK_ICON: https://github.com/GDSC-Hongik/gdsc-server/assets/91878695/1d3861bd-672d-4ee7-8de4-f06c9a06f514
SLACK_TITLE: "Deploy Summary - Production"
SLACK_MESSAGE: |
- image tag: `${{ steps.metadata.outputs.tags }}`
- build scan report: ${{ steps.gradle.outputs.build-scan-url }}
13 changes: 12 additions & 1 deletion .github/workflows/production_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@ jobs:
deploy:
runs-on: ubuntu-latest
environment: production
env:
IMAGE_FULL_URL: ${{ secrets.DOCKERHUB_USERNAME }}/gdsc-server:${{ github.event.inputs.semver }}
steps:
- name: Deploy to EC2 Server
uses: appleboy/ssh-action@master
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
IMAGE_FULL_URL: ${{ secrets.DOCKERHUB_USERNAME }}/gdsc-server:${{ github.event.inputs.semver }}
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
Expand All @@ -27,3 +28,13 @@ jobs:
docker pull ${{ env.IMAGE_FULL_URL }}
docker-compose up -d
docker image prune -a -f

# Slack 알림
- name: Send Deploy Result to Slack
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_USERNAME: 둘기봇
SLACK_ICON: https://github.com/GDSC-Hongik/gdsc-server/assets/91878695/1d3861bd-672d-4ee7-8de4-f06c9a06f514
SLACK_TITLE: "Deploy Summary - Production"
SLACK_MESSAGE: Manually deployed with `${{ env.IMAGE_FULL_URL }}`
12 changes: 6 additions & 6 deletions .github/workflows/pull_request_gradle_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,16 @@ jobs:
- name: Start containers
run: docker-compose -f ./docker-compose-test.yaml up -d

- name: Build with Gradle
- name: Setup Gradle
id: gradle
uses: gradle/actions/setup-gradle@v3
with:
arguments: |
check
--configuration-cache
cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/develop' }} # feature 브랜치는 캐시를 읽기 전용으로 설정
cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}
add-job-summary-as-pr-comment: always
build-scan-publish: true
build-scan-terms-of-service-url: "https://gradle.com/terms-of-service"
build-scan-terms-of-service-agree: "yes"
build-scan-terms-of-use-url: "https://gradle.com/help/legal-terms-of-use"
build-scan-terms-of-use-agree: "yes"

- name: Check with Gradle
run: ./gradlew check --configuration-cache
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ bin/
out/
!**/src/main/**/out/
!**/src/test/**/out/
/src/main/generated/
/src/test/generated_tests/

### NetBeans ###
/nbproject/private/
Expand All @@ -41,3 +43,4 @@ out/

### Secrets ###
.env
.env.*
17 changes: 15 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ ext {
set('snippetsDir', file("build/generated-snippets"))
}

dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2023.0.2'
}
}


dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
Expand All @@ -53,10 +60,11 @@ dependencies {

// Redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
testImplementation 'org.testcontainers:testcontainers'

// Querydsl
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.1.0:jakarta'
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

Expand All @@ -80,6 +88,11 @@ dependencies {

// Monitoring
implementation 'io.micrometer:micrometer-registry-prometheus'

// OpenFeign
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'io.github.openfeign:feign-jackson'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
}

tasks.named('test') {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,29 @@
import jakarta.persistence.MappedSuperclass;
import java.time.LocalDateTime;
import lombok.Getter;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.domain.AbstractAggregateRoot;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {
public abstract class BaseEntity extends AbstractAggregateRoot<BaseEntity> {

@Column(updatable = false)
@CreatedDate
private LocalDateTime createdAt;

@Column
@LastModifiedDate
private LocalDateTime updatedAt;

@Column(updatable = false)
@CreatedBy
private Long createdBy;

@LastModifiedBy
private Long updatedBy;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.gdschongik.gdsc.domain.common.model;

import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.MappedSuperclass;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@MappedSuperclass
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public abstract class BaseSemesterEntity extends BaseEntity {

private Integer academicYear;

@Enumerated(EnumType.STRING)
private SemesterType semesterType;

protected void updateAcademicYear(Integer academicYear) {
this.academicYear = academicYear;
}

protected void updateSemesterType(SemesterType semesterType) {
this.semesterType = semesterType;
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.gdschongik.gdsc.domain.member.domain;
package com.gdschongik.gdsc.domain.common.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
Expand All @@ -7,7 +7,7 @@
@AllArgsConstructor
public enum RequirementStatus {
PENDING("PENDING"),
VERIFIED("VERIFIED");
SATISFIED("SATISFIED");

private final String value;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.gdschongik.gdsc.domain.common.model;

import java.time.MonthDay;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum SemesterType {
FIRST(1, MonthDay.of(3, 1)),
SECOND(2, MonthDay.of(9, 1));

private final Integer value;
private final MonthDay startDate;
}
Loading
Loading