diff --git a/.gitignore b/.gitignore
index 271c67a4..4275ec45 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,7 +39,4 @@ out/
/.nb-gradle/
### VS Code ###
-.vscode/
-
-### QueryDSL ###
-src/main/generated/
+.vscode/
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 14b3b484..08df474a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -33,6 +33,9 @@ dependencies {
// jpa
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+ // redis
+ implementation 'org.springframework.boot:spring-boot-starter-data-redis'
+
// security
implementation 'org.springframework.boot:spring-boot-starter-security'
@@ -89,25 +92,6 @@ dependencies {
implementation 'io.sentry:sentry-spring-boot-starter-jakarta:8.5.0'
}
-def generatedQueryDsl = 'src/main/generated'
-
-sourceSets {
- main.java.srcDirs += [generatedQueryDsl]
-}
-
-tasks.withType(JavaCompile).configureEach {
- options.getGeneratedSourceOutputDirectory().set(file(generatedQueryDsl))
-}
-
-clean.doLast {
- file(generatedQueryDsl).deleteDir()
-}
-
-tasks.named('test') {
- useJUnitPlatform()
-}
-
-
jib {
from {
image = 'openjdk:21'
@@ -120,4 +104,3 @@ jib {
creationTime = 'USE_CURRENT_TIMESTAMP'
}
}
-
diff --git a/docs/infra/aws-elasticache-redis-local-setup.md b/docs/infra/aws-elasticache-redis-local-setup.md
new file mode 100644
index 00000000..2c877759
--- /dev/null
+++ b/docs/infra/aws-elasticache-redis-local-setup.md
@@ -0,0 +1,122 @@
+# Redis 로컬 개발 환경 접속 가이드 (with AWS ElastiCache)
+
+> 본 문서는 **VPC 내 ElastiCache Redis**에 대해, 로컬 개발 환경에서도 운영 환경과 동일한 방식으로 접근할 수 있도록 포트 포워딩 기반 개발 흐름을 정리한 가이드입니다.
+> Bastion Host를 별도로 구성하지 않고, **기존 EC2 인스턴스를 SSM 포워딩 노드로 활용**합니다.
+
+---
+
+## ✅ 개요
+
+| 항목 | 내용 |
+|-------------|-------------------------------------------------------|
+| 대상 Redis | AWS ElastiCache for Redis (Private Subnet) |
+| 접근 방식 | AWS Systems Manager - `PortForwardingSession` 사용 |
+| 중계 노드 | 동일 VPC 내 EC2 인스턴스 (SSM Agent 연결 상태 필요) |
+
+---
+
+## 1. 요구 사항
+
+### 1.1 사전 조건
+
+- AWS CLI 설치 및 `configure` 완료
+- EC2 인스턴스에 **SSM Agent 설치 + IAM Role 연결**되어 있어야 함
+- Redis와 EC2는 동일 VPC/Subnet 내 존재
+- Redis 보안 그룹에 EC2 인스턴스 허용 설정
+
+---
+
+## 2. 설정 단계
+
+### 2.1 AWS CLI 인증 구성
+
+```bash
+aws configure --profile dev-redis
+```
+
+- Access Key, Secret, Region 입력
+- 사용 목적에 맞게 별도 프로파일 구성 권장
+
+---
+
+### 2.2 EC2 인스턴스를 통한 포트 포워딩
+
+1. EC2 인스턴스 ID 확인 (`i-xxxxxxxxxxxxxxxxx`)
+2. SSM 포트 포워딩 세션 실행:
+
+```bash
+aws ssm start-session \
+ --target i-xxxxxxxxxxxxxxxxx \
+ --document-name AWS-StartPortForwardingSession \
+ --parameters '{"portNumber":["6379"],"localPortNumber":["6379"]}' \
+ --profile dev-redis
+```
+
+> 이 세션이 유지되는 동안 `localhost:6379`는 EC2 내부 Redis 포트에 직접 연결된 것과 동일하게 동작합니다.
+
+---
+
+### 2.3 연결 확인
+
+```bash
+valkey-cli --tls -h localhost -p 6379 ping
+```
+
+정상적으로 `PONG` 응답이 오면 연결 성공입니다.
+
+---
+
+### 2.4 Spring Boot 환경 구성 예시
+
+```yaml
+spring:
+ data:
+ redis:
+ host: localhost
+ port: 6379
+ ssl:
+ enabled: true
+```
+
+- 운영/로컬 환경 모두 동일 구성 사용
+- 운영에서는 EC2 → Redis 직접 연결
+- 로컬에서는 포트포워딩 세션을 통해 동일 흐름 유지
+
+---
+
+## 3. Redis 연결 트러블슈팅
+
+### 3.1 systemd 기반 socat 포워딩 관리 (옵션)
+
+```bash
+sudo systemctl daemon-reexec
+sudo systemctl daemon-reload
+sudo systemctl enable socat-redis
+sudo systemctl start socat-redis
+sudo systemctl status socat-redis
+```
+
+- 서비스 로그 확인:
+
+```bash
+journalctl -u socat-redis
+```
+
+---
+
+## 4. 자주 발생하는 이슈
+
+| 증상 | 원인 및 해결 방안 |
+|----------------------------------|------------------------------------------------------------------------------------|
+| `Timeout` 또는 연결 안됨 | - SSM 세션이 종료되었거나
- Redis 보안 그룹에서 EC2 인바운드 허용 누락 |
+| 포워딩 명령어 실행 시 오류 발생 | - EC2에 SSM Agent 미설치
- IAM Role에 `ssm:StartSession` 권한 미설정
- AWS CLI 인증 오류 |
+| 데이터가 깨져 보임 | - Redis 클러스터 모드 사용 중
- Lettuce 클라이언트 설정을 클러스터 대응으로 변경 필요 |
+
+---
+
+## 📎 참고 자료
+
+- [AWS Blog - Port Forwarding with SSM to ElastiCache Redis](https://aws.amazon.com/blogs/mt/aws-systems-manager-session-manager-port-forwarding-to-amazon-elasticache-redis-inside-private-subnet/)
+- [PR #139](https://github.com/juulabel/juulabel-back/pull/141): 인증 전략 개선 및 Redis 기반 세션 관리 적용 상세 내역
+
+---
\ No newline at end of file
diff --git a/docs/pr/PR-139-refactor---auth-api.md b/docs/pr/PR-139-refactor---auth-api.md
new file mode 100644
index 00000000..1a45c560
--- /dev/null
+++ b/docs/pr/PR-139-refactor---auth-api.md
@@ -0,0 +1,96 @@
+# Auth API 리팩터링 및 인증 전략 고도화 (PR [#139](https://github.com/juulabel/juulabel-back/pull/141))
+
+## 📌 Summary
+
+이 PR은 인증 모듈을 보안 중심의 구조로 리디자인하고, 유지보수성 및 확장성을 고려한 API 명세 리팩터링을 포함합니다. 주요 목표는 다음과 같습니다:
+
+- 인증 API 도메인의 **명확한 경계 설정**
+- **Refresh Token Rotation** 전략 기반의 인증 안정성 확보
+- **서버 측 세션 관리**로 클라이언트 신뢰 수준 최소화
+- **비정상 로그인 탐지 기반 확장**을 고려한 로깅 구조 설계
+
+---
+
+## 1. 구조 리팩터링: 인증 도메인 책임 분리
+
+기존 API는 `/members` 하위에 인증과 사용자 관리 로직이 혼재되어 있어, 도메인 분리에 따른 유지보수 비용이 컸습니다. 다음과 같이 명확히 분리합니다:
+
+| 기존 경로 | 신규 경로 | 목적 |
+| ------------------------- | ---------------------- | ---------------------------- |
+| `/v1/api/members/login` | `/v1/api/auth/login` | 인증 도메인 분리 |
+| `/v1/api/members/sign-up` | `/v1/api/auth/sign-up` | |
+| `/v1/api/members/me` | `/v1/api/auth/me` | |
+| _(신규)_ | `/v1/api/auth/refresh` | Refresh Token 재발급 |
+| _(신규)_ | `/v1/api/auth/logout` | 서버 측 로그아웃 (세션 종료) |
+
+💡 **Outcome:** 인증 흐름과 사용자 정보 흐름의 경계가 명확해져 API 소비자 및 테스트 범위가 선명해집니다.
+
+---
+
+## 2. Refresh Token 기반 인증 및 Rotation 전략
+
+### Why Rotation?
+
+토큰 도난 시, 고정 Refresh Token 구조는 **세션 탈취 리스크**를 증가시킵니다. 이에 따라 Rotation 전략을 적용합니다.
+
+### 동작 방식
+
+- Access Token 만료 시 `/auth/refresh` 호출 → 새 Access + Refresh Token 응답
+- 이전 Refresh Token은 **즉시 폐기** 및 Redis 블랙리스트 등록
+- 동일 토큰 재사용 시 → 인증 실패 (401)
+
+💡 **보안 장점:** 사용된 토큰은 재사용 불가 → 리플레이 공격 방지 강화
+
+---
+
+## 3. 비정상 로그인 탐지 기반 확장 고려
+
+### 수집 항목
+
+- `Device-Id` (필수 헤더)
+- User-Agent, IP (서버 로그 자동 수집)
+
+이 정보는 향후 다음 기능에 활용됩니다:
+
+- 동일 계정 다중 위치/디바이스 로그인 탐지
+- 의심 활동에 대한 보안 알림 트리거
+- 로그인 히스토리 시각화
+
+💡 **시사점:** 인증은 단일 절차가 아닌 보안 트래픽의 출발점이며, 메타데이터 수집이 이후 기능 확장의 기반이 됩니다.
+
+---
+
+## 4. 로그아웃: 서버 중심 세션 종료 방식으로 전환
+
+기존 구조는 클라이언트 측에서 Access Token 제거만으로 로그아웃 처리하였습니다.
+새로운 구조에서는 명시적 로그아웃 API 호출로 다음 동작 수행:
+
+- Redis에 등록된 Refresh Token을 블랙리스트화
+- 이후 해당 토큰 사용 시 인증 실패
+
+💡 **효과:** 토큰 재사용 방지 → 클라이언트 신뢰도 최소화
+
+---
+
+## 5. Redis 기반 토큰 관리 및 인프라 구성
+
+| 항목 | 내용 |
+| ----------- | ---------------------------------------------------- |
+| 저장소 구성 | AWS ElastiCache (Valkey) |
+| 접근 방식 | VPC 내부 `socat + SSM 포트포워딩` 기반 접속 |
+| 라이브러리 | `spring-data-redis (lettuce)` |
+| 관리 전략 | TTL 기반 자동 만료 + Lua Script 기반 블랙리스트 삽입 |
+
+💡 **운영 이점:** Redis는 고성능 키-밸류 스토어로써 세션 상태 관리에 적합하며, Lua Script로 atomic 블랙리스트 처리 가능
+
+---
+
+## 6. 적용 시 유의사항
+
+| 항목 | 설명 |
+| -------------------------------------------- | --------------------------------------------------------- |
+| `Device-Id` 누락 시 400 반환 | 모든 인증 요청 시 필수 포함 필요 |
+| `/auth/logout` 미호출 시 Refresh 무효화 누락 | 클라이언트에서만 로그아웃 처리 시 토큰은 유효 상태 유지됨 |
+| `/members/*` 인증 경로 사용 중단 | 호출 시 404 응답 발생 가능성 있음. 즉시 경로 전환 필요 |
+
+---
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholType.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholType.java
deleted file mode 100644
index 282d8036..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholType.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QAlcoholType is a Querydsl query type for AlcoholType
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QAlcoholType extends EntityPathBase {
-
- private static final long serialVersionUID = -1838556943L;
-
- public static final QAlcoholType alcoholType = new QAlcoholType("alcoholType");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath image = createString("image");
-
- public final StringPath name = createString("name");
-
- public final ListPath tastingNotes = this.createList("tastingNotes", com.juu.juulabel.tastingnote.domain.TastingNote.class, com.juu.juulabel.tastingnote.domain.QTastingNote.class, PathInits.DIRECT2);
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QAlcoholType(String variable) {
- super(AlcoholType.class, forVariable(variable));
- }
-
- public QAlcoholType(Path extends AlcoholType> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QAlcoholType(PathMetadata metadata) {
- super(AlcoholType.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeColor.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeColor.java
deleted file mode 100644
index 3a63c2de..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeColor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QAlcoholTypeColor is a Querydsl query type for AlcoholTypeColor
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QAlcoholTypeColor extends EntityPathBase {
-
- private static final long serialVersionUID = -1121889038L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QAlcoholTypeColor alcoholTypeColor = new QAlcoholTypeColor("alcoholTypeColor");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final QAlcoholType alcoholType;
-
- public final QColor color;
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isUsed = createBoolean("isUsed");
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QAlcoholTypeColor(String variable) {
- this(AlcoholTypeColor.class, forVariable(variable), INITS);
- }
-
- public QAlcoholTypeColor(Path extends AlcoholTypeColor> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QAlcoholTypeColor(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QAlcoholTypeColor(PathMetadata metadata, PathInits inits) {
- this(AlcoholTypeColor.class, metadata, inits);
- }
-
- public QAlcoholTypeColor(Class extends AlcoholTypeColor> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholType = inits.isInitialized("alcoholType") ? new QAlcoholType(forProperty("alcoholType")) : null;
- this.color = inits.isInitialized("color") ? new QColor(forProperty("color")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeFlavor.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeFlavor.java
deleted file mode 100644
index 8f937cc3..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeFlavor.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QAlcoholTypeFlavor is a Querydsl query type for AlcoholTypeFlavor
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QAlcoholTypeFlavor extends EntityPathBase {
-
- private static final long serialVersionUID = -336025873L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QAlcoholTypeFlavor alcoholTypeFlavor = new QAlcoholTypeFlavor("alcoholTypeFlavor");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final QAlcoholType alcoholType;
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final QFlavor flavor;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isUsed = createBoolean("isUsed");
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QAlcoholTypeFlavor(String variable) {
- this(AlcoholTypeFlavor.class, forVariable(variable), INITS);
- }
-
- public QAlcoholTypeFlavor(Path extends AlcoholTypeFlavor> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QAlcoholTypeFlavor(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QAlcoholTypeFlavor(PathMetadata metadata, PathInits inits) {
- this(AlcoholTypeFlavor.class, metadata, inits);
- }
-
- public QAlcoholTypeFlavor(Class extends AlcoholTypeFlavor> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholType = inits.isInitialized("alcoholType") ? new QAlcoholType(forProperty("alcoholType")) : null;
- this.flavor = inits.isInitialized("flavor") ? new QFlavor(forProperty("flavor")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeScent.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeScent.java
deleted file mode 100644
index bf18c0a3..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeScent.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QAlcoholTypeScent is a Querydsl query type for AlcoholTypeScent
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QAlcoholTypeScent extends EntityPathBase {
-
- private static final long serialVersionUID = -1107476950L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QAlcoholTypeScent alcoholTypeScent = new QAlcoholTypeScent("alcoholTypeScent");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final QAlcoholType alcoholType;
-
- public final com.juu.juulabel.category.domain.QCategory category;
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isUsed = createBoolean("isUsed");
-
- public final QScent scent;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QAlcoholTypeScent(String variable) {
- this(AlcoholTypeScent.class, forVariable(variable), INITS);
- }
-
- public QAlcoholTypeScent(Path extends AlcoholTypeScent> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QAlcoholTypeScent(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QAlcoholTypeScent(PathMetadata metadata, PathInits inits) {
- this(AlcoholTypeScent.class, metadata, inits);
- }
-
- public QAlcoholTypeScent(Class extends AlcoholTypeScent> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholType = inits.isInitialized("alcoholType") ? new QAlcoholType(forProperty("alcoholType")) : null;
- this.category = inits.isInitialized("category") ? new com.juu.juulabel.category.domain.QCategory(forProperty("category"), inits.get("category")) : null;
- this.scent = inits.isInitialized("scent") ? new QScent(forProperty("scent")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeSensory.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeSensory.java
deleted file mode 100644
index 1fb621c5..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholTypeSensory.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QAlcoholTypeSensory is a Querydsl query type for AlcoholTypeSensory
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QAlcoholTypeSensory extends EntityPathBase {
-
- private static final long serialVersionUID = 932258254L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QAlcoholTypeSensory alcoholTypeSensory = new QAlcoholTypeSensory("alcoholTypeSensory");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final QAlcoholType alcoholType;
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isUsed = createBoolean("isUsed");
-
- public final QSensory sensory;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QAlcoholTypeSensory(String variable) {
- this(AlcoholTypeSensory.class, forVariable(variable), INITS);
- }
-
- public QAlcoholTypeSensory(Path extends AlcoholTypeSensory> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QAlcoholTypeSensory(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QAlcoholTypeSensory(PathMetadata metadata, PathInits inits) {
- this(AlcoholTypeSensory.class, metadata, inits);
- }
-
- public QAlcoholTypeSensory(Class extends AlcoholTypeSensory> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholType = inits.isInitialized("alcoholType") ? new QAlcoholType(forProperty("alcoholType")) : null;
- this.sensory = inits.isInitialized("sensory") ? new QSensory(forProperty("sensory")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinks.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinks.java
deleted file mode 100644
index 9fb03969..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinks.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QAlcoholicDrinks is a Querydsl query type for AlcoholicDrinks
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QAlcoholicDrinks extends EntityPathBase {
-
- private static final long serialVersionUID = -695932244L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QAlcoholicDrinks alcoholicDrinks = new QAlcoholicDrinks("alcoholicDrinks");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final NumberPath alcoholContent = createNumber("alcoholContent", Double.class);
-
- public final QAlcoholType alcoholType;
-
- public final QBrewery brewery;
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final StringPath description = createString("description");
-
- public final NumberPath discountPrice = createNumber("discountPrice", Integer.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath image = createString("image");
-
- public final StringPath name = createString("name");
-
- public final NumberPath rating = createNumber("rating", Double.class);
-
- public final NumberPath regularPrice = createNumber("regularPrice", Integer.class);
-
- public final NumberPath tastingNoteCount = createNumber("tastingNoteCount", Integer.class);
-
- public final ListPath tastingNotes = this.createList("tastingNotes", com.juu.juulabel.tastingnote.domain.TastingNote.class, com.juu.juulabel.tastingnote.domain.QTastingNote.class, PathInits.DIRECT2);
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public final NumberPath volume = createNumber("volume", Integer.class);
-
- public QAlcoholicDrinks(String variable) {
- this(AlcoholicDrinks.class, forVariable(variable), INITS);
- }
-
- public QAlcoholicDrinks(Path extends AlcoholicDrinks> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QAlcoholicDrinks(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QAlcoholicDrinks(PathMetadata metadata, PathInits inits) {
- this(AlcoholicDrinks.class, metadata, inits);
- }
-
- public QAlcoholicDrinks(Class extends AlcoholicDrinks> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholType = inits.isInitialized("alcoholType") ? new QAlcoholType(forProperty("alcoholType")) : null;
- this.brewery = inits.isInitialized("brewery") ? new QBrewery(forProperty("brewery")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinksIngredient.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinksIngredient.java
deleted file mode 100644
index aa82b6f3..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinksIngredient.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QAlcoholicDrinksIngredient is a Querydsl query type for AlcoholicDrinksIngredient
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QAlcoholicDrinksIngredient extends EntityPathBase {
-
- private static final long serialVersionUID = 18141597L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QAlcoholicDrinksIngredient alcoholicDrinksIngredient = new QAlcoholicDrinksIngredient("alcoholicDrinksIngredient");
-
- public final QAlcoholicDrinks alcoholicDrinks;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final QIngredient ingredient;
-
- public QAlcoholicDrinksIngredient(String variable) {
- this(AlcoholicDrinksIngredient.class, forVariable(variable), INITS);
- }
-
- public QAlcoholicDrinksIngredient(Path extends AlcoholicDrinksIngredient> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QAlcoholicDrinksIngredient(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QAlcoholicDrinksIngredient(PathMetadata metadata, PathInits inits) {
- this(AlcoholicDrinksIngredient.class, metadata, inits);
- }
-
- public QAlcoholicDrinksIngredient(Class extends AlcoholicDrinksIngredient> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholicDrinks = inits.isInitialized("alcoholicDrinks") ? new QAlcoholicDrinks(forProperty("alcoholicDrinks"), inits.get("alcoholicDrinks")) : null;
- this.ingredient = inits.isInitialized("ingredient") ? new QIngredient(forProperty("ingredient")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinksPairing.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinksPairing.java
deleted file mode 100644
index ebd4ef89..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QAlcoholicDrinksPairing.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QAlcoholicDrinksPairing is a Querydsl query type for AlcoholicDrinksPairing
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QAlcoholicDrinksPairing extends EntityPathBase {
-
- private static final long serialVersionUID = 1589617276L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QAlcoholicDrinksPairing alcoholicDrinksPairing = new QAlcoholicDrinksPairing("alcoholicDrinksPairing");
-
- public final QAlcoholicDrinks alcoholicDrinks;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final QPairing pairing;
-
- public QAlcoholicDrinksPairing(String variable) {
- this(AlcoholicDrinksPairing.class, forVariable(variable), INITS);
- }
-
- public QAlcoholicDrinksPairing(Path extends AlcoholicDrinksPairing> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QAlcoholicDrinksPairing(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QAlcoholicDrinksPairing(PathMetadata metadata, PathInits inits) {
- this(AlcoholicDrinksPairing.class, metadata, inits);
- }
-
- public QAlcoholicDrinksPairing(Class extends AlcoholicDrinksPairing> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholicDrinks = inits.isInitialized("alcoholicDrinks") ? new QAlcoholicDrinks(forProperty("alcoholicDrinks"), inits.get("alcoholicDrinks")) : null;
- this.pairing = inits.isInitialized("pairing") ? new QPairing(forProperty("pairing")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QBrewery.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QBrewery.java
deleted file mode 100644
index c019ef47..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QBrewery.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QBrewery is a Querydsl query type for Brewery
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QBrewery extends EntityPathBase {
-
- private static final long serialVersionUID = -570077389L;
-
- public static final QBrewery brewery = new QBrewery("brewery");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath message = createString("message");
-
- public final StringPath name = createString("name");
-
- public final StringPath region = createString("region");
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QBrewery(String variable) {
- super(Brewery.class, forVariable(variable));
- }
-
- public QBrewery(Path extends Brewery> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QBrewery(PathMetadata metadata) {
- super(Brewery.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QColor.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QColor.java
deleted file mode 100644
index 4af4be86..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QColor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QColor is a Querydsl query type for Color
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QColor extends EntityPathBase {
-
- private static final long serialVersionUID = 2047172524L;
-
- public static final QColor color = new QColor("color");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath name = createString("name");
-
- public final StringPath rgb = createString("rgb");
-
- public QColor(String variable) {
- super(Color.class, forVariable(variable));
- }
-
- public QColor(Path extends Color> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QColor(PathMetadata metadata) {
- super(Color.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QFlavor.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QFlavor.java
deleted file mode 100644
index 32170085..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QFlavor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QFlavor is a Querydsl query type for Flavor
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QFlavor extends EntityPathBase {
-
- private static final long serialVersionUID = -879365259L;
-
- public static final QFlavor flavor = new QFlavor("flavor");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath name = createString("name");
-
- public QFlavor(String variable) {
- super(Flavor.class, forVariable(variable));
- }
-
- public QFlavor(Path extends Flavor> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QFlavor(PathMetadata metadata) {
- super(Flavor.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QFlavorLevel.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QFlavorLevel.java
deleted file mode 100644
index 323b9c1b..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QFlavorLevel.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QFlavorLevel is a Querydsl query type for FlavorLevel
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QFlavorLevel extends EntityPathBase {
-
- private static final long serialVersionUID = -1624270577L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QFlavorLevel flavorLevel = new QFlavorLevel("flavorLevel");
-
- public final StringPath description = createString("description");
-
- public final QFlavor flavor;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final NumberPath score = createNumber("score", Integer.class);
-
- public QFlavorLevel(String variable) {
- this(FlavorLevel.class, forVariable(variable), INITS);
- }
-
- public QFlavorLevel(Path extends FlavorLevel> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QFlavorLevel(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QFlavorLevel(PathMetadata metadata, PathInits inits) {
- this(FlavorLevel.class, metadata, inits);
- }
-
- public QFlavorLevel(Class extends FlavorLevel> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.flavor = inits.isInitialized("flavor") ? new QFlavor(forProperty("flavor")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QIngredient.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QIngredient.java
deleted file mode 100644
index fac512c0..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QIngredient.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QIngredient is a Querydsl query type for Ingredient
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QIngredient extends EntityPathBase {
-
- private static final long serialVersionUID = -280754392L;
-
- public static final QIngredient ingredient = new QIngredient("ingredient");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath name = createString("name");
-
- public QIngredient(String variable) {
- super(Ingredient.class, forVariable(variable));
- }
-
- public QIngredient(Path extends Ingredient> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QIngredient(PathMetadata metadata) {
- super(Ingredient.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QPairing.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QPairing.java
deleted file mode 100644
index 2e8851db..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QPairing.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QPairing is a Querydsl query type for Pairing
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QPairing extends EntityPathBase {
-
- private static final long serialVersionUID = -1513074479L;
-
- public static final QPairing pairing = new QPairing("pairing");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath name = createString("name");
-
- public QPairing(String variable) {
- super(Pairing.class, forVariable(variable));
- }
-
- public QPairing(Path extends Pairing> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QPairing(PathMetadata metadata) {
- super(Pairing.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QScent.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QScent.java
deleted file mode 100644
index bdfeb3be..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QScent.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QScent is a Querydsl query type for Scent
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QScent extends EntityPathBase {
-
- private static final long serialVersionUID = 2061584612L;
-
- public static final QScent scent = new QScent("scent");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath name = createString("name");
-
- public QScent(String variable) {
- super(Scent.class, forVariable(variable));
- }
-
- public QScent(Path extends Scent> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QScent(PathMetadata metadata) {
- super(Scent.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QSensory.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QSensory.java
deleted file mode 100644
index 6f31b88e..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QSensory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QSensory is a Querydsl query type for Sensory
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QSensory extends EntityPathBase {
-
- private static final long serialVersionUID = 1268606472L;
-
- public static final QSensory sensory = new QSensory("sensory");
-
- public final StringPath description = createString("description");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath name = createString("name");
-
- public QSensory(String variable) {
- super(Sensory.class, forVariable(variable));
- }
-
- public QSensory(Path extends Sensory> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QSensory(PathMetadata metadata) {
- super(Sensory.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/alcohol/domain/QSensoryLevel.java b/src/main/generated/com/juu/juulabel/alcohol/domain/QSensoryLevel.java
deleted file mode 100644
index d5869b82..00000000
--- a/src/main/generated/com/juu/juulabel/alcohol/domain/QSensoryLevel.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.juu.juulabel.alcohol.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QSensoryLevel is a Querydsl query type for SensoryLevel
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QSensoryLevel extends EntityPathBase {
-
- private static final long serialVersionUID = -1898460580L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QSensoryLevel sensoryLevel = new QSensoryLevel("sensoryLevel");
-
- public final StringPath description = createString("description");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final NumberPath score = createNumber("score", Integer.class);
-
- public final QSensory sensory;
-
- public QSensoryLevel(String variable) {
- this(SensoryLevel.class, forVariable(variable), INITS);
- }
-
- public QSensoryLevel(Path extends SensoryLevel> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QSensoryLevel(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QSensoryLevel(PathMetadata metadata, PathInits inits) {
- this(SensoryLevel.class, metadata, inits);
- }
-
- public QSensoryLevel(Class extends SensoryLevel> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.sensory = inits.isInitialized("sensory") ? new QSensory(forProperty("sensory")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/category/domain/QCategory.java b/src/main/generated/com/juu/juulabel/category/domain/QCategory.java
deleted file mode 100644
index 348abe78..00000000
--- a/src/main/generated/com/juu/juulabel/category/domain/QCategory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.juu.juulabel.category.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QCategory is a Querydsl query type for Category
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QCategory extends EntityPathBase {
-
- private static final long serialVersionUID = -321007669L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QCategory category = new QCategory("category");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final ListPath children = this.createList("children", Category.class, QCategory.class, PathInits.DIRECT2);
-
- public final StringPath code = createString("code");
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isUsed = createBoolean("isUsed");
-
- public final StringPath name = createString("name");
-
- public final QCategory parent;
-
- public final EnumPath type = createEnum("type", CategoryType.class);
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QCategory(String variable) {
- this(Category.class, forVariable(variable), INITS);
- }
-
- public QCategory(Path extends Category> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QCategory(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QCategory(PathMetadata metadata, PathInits inits) {
- this(Category.class, metadata, inits);
- }
-
- public QCategory(Class extends Category> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.parent = inits.isInitialized("parent") ? new QCategory(forProperty("parent"), inits.get("parent")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/common/base/QBaseCreatedTimeEntity.java b/src/main/generated/com/juu/juulabel/common/base/QBaseCreatedTimeEntity.java
deleted file mode 100644
index 24e59f44..00000000
--- a/src/main/generated/com/juu/juulabel/common/base/QBaseCreatedTimeEntity.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.juu.juulabel.common.base;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QBaseCreatedTimeEntity is a Querydsl query type for BaseCreatedTimeEntity
- */
-@Generated("com.querydsl.codegen.DefaultSupertypeSerializer")
-public class QBaseCreatedTimeEntity extends EntityPathBase {
-
- private static final long serialVersionUID = -1233772198L;
-
- public static final QBaseCreatedTimeEntity baseCreatedTimeEntity = new QBaseCreatedTimeEntity("baseCreatedTimeEntity");
-
- public final DateTimePath createdAt = createDateTime("createdAt", java.time.LocalDateTime.class);
-
- public QBaseCreatedTimeEntity(String variable) {
- super(BaseCreatedTimeEntity.class, forVariable(variable));
- }
-
- public QBaseCreatedTimeEntity(Path extends BaseCreatedTimeEntity> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QBaseCreatedTimeEntity(PathMetadata metadata) {
- super(BaseCreatedTimeEntity.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/common/base/QBaseTimeEntity.java b/src/main/generated/com/juu/juulabel/common/base/QBaseTimeEntity.java
deleted file mode 100644
index acf26e86..00000000
--- a/src/main/generated/com/juu/juulabel/common/base/QBaseTimeEntity.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.juu.juulabel.common.base;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QBaseTimeEntity is a Querydsl query type for BaseTimeEntity
- */
-@Generated("com.querydsl.codegen.DefaultSupertypeSerializer")
-public class QBaseTimeEntity extends EntityPathBase {
-
- private static final long serialVersionUID = 282798094L;
-
- public static final QBaseTimeEntity baseTimeEntity = new QBaseTimeEntity("baseTimeEntity");
-
- public final DateTimePath createdAt = createDateTime("createdAt", java.time.LocalDateTime.class);
-
- public final DateTimePath updatedAt = createDateTime("updatedAt", java.time.LocalDateTime.class);
-
- public QBaseTimeEntity(String variable) {
- super(BaseTimeEntity.class, forVariable(variable));
- }
-
- public QBaseTimeEntity(Path extends BaseTimeEntity> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QBaseTimeEntity(PathMetadata metadata) {
- super(BaseTimeEntity.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLife.java b/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLife.java
deleted file mode 100644
index d1d41961..00000000
--- a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLife.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.juu.juulabel.dailylife.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QDailyLife is a Querydsl query type for DailyLife
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QDailyLife extends EntityPathBase {
-
- private static final long serialVersionUID = 153685271L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QDailyLife dailyLife = new QDailyLife("dailyLife");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final StringPath content = createString("content");
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isPrivate = createBoolean("isPrivate");
-
- public final com.juu.juulabel.member.domain.QMember member;
-
- public final StringPath title = createString("title");
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QDailyLife(String variable) {
- this(DailyLife.class, forVariable(variable), INITS);
- }
-
- public QDailyLife(Path extends DailyLife> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QDailyLife(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QDailyLife(PathMetadata metadata, PathInits inits) {
- this(DailyLife.class, metadata, inits);
- }
-
- public QDailyLife(Class extends DailyLife> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.member = inits.isInitialized("member") ? new com.juu.juulabel.member.domain.QMember(forProperty("member")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeComment.java b/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeComment.java
deleted file mode 100644
index 37b0cb45..00000000
--- a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeComment.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.juu.juulabel.dailylife.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QDailyLifeComment is a Querydsl query type for DailyLifeComment
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QDailyLifeComment extends EntityPathBase {
-
- private static final long serialVersionUID = 1729618248L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QDailyLifeComment dailyLifeComment = new QDailyLifeComment("dailyLifeComment");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final StringPath content = createString("content");
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final QDailyLife dailyLife;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final com.juu.juulabel.member.domain.QMember member;
-
- public final QDailyLifeComment parent;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QDailyLifeComment(String variable) {
- this(DailyLifeComment.class, forVariable(variable), INITS);
- }
-
- public QDailyLifeComment(Path extends DailyLifeComment> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QDailyLifeComment(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QDailyLifeComment(PathMetadata metadata, PathInits inits) {
- this(DailyLifeComment.class, metadata, inits);
- }
-
- public QDailyLifeComment(Class extends DailyLifeComment> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.dailyLife = inits.isInitialized("dailyLife") ? new QDailyLife(forProperty("dailyLife"), inits.get("dailyLife")) : null;
- this.member = inits.isInitialized("member") ? new com.juu.juulabel.member.domain.QMember(forProperty("member")) : null;
- this.parent = inits.isInitialized("parent") ? new QDailyLifeComment(forProperty("parent"), inits.get("parent")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeCommentLike.java b/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeCommentLike.java
deleted file mode 100644
index 07fa1453..00000000
--- a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeCommentLike.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.juu.juulabel.dailylife.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QDailyLifeCommentLike is a Querydsl query type for DailyLifeCommentLike
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QDailyLifeCommentLike extends EntityPathBase {
-
- private static final long serialVersionUID = 1784291583L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QDailyLifeCommentLike dailyLifeCommentLike = new QDailyLifeCommentLike("dailyLifeCommentLike");
-
- public final com.juu.juulabel.common.base.QBaseCreatedTimeEntity _super = new com.juu.juulabel.common.base.QBaseCreatedTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final QDailyLifeComment dailyLifeComment;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final com.juu.juulabel.member.domain.QMember member;
-
- public QDailyLifeCommentLike(String variable) {
- this(DailyLifeCommentLike.class, forVariable(variable), INITS);
- }
-
- public QDailyLifeCommentLike(Path extends DailyLifeCommentLike> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QDailyLifeCommentLike(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QDailyLifeCommentLike(PathMetadata metadata, PathInits inits) {
- this(DailyLifeCommentLike.class, metadata, inits);
- }
-
- public QDailyLifeCommentLike(Class extends DailyLifeCommentLike> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.dailyLifeComment = inits.isInitialized("dailyLifeComment") ? new QDailyLifeComment(forProperty("dailyLifeComment"), inits.get("dailyLifeComment")) : null;
- this.member = inits.isInitialized("member") ? new com.juu.juulabel.member.domain.QMember(forProperty("member")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeImage.java b/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeImage.java
deleted file mode 100644
index 384dfacf..00000000
--- a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeImage.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.juu.juulabel.dailylife.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QDailyLifeImage is a Querydsl query type for DailyLifeImage
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QDailyLifeImage extends EntityPathBase {
-
- private static final long serialVersionUID = -1561443708L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QDailyLifeImage dailyLifeImage = new QDailyLifeImage("dailyLifeImage");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final QDailyLife dailyLife;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath imagePath = createString("imagePath");
-
- public final NumberPath seq = createNumber("seq", Integer.class);
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QDailyLifeImage(String variable) {
- this(DailyLifeImage.class, forVariable(variable), INITS);
- }
-
- public QDailyLifeImage(Path extends DailyLifeImage> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QDailyLifeImage(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QDailyLifeImage(PathMetadata metadata, PathInits inits) {
- this(DailyLifeImage.class, metadata, inits);
- }
-
- public QDailyLifeImage(Class extends DailyLifeImage> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.dailyLife = inits.isInitialized("dailyLife") ? new QDailyLife(forProperty("dailyLife"), inits.get("dailyLife")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeLike.java b/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeLike.java
deleted file mode 100644
index bd03a5b0..00000000
--- a/src/main/generated/com/juu/juulabel/dailylife/domain/QDailyLifeLike.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.juu.juulabel.dailylife.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QDailyLifeLike is a Querydsl query type for DailyLifeLike
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QDailyLifeLike extends EntityPathBase {
-
- private static final long serialVersionUID = 88264014L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QDailyLifeLike dailyLifeLike = new QDailyLifeLike("dailyLifeLike");
-
- public final com.juu.juulabel.common.base.QBaseCreatedTimeEntity _super = new com.juu.juulabel.common.base.QBaseCreatedTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final QDailyLife dailyLife;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final com.juu.juulabel.member.domain.QMember member;
-
- public QDailyLifeLike(String variable) {
- this(DailyLifeLike.class, forVariable(variable), INITS);
- }
-
- public QDailyLifeLike(Path extends DailyLifeLike> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QDailyLifeLike(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QDailyLifeLike(PathMetadata metadata, PathInits inits) {
- this(DailyLifeLike.class, metadata, inits);
- }
-
- public QDailyLifeLike(Class extends DailyLifeLike> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.dailyLife = inits.isInitialized("dailyLife") ? new QDailyLife(forProperty("dailyLife"), inits.get("dailyLife")) : null;
- this.member = inits.isInitialized("member") ? new com.juu.juulabel.member.domain.QMember(forProperty("member")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/follow/domain/QFollow.java b/src/main/generated/com/juu/juulabel/follow/domain/QFollow.java
deleted file mode 100644
index 74b41dc6..00000000
--- a/src/main/generated/com/juu/juulabel/follow/domain/QFollow.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.juu.juulabel.follow.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QFollow is a Querydsl query type for Follow
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QFollow extends EntityPathBase {
-
- private static final long serialVersionUID = 1222043633L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QFollow follow = new QFollow("follow");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath followedAt = createDateTime("followedAt", java.time.LocalDateTime.class);
-
- public final com.juu.juulabel.member.domain.QMember followee;
-
- public final com.juu.juulabel.member.domain.QMember follower;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QFollow(String variable) {
- this(Follow.class, forVariable(variable), INITS);
- }
-
- public QFollow(Path extends Follow> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QFollow(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QFollow(PathMetadata metadata, PathInits inits) {
- this(Follow.class, metadata, inits);
- }
-
- public QFollow(Class extends Follow> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.followee = inits.isInitialized("followee") ? new com.juu.juulabel.member.domain.QMember(forProperty("followee")) : null;
- this.follower = inits.isInitialized("follower") ? new com.juu.juulabel.member.domain.QMember(forProperty("follower")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/member/domain/QMember.java b/src/main/generated/com/juu/juulabel/member/domain/QMember.java
deleted file mode 100644
index b81b2a59..00000000
--- a/src/main/generated/com/juu/juulabel/member/domain/QMember.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.juu.juulabel.member.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QMember is a Querydsl query type for Member
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QMember extends EntityPathBase {
-
- private static final long serialVersionUID = -1376470525L;
-
- public static final QMember member = new QMember("member1");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final StringPath email = createString("email");
-
- public final EnumPath gender = createEnum("gender", Gender.class);
-
- public final BooleanPath hasBadge = createBoolean("hasBadge");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath introduction = createString("introduction");
-
- public final BooleanPath isNotificationsAllowed = createBoolean("isNotificationsAllowed");
-
- public final StringPath name = createString("name");
-
- public final StringPath nickname = createString("nickname");
-
- public final StringPath password = createString("password");
-
- public final StringPath phone = createString("phone");
-
- public final StringPath profileImage = createString("profileImage");
-
- public final EnumPath provider = createEnum("provider", Provider.class);
-
- public final StringPath providerId = createString("providerId");
-
- public final EnumPath role = createEnum("role", MemberRole.class);
-
- public final EnumPath status = createEnum("status", MemberStatus.class);
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QMember(String variable) {
- super(Member.class, forVariable(variable));
- }
-
- public QMember(Path extends Member> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QMember(PathMetadata metadata) {
- super(Member.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/member/domain/QMemberAlcoholType.java b/src/main/generated/com/juu/juulabel/member/domain/QMemberAlcoholType.java
deleted file mode 100644
index 1a67224d..00000000
--- a/src/main/generated/com/juu/juulabel/member/domain/QMemberAlcoholType.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.juu.juulabel.member.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QMemberAlcoholType is a Querydsl query type for MemberAlcoholType
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QMemberAlcoholType extends EntityPathBase {
-
- private static final long serialVersionUID = 2046452069L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QMemberAlcoholType memberAlcoholType = new QMemberAlcoholType("memberAlcoholType");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final com.juu.juulabel.alcohol.domain.QAlcoholType alcoholType;
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final QMember member;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QMemberAlcoholType(String variable) {
- this(MemberAlcoholType.class, forVariable(variable), INITS);
- }
-
- public QMemberAlcoholType(Path extends MemberAlcoholType> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QMemberAlcoholType(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QMemberAlcoholType(PathMetadata metadata, PathInits inits) {
- this(MemberAlcoholType.class, metadata, inits);
- }
-
- public QMemberAlcoholType(Class extends MemberAlcoholType> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholType = inits.isInitialized("alcoholType") ? new com.juu.juulabel.alcohol.domain.QAlcoholType(forProperty("alcoholType")) : null;
- this.member = inits.isInitialized("member") ? new QMember(forProperty("member")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/member/domain/QMemberAlcoholicDrinks.java b/src/main/generated/com/juu/juulabel/member/domain/QMemberAlcoholicDrinks.java
deleted file mode 100644
index 9998c679..00000000
--- a/src/main/generated/com/juu/juulabel/member/domain/QMemberAlcoholicDrinks.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.juu.juulabel.member.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QMemberAlcoholicDrinks is a Querydsl query type for MemberAlcoholicDrinks
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QMemberAlcoholicDrinks extends EntityPathBase {
-
- private static final long serialVersionUID = -118220512L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QMemberAlcoholicDrinks memberAlcoholicDrinks = new QMemberAlcoholicDrinks("memberAlcoholicDrinks");
-
- public final com.juu.juulabel.common.base.QBaseCreatedTimeEntity _super = new com.juu.juulabel.common.base.QBaseCreatedTimeEntity(this);
-
- public final com.juu.juulabel.alcohol.domain.QAlcoholicDrinks alcoholicDrinks;
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final QMember member;
-
- public QMemberAlcoholicDrinks(String variable) {
- this(MemberAlcoholicDrinks.class, forVariable(variable), INITS);
- }
-
- public QMemberAlcoholicDrinks(Path extends MemberAlcoholicDrinks> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QMemberAlcoholicDrinks(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QMemberAlcoholicDrinks(PathMetadata metadata, PathInits inits) {
- this(MemberAlcoholicDrinks.class, metadata, inits);
- }
-
- public QMemberAlcoholicDrinks(Class extends MemberAlcoholicDrinks> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholicDrinks = inits.isInitialized("alcoholicDrinks") ? new com.juu.juulabel.alcohol.domain.QAlcoholicDrinks(forProperty("alcoholicDrinks"), inits.get("alcoholicDrinks")) : null;
- this.member = inits.isInitialized("member") ? new QMember(forProperty("member")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/member/domain/QMemberTerms.java b/src/main/generated/com/juu/juulabel/member/domain/QMemberTerms.java
deleted file mode 100644
index 417f946c..00000000
--- a/src/main/generated/com/juu/juulabel/member/domain/QMemberTerms.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.juu.juulabel.member.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QMemberTerms is a Querydsl query type for MemberTerms
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QMemberTerms extends EntityPathBase {
-
- private static final long serialVersionUID = 1507682628L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QMemberTerms memberTerms = new QMemberTerms("memberTerms");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final DateTimePath agreedAt = createDateTime("agreedAt", java.time.LocalDateTime.class);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final QMember member;
-
- public final com.juu.juulabel.terms.domain.QTerms terms;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QMemberTerms(String variable) {
- this(MemberTerms.class, forVariable(variable), INITS);
- }
-
- public QMemberTerms(Path extends MemberTerms> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QMemberTerms(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QMemberTerms(PathMetadata metadata, PathInits inits) {
- this(MemberTerms.class, metadata, inits);
- }
-
- public QMemberTerms(Class extends MemberTerms> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.member = inits.isInitialized("member") ? new QMember(forProperty("member")) : null;
- this.terms = inits.isInitialized("terms") ? new com.juu.juulabel.terms.domain.QTerms(forProperty("terms")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/member/domain/QWithdrawalRecord.java b/src/main/generated/com/juu/juulabel/member/domain/QWithdrawalRecord.java
deleted file mode 100644
index 0df2362a..00000000
--- a/src/main/generated/com/juu/juulabel/member/domain/QWithdrawalRecord.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.juu.juulabel.member.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QWithdrawalRecord is a Querydsl query type for WithdrawalRecord
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QWithdrawalRecord extends EntityPathBase {
-
- private static final long serialVersionUID = 1674934671L;
-
- public static final QWithdrawalRecord withdrawalRecord = new QWithdrawalRecord("withdrawalRecord");
-
- public final com.juu.juulabel.common.base.QBaseCreatedTimeEntity _super = new com.juu.juulabel.common.base.QBaseCreatedTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final StringPath email = createString("email");
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath nickname = createString("nickname");
-
- public final StringPath withdrawalReason = createString("withdrawalReason");
-
- public QWithdrawalRecord(String variable) {
- super(WithdrawalRecord.class, forVariable(variable));
- }
-
- public QWithdrawalRecord(Path extends WithdrawalRecord> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QWithdrawalRecord(PathMetadata metadata) {
- super(WithdrawalRecord.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/notification/domain/QNotification.java b/src/main/generated/com/juu/juulabel/notification/domain/QNotification.java
deleted file mode 100644
index 2eaa832b..00000000
--- a/src/main/generated/com/juu/juulabel/notification/domain/QNotification.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.juu.juulabel.notification.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QNotification is a Querydsl query type for Notification
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QNotification extends EntityPathBase {
-
- private static final long serialVersionUID = -1125011675L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QNotification notification = new QNotification("notification");
-
- public final com.juu.juulabel.common.base.QBaseCreatedTimeEntity _super = new com.juu.juulabel.common.base.QBaseCreatedTimeEntity(this);
-
- public final NumberPath commentId = createNumber("commentId", Long.class);
-
- public final StringPath content = createString("content");
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isRead = createBoolean("isRead");
-
- public final EnumPath notificationType = createEnum("notificationType", NotificationType.class);
-
- public final StringPath profileImageUrl = createString("profileImageUrl");
-
- public final com.juu.juulabel.member.domain.QMember receiver;
-
- public final StringPath relatedUrl = createString("relatedUrl");
-
- public QNotification(String variable) {
- this(Notification.class, forVariable(variable), INITS);
- }
-
- public QNotification(Path extends Notification> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QNotification(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QNotification(PathMetadata metadata, PathInits inits) {
- this(Notification.class, metadata, inits);
- }
-
- public QNotification(Class extends Notification> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.receiver = inits.isInitialized("receiver") ? new com.juu.juulabel.member.domain.QMember(forProperty("receiver")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNote.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNote.java
deleted file mode 100644
index 0d6269c2..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNote.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.juu.juulabel.tastingnote.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QTastingNote is a Querydsl query type for TastingNote
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTastingNote extends EntityPathBase {
-
- private static final long serialVersionUID = 544443447L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QTastingNote tastingNote = new QTastingNote("tastingNote");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final com.juu.juulabel.tastingnote.domain.embedded.QAlcoholicDrinksSnapshot alcoholDrinksInfo;
-
- public final com.juu.juulabel.alcohol.domain.QAlcoholicDrinks alcoholicDrinks;
-
- public final com.juu.juulabel.alcohol.domain.QAlcoholType alcoholType;
-
- public final com.juu.juulabel.alcohol.domain.QColor color;
-
- public final StringPath content = createString("content");
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isPrivate = createBoolean("isPrivate");
-
- public final com.juu.juulabel.member.domain.QMember member;
-
- public final NumberPath rating = createNumber("rating", Double.class);
-
- public final ListPath tastingNoteScents = this.createList("tastingNoteScents", TastingNoteScent.class, QTastingNoteScent.class, PathInits.DIRECT2);
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QTastingNote(String variable) {
- this(TastingNote.class, forVariable(variable), INITS);
- }
-
- public QTastingNote(Path extends TastingNote> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QTastingNote(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QTastingNote(PathMetadata metadata, PathInits inits) {
- this(TastingNote.class, metadata, inits);
- }
-
- public QTastingNote(Class extends TastingNote> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.alcoholDrinksInfo = inits.isInitialized("alcoholDrinksInfo") ? new com.juu.juulabel.tastingnote.domain.embedded.QAlcoholicDrinksSnapshot(forProperty("alcoholDrinksInfo")) : null;
- this.alcoholicDrinks = inits.isInitialized("alcoholicDrinks") ? new com.juu.juulabel.alcohol.domain.QAlcoholicDrinks(forProperty("alcoholicDrinks"), inits.get("alcoholicDrinks")) : null;
- this.alcoholType = inits.isInitialized("alcoholType") ? new com.juu.juulabel.alcohol.domain.QAlcoholType(forProperty("alcoholType")) : null;
- this.color = inits.isInitialized("color") ? new com.juu.juulabel.alcohol.domain.QColor(forProperty("color")) : null;
- this.member = inits.isInitialized("member") ? new com.juu.juulabel.member.domain.QMember(forProperty("member")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteComment.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteComment.java
deleted file mode 100644
index 02db1d84..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteComment.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.juu.juulabel.tastingnote.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QTastingNoteComment is a Querydsl query type for TastingNoteComment
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTastingNoteComment extends EntityPathBase {
-
- private static final long serialVersionUID = 435559976L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QTastingNoteComment tastingNoteComment = new QTastingNoteComment("tastingNoteComment");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final StringPath content = createString("content");
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final com.juu.juulabel.member.domain.QMember member;
-
- public final QTastingNoteComment parent;
-
- public final QTastingNote tastingNote;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QTastingNoteComment(String variable) {
- this(TastingNoteComment.class, forVariable(variable), INITS);
- }
-
- public QTastingNoteComment(Path extends TastingNoteComment> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QTastingNoteComment(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QTastingNoteComment(PathMetadata metadata, PathInits inits) {
- this(TastingNoteComment.class, metadata, inits);
- }
-
- public QTastingNoteComment(Class extends TastingNoteComment> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.member = inits.isInitialized("member") ? new com.juu.juulabel.member.domain.QMember(forProperty("member")) : null;
- this.parent = inits.isInitialized("parent") ? new QTastingNoteComment(forProperty("parent"), inits.get("parent")) : null;
- this.tastingNote = inits.isInitialized("tastingNote") ? new QTastingNote(forProperty("tastingNote"), inits.get("tastingNote")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteCommentLike.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteCommentLike.java
deleted file mode 100644
index 278182fe..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteCommentLike.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.juu.juulabel.tastingnote.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QTastingNoteCommentLike is a Querydsl query type for TastingNoteCommentLike
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTastingNoteCommentLike extends EntityPathBase {
-
- private static final long serialVersionUID = -670110241L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QTastingNoteCommentLike tastingNoteCommentLike = new QTastingNoteCommentLike("tastingNoteCommentLike");
-
- public final com.juu.juulabel.common.base.QBaseCreatedTimeEntity _super = new com.juu.juulabel.common.base.QBaseCreatedTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final com.juu.juulabel.member.domain.QMember member;
-
- public final QTastingNoteComment tastingNoteComment;
-
- public QTastingNoteCommentLike(String variable) {
- this(TastingNoteCommentLike.class, forVariable(variable), INITS);
- }
-
- public QTastingNoteCommentLike(Path extends TastingNoteCommentLike> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QTastingNoteCommentLike(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QTastingNoteCommentLike(PathMetadata metadata, PathInits inits) {
- this(TastingNoteCommentLike.class, metadata, inits);
- }
-
- public QTastingNoteCommentLike(Class extends TastingNoteCommentLike> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.member = inits.isInitialized("member") ? new com.juu.juulabel.member.domain.QMember(forProperty("member")) : null;
- this.tastingNoteComment = inits.isInitialized("tastingNoteComment") ? new QTastingNoteComment(forProperty("tastingNoteComment"), inits.get("tastingNoteComment")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteFlavorLevel.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteFlavorLevel.java
deleted file mode 100644
index 22fdc745..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteFlavorLevel.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.juu.juulabel.tastingnote.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QTastingNoteFlavorLevel is a Querydsl query type for TastingNoteFlavorLevel
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTastingNoteFlavorLevel extends EntityPathBase {
-
- private static final long serialVersionUID = -2092980529L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QTastingNoteFlavorLevel tastingNoteFlavorLevel = new QTastingNoteFlavorLevel("tastingNoteFlavorLevel");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final com.juu.juulabel.alcohol.domain.QFlavorLevel flavorLevel;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final QTastingNote tastingNote;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QTastingNoteFlavorLevel(String variable) {
- this(TastingNoteFlavorLevel.class, forVariable(variable), INITS);
- }
-
- public QTastingNoteFlavorLevel(Path extends TastingNoteFlavorLevel> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QTastingNoteFlavorLevel(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QTastingNoteFlavorLevel(PathMetadata metadata, PathInits inits) {
- this(TastingNoteFlavorLevel.class, metadata, inits);
- }
-
- public QTastingNoteFlavorLevel(Class extends TastingNoteFlavorLevel> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.flavorLevel = inits.isInitialized("flavorLevel") ? new com.juu.juulabel.alcohol.domain.QFlavorLevel(forProperty("flavorLevel"), inits.get("flavorLevel")) : null;
- this.tastingNote = inits.isInitialized("tastingNote") ? new QTastingNote(forProperty("tastingNote"), inits.get("tastingNote")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteImage.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteImage.java
deleted file mode 100644
index a88c1103..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteImage.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.juu.juulabel.tastingnote.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QTastingNoteImage is a Querydsl query type for TastingNoteImage
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTastingNoteImage extends EntityPathBase {
-
- private static final long serialVersionUID = 2012624740L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QTastingNoteImage tastingNoteImage = new QTastingNoteImage("tastingNoteImage");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final StringPath imagePath = createString("imagePath");
-
- public final NumberPath seq = createNumber("seq", Integer.class);
-
- public final QTastingNote tastingNote;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QTastingNoteImage(String variable) {
- this(TastingNoteImage.class, forVariable(variable), INITS);
- }
-
- public QTastingNoteImage(Path extends TastingNoteImage> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QTastingNoteImage(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QTastingNoteImage(PathMetadata metadata, PathInits inits) {
- this(TastingNoteImage.class, metadata, inits);
- }
-
- public QTastingNoteImage(Class extends TastingNoteImage> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.tastingNote = inits.isInitialized("tastingNote") ? new QTastingNote(forProperty("tastingNote"), inits.get("tastingNote")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteLike.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteLike.java
deleted file mode 100644
index 17ca2c4b..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteLike.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.juu.juulabel.tastingnote.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QTastingNoteLike is a Querydsl query type for TastingNoteLike
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTastingNoteLike extends EntityPathBase {
-
- private static final long serialVersionUID = 1727577198L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QTastingNoteLike tastingNoteLike = new QTastingNoteLike("tastingNoteLike");
-
- public final com.juu.juulabel.common.base.QBaseCreatedTimeEntity _super = new com.juu.juulabel.common.base.QBaseCreatedTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final com.juu.juulabel.member.domain.QMember member;
-
- public final QTastingNote tastingNote;
-
- public QTastingNoteLike(String variable) {
- this(TastingNoteLike.class, forVariable(variable), INITS);
- }
-
- public QTastingNoteLike(Path extends TastingNoteLike> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QTastingNoteLike(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QTastingNoteLike(PathMetadata metadata, PathInits inits) {
- this(TastingNoteLike.class, metadata, inits);
- }
-
- public QTastingNoteLike(Class extends TastingNoteLike> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.member = inits.isInitialized("member") ? new com.juu.juulabel.member.domain.QMember(forProperty("member")) : null;
- this.tastingNote = inits.isInitialized("tastingNote") ? new QTastingNote(forProperty("tastingNote"), inits.get("tastingNote")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteScent.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteScent.java
deleted file mode 100644
index f55c1dac..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteScent.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.juu.juulabel.tastingnote.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QTastingNoteScent is a Querydsl query type for TastingNoteScent
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTastingNoteScent extends EntityPathBase {
-
- private static final long serialVersionUID = 2021566116L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QTastingNoteScent tastingNoteScent = new QTastingNoteScent("tastingNoteScent");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final com.juu.juulabel.alcohol.domain.QScent scent;
-
- public final QTastingNote tastingNote;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QTastingNoteScent(String variable) {
- this(TastingNoteScent.class, forVariable(variable), INITS);
- }
-
- public QTastingNoteScent(Path extends TastingNoteScent> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QTastingNoteScent(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QTastingNoteScent(PathMetadata metadata, PathInits inits) {
- this(TastingNoteScent.class, metadata, inits);
- }
-
- public QTastingNoteScent(Class extends TastingNoteScent> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.scent = inits.isInitialized("scent") ? new com.juu.juulabel.alcohol.domain.QScent(forProperty("scent")) : null;
- this.tastingNote = inits.isInitialized("tastingNote") ? new QTastingNote(forProperty("tastingNote"), inits.get("tastingNote")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteSensoryLevel.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteSensoryLevel.java
deleted file mode 100644
index cd08dbf5..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/QTastingNoteSensoryLevel.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.juu.juulabel.tastingnote.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-import com.querydsl.core.types.dsl.PathInits;
-
-
-/**
- * QTastingNoteSensoryLevel is a Querydsl query type for TastingNoteSensoryLevel
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTastingNoteSensoryLevel extends EntityPathBase {
-
- private static final long serialVersionUID = 751400092L;
-
- private static final PathInits INITS = PathInits.DIRECT2;
-
- public static final QTastingNoteSensoryLevel tastingNoteSensoryLevel = new QTastingNoteSensoryLevel("tastingNoteSensoryLevel");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final com.juu.juulabel.alcohol.domain.QSensoryLevel sensoryLevel;
-
- public final QTastingNote tastingNote;
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QTastingNoteSensoryLevel(String variable) {
- this(TastingNoteSensoryLevel.class, forVariable(variable), INITS);
- }
-
- public QTastingNoteSensoryLevel(Path extends TastingNoteSensoryLevel> path) {
- this(path.getType(), path.getMetadata(), PathInits.getFor(path.getMetadata(), INITS));
- }
-
- public QTastingNoteSensoryLevel(PathMetadata metadata) {
- this(metadata, PathInits.getFor(metadata, INITS));
- }
-
- public QTastingNoteSensoryLevel(PathMetadata metadata, PathInits inits) {
- this(TastingNoteSensoryLevel.class, metadata, inits);
- }
-
- public QTastingNoteSensoryLevel(Class extends TastingNoteSensoryLevel> type, PathMetadata metadata, PathInits inits) {
- super(type, metadata, inits);
- this.sensoryLevel = inits.isInitialized("sensoryLevel") ? new com.juu.juulabel.alcohol.domain.QSensoryLevel(forProperty("sensoryLevel"), inits.get("sensoryLevel")) : null;
- this.tastingNote = inits.isInitialized("tastingNote") ? new QTastingNote(forProperty("tastingNote"), inits.get("tastingNote")) : null;
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/tastingnote/domain/embedded/QAlcoholicDrinksSnapshot.java b/src/main/generated/com/juu/juulabel/tastingnote/domain/embedded/QAlcoholicDrinksSnapshot.java
deleted file mode 100644
index ee8a9f79..00000000
--- a/src/main/generated/com/juu/juulabel/tastingnote/domain/embedded/QAlcoholicDrinksSnapshot.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.juu.juulabel.tastingnote.domain.embedded;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QAlcoholicDrinksSnapshot is a Querydsl query type for AlcoholicDrinksSnapshot
- */
-@Generated("com.querydsl.codegen.DefaultEmbeddableSerializer")
-public class QAlcoholicDrinksSnapshot extends BeanPath {
-
- private static final long serialVersionUID = 579942130L;
-
- public static final QAlcoholicDrinksSnapshot alcoholicDrinksSnapshot = new QAlcoholicDrinksSnapshot("alcoholicDrinksSnapshot");
-
- public final NumberPath alcoholContent = createNumber("alcoholContent", Double.class);
-
- public final StringPath alcoholicDrinksName = createString("alcoholicDrinksName");
-
- public final StringPath alcoholTypeName = createString("alcoholTypeName");
-
- public final StringPath breweryName = createString("breweryName");
-
- public final StringPath breweryRegion = createString("breweryRegion");
-
- public QAlcoholicDrinksSnapshot(String variable) {
- super(AlcoholicDrinksSnapshot.class, forVariable(variable));
- }
-
- public QAlcoholicDrinksSnapshot(Path extends AlcoholicDrinksSnapshot> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QAlcoholicDrinksSnapshot(PathMetadata metadata) {
- super(AlcoholicDrinksSnapshot.class, metadata);
- }
-
-}
-
diff --git a/src/main/generated/com/juu/juulabel/terms/domain/QTerms.java b/src/main/generated/com/juu/juulabel/terms/domain/QTerms.java
deleted file mode 100644
index 64210851..00000000
--- a/src/main/generated/com/juu/juulabel/terms/domain/QTerms.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.juu.juulabel.terms.domain;
-
-import static com.querydsl.core.types.PathMetadataFactory.*;
-
-import com.querydsl.core.types.dsl.*;
-
-import com.querydsl.core.types.PathMetadata;
-import javax.annotation.processing.Generated;
-import com.querydsl.core.types.Path;
-
-
-/**
- * QTerms is a Querydsl query type for Terms
- */
-@Generated("com.querydsl.codegen.DefaultEntitySerializer")
-public class QTerms extends EntityPathBase {
-
- private static final long serialVersionUID = 1516037303L;
-
- public static final QTerms terms = new QTerms("terms");
-
- public final com.juu.juulabel.common.base.QBaseTimeEntity _super = new com.juu.juulabel.common.base.QBaseTimeEntity(this);
-
- public final StringPath content = createString("content");
-
- //inherited
- public final DateTimePath createdAt = _super.createdAt;
-
- public final DateTimePath deletedAt = createDateTime("deletedAt", java.time.LocalDateTime.class);
-
- public final NumberPath id = createNumber("id", Long.class);
-
- public final BooleanPath isRequired = createBoolean("isRequired");
-
- public final BooleanPath isUsed = createBoolean("isUsed");
-
- public final StringPath title = createString("title");
-
- public final EnumPath type = createEnum("type", TermsType.class);
-
- //inherited
- public final DateTimePath updatedAt = _super.updatedAt;
-
- public QTerms(String variable) {
- super(Terms.class, forVariable(variable));
- }
-
- public QTerms(Path extends Terms> path) {
- super(path.getType(), path.getMetadata());
- }
-
- public QTerms(PathMetadata metadata) {
- super(Terms.class, metadata);
- }
-
-}
-
diff --git a/src/main/java/com/juu/juulabel/JuulabelApplication.java b/src/main/java/com/juu/juulabel/JuulabelApplication.java
index 5ae58127..49c3e8d7 100644
--- a/src/main/java/com/juu/juulabel/JuulabelApplication.java
+++ b/src/main/java/com/juu/juulabel/JuulabelApplication.java
@@ -2,8 +2,10 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.data.redis.repository.configuration.EnableRedisRepositories;
@SpringBootApplication
+@EnableRedisRepositories
public class JuulabelApplication {
public static void main(String[] args) {
diff --git a/src/main/java/com/juu/juulabel/admin/AdminController.java b/src/main/java/com/juu/juulabel/admin/AdminController.java
index 897a44d9..23ed58eb 100644
--- a/src/main/java/com/juu/juulabel/admin/AdminController.java
+++ b/src/main/java/com/juu/juulabel/admin/AdminController.java
@@ -1,7 +1,5 @@
package com.juu.juulabel.admin;
-import com.juu.juulabel.admin.response.MemberListSummary;
-import com.juu.juulabel.alcohol.response.CategorySearchAlcoholRequest;
import com.juu.juulabel.common.dto.request.MemberListRequest;
import com.juu.juulabel.common.dto.response.MemberListResponse;
import com.juu.juulabel.common.exception.code.SuccessCode;
@@ -15,12 +13,9 @@
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;
-@Tag(
- name = "관리자 API",
- description = "뱃지 부여 및 알림 발송 등 관리자 관련 API"
-)
+@Tag(name = "관리자 API", description = "뱃지 부여 및 알림 발송 등 관리자 관련 API")
@RestController
-@RequestMapping(value = {"/v1/api/admins"})
+@RequestMapping(value = { "/v1/api/admins" })
@RequiredArgsConstructor
public class AdminController {
@@ -29,9 +24,8 @@ public class AdminController {
@Operation(summary = "뱃지 부여")
@PostMapping("/badges")
public ResponseEntity> assignBadge(
- @AuthenticationPrincipal Member member,
- @RequestParam(value = "email") String email
- ) {
+ @AuthenticationPrincipal Member member,
+ @RequestParam(value = "email") String email) {
adminService.assignBadge(email, member);
return CommonResponse.success(SuccessCode.SUCCESS);
}
diff --git a/src/main/java/com/juu/juulabel/auth/controller/AuthApiDocs.java b/src/main/java/com/juu/juulabel/auth/controller/AuthApiDocs.java
new file mode 100644
index 00000000..c661b540
--- /dev/null
+++ b/src/main/java/com/juu/juulabel/auth/controller/AuthApiDocs.java
@@ -0,0 +1,93 @@
+package com.juu.juulabel.auth.controller;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.juu.juulabel.common.constants.AuthConstants;
+import com.juu.juulabel.common.dto.request.OAuthLoginRequest;
+import com.juu.juulabel.common.dto.request.SignUpMemberRequest;
+import com.juu.juulabel.common.dto.request.WithdrawalRequest;
+import com.juu.juulabel.common.dto.response.LoginResponse;
+import com.juu.juulabel.common.dto.response.RefreshResponse;
+import com.juu.juulabel.common.dto.response.SignUpMemberResponse;
+import com.juu.juulabel.common.response.CommonResponse;
+import com.juu.juulabel.member.domain.Member;
+import com.juu.juulabel.member.domain.Provider;
+
+import org.springframework.web.bind.annotation.CookieValue;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import io.swagger.v3.oas.annotations.headers.Header;
+import io.swagger.v3.oas.annotations.media.Schema;
+
+@Tag(name = "인증 API", description = "로그인, 회원가입, 회원탈퇴, 토큰 관리 등 인증 관련 API")
+@RequestMapping("/v1/api/auth")
+public interface AuthApiDocs {
+
+ @Operation(summary = "OAuth 소셜 로그인", description = "지원되는 OAuth 제공자(Google, Kakao)를 통한 로그인")
+ @ApiResponse(responseCode = "200", description = "로그인 성공", headers = {
+ @Header(name = "Set-Cookie", description = "계정이 존재할시만 리프레시 토큰 발급", schema = @Schema(type = "string"))
+ })
+ @ApiResponse(responseCode = "400", description = "잘못된 요청 데이터")
+ @ApiResponse(responseCode = "401", description = "인증 실패")
+ @PostMapping("/login/{provider}")
+ public ResponseEntity> oauthLogin(
+ @Parameter(description = "OAuth 제공자 (GOOGLE, KAKAO)", required = true) @PathVariable Provider provider,
+ @Valid @RequestBody OAuthLoginRequest requestBody);
+
+ @Operation(summary = "회원가입", description = "새로운 회원 등록 및 초기 토큰 발급")
+ @ApiResponse(responseCode = "200", description = "회원가입 성공", headers = {
+ @Header(name = "Set-Cookie", description = "리프레시 토큰 발급", schema = @Schema(type = "string"))
+ })
+ @ApiResponse(responseCode = "400", description = "유효성 검사 실패, 중복된 이메일 또는 닉네임")
+ @PostMapping("/sign-up")
+ public ResponseEntity> signUp(
+ @Valid @RequestBody SignUpMemberRequest request);
+
+ @Operation(summary = "액세스 토큰 갱신", description = "리프레시 토큰을 사용하여 새로운 액세스 토큰 발급")
+ @ApiResponse(responseCode = "200", description = "토큰 갱신 성공", headers = {
+ @Header(name = "Set-Cookie", description = "리프레시 토큰 갱신", schema = @Schema(type = "string"))
+ })
+ @ApiResponse(responseCode = "401", description = "유효하지 않은 리프레시 토큰", headers = {
+ @Header(name = "Set-Cookie", description = "리프레시 토큰 즉시 삭제", schema = @Schema(type = "string"))
+ })
+ @ApiResponse(responseCode = "403", description = "토큰 재사용 감지", headers = {
+ @Header(name = "Set-Cookie", description = "리프레시 토큰 즉시 삭제", schema = @Schema(type = "string"))
+ })
+ @PostMapping("/refresh")
+ public ResponseEntity> refresh(
+ @Parameter(description = "리프레시 토큰 (쿠키)", required = true) @CookieValue(value = AuthConstants.REFRESH_TOKEN_HEADER_NAME, required = true) String refreshToken,
+ @AuthenticationPrincipal Member member);
+
+ @Operation(summary = "로그아웃", description = "현재 디바이스의 리프레시 토큰 무효화")
+ @ApiResponse(responseCode = "200", description = "로그아웃 성공", headers = {
+ @Header(name = "Set-Cookie", description = "리프레시 토큰 즉시 삭제", schema = @Schema(type = "string"))
+ })
+ @ApiResponse(responseCode = "401", description = "인증되지 않은 요청")
+ @PostMapping("/logout")
+ public ResponseEntity> logout(
+ @Parameter(description = "리프레시 토큰 (쿠키)", required = true) @CookieValue(value = AuthConstants.REFRESH_TOKEN_HEADER_NAME, required = true) String refreshToken,
+ @AuthenticationPrincipal Member member);
+
+ @Operation(summary = "회원 탈퇴", description = "회원 계정 삭제 및 모든 토큰 무효화")
+ @ApiResponse(responseCode = "200", description = "회원 탈퇴 성공", headers = {
+ @Header(name = "Set-Cookie", description = "리프레시 토큰 즉시 삭제", schema = @Schema(type = "string"))
+ })
+ @ApiResponse(responseCode = "400", description = "잘못된 탈퇴 요청")
+ @ApiResponse(responseCode = "401", description = "인증되지 않은 요청")
+ @DeleteMapping("/me")
+ public ResponseEntity> deleteAccount(
+ @Parameter(description = "리프레시 토큰 (쿠키)", required = true) @CookieValue(value = AuthConstants.REFRESH_TOKEN_HEADER_NAME, required = true) String refreshToken,
+ @AuthenticationPrincipal Member member,
+ @Valid @RequestBody WithdrawalRequest request);
+
+}
diff --git a/src/main/java/com/juu/juulabel/auth/controller/AuthController.java b/src/main/java/com/juu/juulabel/auth/controller/AuthController.java
new file mode 100644
index 00000000..2bb03848
--- /dev/null
+++ b/src/main/java/com/juu/juulabel/auth/controller/AuthController.java
@@ -0,0 +1,79 @@
+package com.juu.juulabel.auth.controller;
+
+import com.juu.juulabel.auth.service.AuthService;
+import com.juu.juulabel.common.constants.AuthConstants;
+import com.juu.juulabel.common.dto.request.OAuthLoginRequest;
+import com.juu.juulabel.common.dto.request.SignUpMemberRequest;
+import com.juu.juulabel.common.dto.request.WithdrawalRequest;
+import com.juu.juulabel.common.dto.response.LoginResponse;
+import com.juu.juulabel.common.dto.response.RefreshResponse;
+import com.juu.juulabel.common.dto.response.SignUpMemberResponse;
+import com.juu.juulabel.common.exception.code.SuccessCode;
+import com.juu.juulabel.common.response.CommonResponse;
+import com.juu.juulabel.member.domain.Member;
+import com.juu.juulabel.member.domain.Provider;
+
+import io.swagger.v3.oas.annotations.Parameter;
+
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequiredArgsConstructor
+public class AuthController implements AuthApiDocs {
+
+ private final AuthService authService;
+
+ @Override
+ public ResponseEntity> oauthLogin(
+ @Parameter(description = "OAuth 제공자 (GOOGLE, KAKAO)", required = true) @PathVariable Provider provider,
+ @Valid @RequestBody OAuthLoginRequest requestBody) {
+
+ LoginResponse loginResponse = authService.login(requestBody);
+
+ return CommonResponse.success(SuccessCode.SUCCESS, loginResponse);
+ }
+
+ @Override
+ public ResponseEntity> signUp(
+ @Valid @RequestBody SignUpMemberRequest request) {
+
+ SignUpMemberResponse signUpMemberResponse = authService.signUp(request);
+
+ return CommonResponse.success(SuccessCode.SUCCESS, signUpMemberResponse);
+ }
+
+ @Override
+ public ResponseEntity> refresh(
+ @Parameter(description = "리프레시 토큰 (쿠키)", required = true) @CookieValue(value = AuthConstants.REFRESH_TOKEN_HEADER_NAME, required = true) String refreshToken,
+ @AuthenticationPrincipal Member member) {
+
+ RefreshResponse refreshResponse = authService.refresh(refreshToken);
+
+ return CommonResponse.success(SuccessCode.SUCCESS, refreshResponse);
+ }
+
+ @Override
+ public ResponseEntity> logout(
+ @Parameter(description = "리프레시 토큰 (쿠키)", required = true) @CookieValue(value = AuthConstants.REFRESH_TOKEN_HEADER_NAME, required = true) String refreshToken,
+ @AuthenticationPrincipal Member member) {
+
+ authService.logout(refreshToken);
+
+ return CommonResponse.success(SuccessCode.SUCCESS);
+ }
+
+ @Override
+ public ResponseEntity> deleteAccount(
+ @Parameter(description = "리프레시 토큰 (쿠키)", required = true) @CookieValue(value = AuthConstants.REFRESH_TOKEN_HEADER_NAME, required = true) String refreshToken,
+ @AuthenticationPrincipal Member member,
+ @Valid @RequestBody WithdrawalRequest request) {
+
+ authService.deleteAccount(member, request, refreshToken);
+
+ return CommonResponse.success(SuccessCode.SUCCESS_DELETE);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/juu/juulabel/auth/domain/ClientId.java b/src/main/java/com/juu/juulabel/auth/domain/ClientId.java
new file mode 100644
index 00000000..0a7b638d
--- /dev/null
+++ b/src/main/java/com/juu/juulabel/auth/domain/ClientId.java
@@ -0,0 +1,27 @@
+package com.juu.juulabel.auth.domain;
+
+import java.util.Arrays;
+import java.util.Optional;
+
+public enum ClientId {
+ WEB("web-client"),
+ IOS("ios-app"),
+ ANDROID("android-app"),
+ ADMIN("admin-panel");
+
+ private final String value;
+
+ ClientId(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public static Optional from(String value) {
+ return Arrays.stream(values())
+ .filter(c -> c.value.equals(value))
+ .findFirst();
+ }
+}
diff --git a/src/main/java/com/juu/juulabel/auth/domain/RefreshToken.java b/src/main/java/com/juu/juulabel/auth/domain/RefreshToken.java
new file mode 100644
index 00000000..55f423cd
--- /dev/null
+++ b/src/main/java/com/juu/juulabel/auth/domain/RefreshToken.java
@@ -0,0 +1,62 @@
+package com.juu.juulabel.auth.domain;
+
+import lombok.*;
+
+import static com.juu.juulabel.common.constants.AuthConstants.REFRESH_TOKEN_DURATION;
+import static com.juu.juulabel.common.constants.AuthConstants.REFRESH_TOKEN_HASH_PREFIX;
+import static com.juu.juulabel.common.constants.AuthConstants.REFRESH_TOKEN_INDEX_PREFIX;
+
+import java.io.Serializable;
+
+import java.util.List;
+
+@Getter
+@NoArgsConstructor(access = AccessLevel.PROTECTED)
+@AllArgsConstructor(access = AccessLevel.PRIVATE)
+public class RefreshToken implements Serializable {
+
+ private String token;
+
+ private String hashedToken;
+
+ private Long memberId;
+
+ private String deviceId;
+
+ private ClientId clientId;
+
+ private String ipAddress;
+
+ private String userAgent;
+
+ private Long ttl;
+
+ private boolean revoked;
+
+ @Builder
+ public RefreshToken(String token, String hashedToken, Long memberId, ClientId clientId, String deviceId,
+ String ipAddress, String userAgent) {
+ this.token = token;
+ this.hashedToken = hashedToken;
+ this.memberId = memberId;
+ this.clientId = clientId;
+ this.deviceId = deviceId;
+ this.ipAddress = ipAddress;
+ this.userAgent = userAgent;
+ this.ttl = REFRESH_TOKEN_DURATION.getSeconds();
+ this.revoked = false;
+ }
+
+ public String getTokenKey() {
+ return REFRESH_TOKEN_HASH_PREFIX + ":" + hashedToken;
+ }
+
+ public String getIndexKey() {
+ return REFRESH_TOKEN_INDEX_PREFIX + ":" + memberId + ":" + clientId + ":" + deviceId;
+ }
+
+ public List getArgs() {
+ return List.of(memberId.toString(), clientId.toString(), deviceId, ipAddress, userAgent, ttl.toString());
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/juu/juulabel/auth/executor/LoginRefreshTokenScriptExecutor.java b/src/main/java/com/juu/juulabel/auth/executor/LoginRefreshTokenScriptExecutor.java
new file mode 100644
index 00000000..25c43b79
--- /dev/null
+++ b/src/main/java/com/juu/juulabel/auth/executor/LoginRefreshTokenScriptExecutor.java
@@ -0,0 +1,45 @@
+package com.juu.juulabel.auth.executor;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.util.List;
+
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.data.redis.RedisSystemException;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.script.RedisScript;
+import org.springframework.stereotype.Component;
+
+import com.juu.juulabel.auth.domain.RefreshToken;
+
+@Component
+public class LoginRefreshTokenScriptExecutor implements RedisScriptExecutor