@carsayo/types 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/bankcode.d.ts +167 -0
- package/dist/data/banner.d.ts +36 -0
- package/dist/data/board.d.ts +32 -0
- package/dist/data/car.d.ts +867 -0
- package/dist/data/carPopularCategory.d.ts +20 -0
- package/dist/data/collaborator.d.ts +8 -0
- package/dist/data/index.d.ts +12 -0
- package/dist/data/popup.d.ts +20 -0
- package/dist/data/purchase.d.ts +18 -0
- package/dist/data/region.d.ts +1224 -0
- package/dist/data/role.d.ts +91 -0
- package/dist/data/system.d.ts +19 -0
- package/dist/data/term.d.ts +153 -0
- package/dist/index.d.ts +2 -7
- package/dist/types/index.d.ts +2 -0
- package/dist/types/modules/banner/dto.d.ts +35 -0
- package/dist/types/modules/banner/index.d.ts +2 -0
- package/dist/types/modules/banner/interface.d.ts +50 -0
- package/dist/types/modules/board/dto.d.ts +189 -0
- package/dist/types/modules/board/index.d.ts +3 -0
- package/dist/types/modules/board/interface.d.ts +233 -0
- package/dist/types/modules/board/type.d.ts +29 -0
- package/dist/types/modules/car/dto.d.ts +72 -0
- package/dist/types/modules/car/index.d.ts +3 -0
- package/dist/types/modules/car/interface.d.ts +249 -0
- package/dist/types/modules/car/type.d.ts +11 -0
- package/dist/types/modules/collaborator/dto.d.ts +10 -0
- package/dist/types/modules/collaborator/index.d.ts +1 -0
- package/dist/types/modules/common/index.d.ts +2 -0
- package/dist/types/modules/common/interface.d.ts +23 -0
- package/dist/types/modules/common/type.d.ts +25 -0
- package/dist/types/modules/file/dto.d.ts +17 -0
- package/dist/types/modules/file/index.d.ts +3 -0
- package/dist/types/modules/file/interface.d.ts +26 -0
- package/dist/types/modules/file/type.d.ts +13 -0
- package/dist/types/modules/history/dto.d.ts +12 -0
- package/dist/types/modules/history/index.d.ts +2 -0
- package/dist/types/modules/history/interface.d.ts +12 -0
- package/dist/types/modules/index.d.ts +15 -0
- package/dist/types/modules/inquiry/dto.d.ts +79 -0
- package/dist/types/modules/inquiry/index.d.ts +3 -0
- package/dist/types/modules/inquiry/interface.d.ts +37 -0
- package/dist/types/modules/inquiry/type.d.ts +14 -0
- package/dist/types/modules/member/dto.d.ts +587 -0
- package/dist/types/modules/member/index.d.ts +3 -0
- package/dist/types/modules/member/interface.d.ts +582 -0
- package/dist/types/modules/member/type.d.ts +73 -0
- package/dist/types/modules/notification/dto.d.ts +13 -0
- package/dist/types/modules/notification/index.d.ts +3 -0
- package/dist/types/modules/notification/interface.d.ts +19 -0
- package/dist/types/modules/notification/type.d.ts +5 -0
- package/dist/types/modules/order/dto.d.ts +446 -0
- package/dist/types/modules/order/index.d.ts +3 -0
- package/dist/types/modules/order/interface.d.ts +905 -0
- package/dist/types/modules/order/type.d.ts +161 -0
- package/dist/types/modules/popup/dto.d.ts +33 -0
- package/dist/types/modules/popup/index.d.ts +2 -0
- package/dist/types/modules/popup/interface.d.ts +49 -0
- package/dist/types/modules/purchase/dto.d.ts +9 -0
- package/dist/types/modules/purchase/index.d.ts +3 -0
- package/dist/types/modules/purchase/interface.d.ts +22 -0
- package/dist/types/modules/purchase/type.d.ts +11 -0
- package/dist/types/modules/system/dto.d.ts +13 -0
- package/dist/types/modules/system/index.d.ts +2 -0
- package/dist/types/modules/system/interface.d.ts +18 -0
- package/dist/types/modules/term/dto.d.ts +175 -0
- package/dist/types/modules/term/index.d.ts +2 -0
- package/dist/types/modules/term/interface.d.ts +45 -0
- package/dist/types/providers/coocon-usedcar/dto.d.ts +23 -0
- package/dist/types/providers/coocon-usedcar/index.d.ts +2 -0
- package/dist/types/providers/coocon-usedcar/interface.d.ts +300 -0
- package/dist/types/providers/firebase-message/dto.d.ts +83 -0
- package/dist/types/providers/firebase-message/index.d.ts +2 -0
- package/dist/types/providers/firebase-message/interface.d.ts +4 -0
- package/dist/types/providers/gabia-sms/dto.d.ts +31 -0
- package/dist/types/providers/gabia-sms/index.d.ts +1 -0
- package/dist/types/providers/index.d.ts +7 -0
- package/dist/types/providers/mailer/dto.d.ts +4 -0
- package/dist/types/providers/mailer/index.d.ts +1 -0
- package/dist/types/providers/niceapi/dto.d.ts +15 -0
- package/dist/types/providers/niceapi/index.d.ts +2 -0
- package/dist/types/providers/niceapi/interface.d.ts +22 -0
- package/dist/types/providers/nicepayment/dto.d.ts +60 -0
- package/dist/types/providers/nicepayment/index.d.ts +3 -0
- package/dist/types/providers/nicepayment/interface.d.ts +168 -0
- package/dist/types/providers/nicepayment/type.d.ts +36 -0
- package/dist/validator/IsNullable.d.ts +3 -0
- package/package.json +5 -1
- package/dist/type/all.ts +0 -5402
- package/dist/type/data/bankcode.ts +0 -64
- package/dist/type/data/banner.ts +0 -45
- package/dist/type/data/board.ts +0 -37
- package/dist/type/data/car.ts +0 -1015
- package/dist/type/data/carPopularCategory.ts +0 -28
- package/dist/type/data/collaborator.ts +0 -13
- package/dist/type/data/popup.ts +0 -26
- package/dist/type/data/purchase.ts +0 -24
- package/dist/type/data/region.ts +0 -348
- package/dist/type/data/role.ts +0 -118
- package/dist/type/data/system.ts +0 -31
- package/dist/type/data/term.ts +0 -184
- package/dist/type/history.ts +0 -25
- package/dist/type/interface/type.ts +0 -43
- package/dist/type/order.ts +0 -696
- package/dist/type/purchase.ts +0 -286
- package/dist/type/selling.ts +0 -169
|
@@ -0,0 +1,582 @@
|
|
|
1
|
+
import { CollaboratorId, RoleGroupId, RoleId, SidoId } from "../../../data";
|
|
2
|
+
import { CarMaker } from "../car";
|
|
3
|
+
import { Region, Sido } from "../common";
|
|
4
|
+
import { FileInfo } from "../file";
|
|
5
|
+
import { MemberType, MemberDealerType, MemberDealerSignupState, MemberState, MemberGender, MemberSignupMethod } from "./type";
|
|
6
|
+
/** req.memberAuth에 들어가는 정보
|
|
7
|
+
* @description 이 형식으로 AccessToken을 통해 회원 정보가 클라이언트에서 전달되어 사용됩니다
|
|
8
|
+
* @notice 이 형식으로 쿠키에 저장되어 클라이언트와 서버 사이를 오가기 때문에 크기 제한이(4kb) 있습니다. 많은 정보를 담을 수 없습니다.
|
|
9
|
+
*/
|
|
10
|
+
export interface MemberAuth {
|
|
11
|
+
id: string;
|
|
12
|
+
name_nick: string;
|
|
13
|
+
type: MemberType;
|
|
14
|
+
customer?: {};
|
|
15
|
+
dealer?: {
|
|
16
|
+
type: MemberDealerType;
|
|
17
|
+
state: MemberDealerSignupState;
|
|
18
|
+
};
|
|
19
|
+
admin?: {
|
|
20
|
+
collaboratorId: CollaboratorId | null;
|
|
21
|
+
};
|
|
22
|
+
state: MemberState;
|
|
23
|
+
roles: RoleId[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @description 카사요 로그인 회원 정보
|
|
27
|
+
* @notice 로그인한 본인만 확인 가능하여야 합니다
|
|
28
|
+
*/
|
|
29
|
+
export interface Member extends MemberShort {
|
|
30
|
+
/** 회원 설정 정보 */
|
|
31
|
+
setting: MemberSetting;
|
|
32
|
+
/** 회원이 보유하고 있는 권한 리스트 */
|
|
33
|
+
roles: RoleId[];
|
|
34
|
+
memberAccountInfo: MemberAccountInfo | null;
|
|
35
|
+
adminInfo?: AdminInfo;
|
|
36
|
+
dealerInfo?: DealerInfo;
|
|
37
|
+
customerInfo?: CustomerInfo;
|
|
38
|
+
/** 해당 회원의 알람 개수 */
|
|
39
|
+
notification: MemberNotification;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @description 카사요 회원 간략 정보
|
|
43
|
+
* @notice 마스킹해서 외부에 보여줄 수 있는 정보가 포함되어 있습니다
|
|
44
|
+
*/
|
|
45
|
+
export interface MemberShort {
|
|
46
|
+
id: string;
|
|
47
|
+
name_real: string | null;
|
|
48
|
+
name_nick: string;
|
|
49
|
+
profileImage_url: string;
|
|
50
|
+
/**
|
|
51
|
+
* @case null인 경우는 기본 프로필 이미지를 사용할 때입니다
|
|
52
|
+
*/
|
|
53
|
+
profileImageFileInfo: FileInfo | null;
|
|
54
|
+
phoneNumber: string | null;
|
|
55
|
+
description: string | null;
|
|
56
|
+
state: MemberState;
|
|
57
|
+
gender: MemberGender | null;
|
|
58
|
+
birth: string | null;
|
|
59
|
+
email: string | null;
|
|
60
|
+
is_email_verified: boolean;
|
|
61
|
+
type: MemberType;
|
|
62
|
+
/** 회원 거주지역 */
|
|
63
|
+
region: Region | null;
|
|
64
|
+
/** 본인인증 완료 여부 */
|
|
65
|
+
isIdentified: boolean;
|
|
66
|
+
/** 벌점
|
|
67
|
+
* @notice 어드민에서 해당 카매니저에게 매긴 벌점입니다
|
|
68
|
+
*/
|
|
69
|
+
penalty: number;
|
|
70
|
+
created_at: Date;
|
|
71
|
+
updated_at: Date;
|
|
72
|
+
logined_at: Date | null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @description 카사요 카매니저 간략 정보
|
|
76
|
+
* @notice 마스킹해서 외부에 보여줄 수 있는 정보가 포함되어 있습니다
|
|
77
|
+
*/
|
|
78
|
+
export interface DealerShort extends MemberShort {
|
|
79
|
+
dealerInfo?: Omit<DealerInfo, "salesArea" | "salesMaker" | "amount">;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @description 회원 설정 상태
|
|
83
|
+
*/
|
|
84
|
+
export interface MemberSetting {
|
|
85
|
+
/** 리스렌트 주문관련 푸시알람 수신여부 */
|
|
86
|
+
push_lease: boolean;
|
|
87
|
+
/** 신차 주문관련 푸시알람 수신여부 */
|
|
88
|
+
push_newCar: boolean;
|
|
89
|
+
/** 내차팔기 주문관련 푸시알람 수신여부 */
|
|
90
|
+
push_sellCar: boolean;
|
|
91
|
+
/** 공지사항 푸시알람 수신여부 */
|
|
92
|
+
push_notice: boolean;
|
|
93
|
+
/** 이벤트관련 푸시알람 수신여부 */
|
|
94
|
+
push_event: boolean;
|
|
95
|
+
/** 고객센터 푸시알람 수신여부 */
|
|
96
|
+
push_cs: boolean;
|
|
97
|
+
/** 마케팅수신동의여부: 앱 푸시 메시지 */
|
|
98
|
+
marketing_push: boolean;
|
|
99
|
+
/** 마케팅수신동의여부: 문자 메시지 */
|
|
100
|
+
marketing_sms: boolean;
|
|
101
|
+
/** 마케팅수신동의여부: 이메일 */
|
|
102
|
+
marketing_email: boolean;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @description 회원 알람 개수
|
|
106
|
+
*/
|
|
107
|
+
export interface MemberNotification {
|
|
108
|
+
unreadCount: number;
|
|
109
|
+
}
|
|
110
|
+
export interface CustomerInfo {
|
|
111
|
+
amount: {
|
|
112
|
+
/** 총 결재 금액을 의미합니다 */
|
|
113
|
+
totalPayment: number | null;
|
|
114
|
+
};
|
|
115
|
+
count: {
|
|
116
|
+
/** 주문 가능한 횟수 */
|
|
117
|
+
avaliableOrder: {
|
|
118
|
+
/** 구매 주문(리스/렌트, 신차) 가능 잔여 횟수 */
|
|
119
|
+
purchase: number;
|
|
120
|
+
/** 판매 주문(내차팔기) 가능 잔여 횟수 */
|
|
121
|
+
selling: number;
|
|
122
|
+
};
|
|
123
|
+
/** 현재 주문 상태별 개수 */
|
|
124
|
+
order: {
|
|
125
|
+
/** 주문신청 완료 및 입칠중 (견적요청, 입찰중인 상태) */
|
|
126
|
+
submitted: number;
|
|
127
|
+
/** 진행중 상태의 주문 개수 */
|
|
128
|
+
progressing: number;
|
|
129
|
+
/** 보류 상태의 주문 개수 */
|
|
130
|
+
holded: number;
|
|
131
|
+
/** 취소 상태의 주문 개수 */
|
|
132
|
+
canceled: number;
|
|
133
|
+
/** 종료 상태의 주문 개수 */
|
|
134
|
+
finished: number;
|
|
135
|
+
};
|
|
136
|
+
/** 현재 좋아요한 차량 수 */
|
|
137
|
+
likeCar: number;
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
export interface DealerInfo {
|
|
141
|
+
/** 딜러 타입 (신차, 중고차, 리스렌트) */
|
|
142
|
+
type: MemberDealerType;
|
|
143
|
+
/** 카사요 내부직원 여부 */
|
|
144
|
+
isCarsayoEmployee: boolean;
|
|
145
|
+
/** 소속 협력사 */
|
|
146
|
+
collaborator: Collaborator | null;
|
|
147
|
+
/** 해당 카매니저 가입신청 상태 */
|
|
148
|
+
signupState: MemberDealerSignupState;
|
|
149
|
+
/** 해당 카매니저 회원탈퇴 신청 내용 */
|
|
150
|
+
signout: {
|
|
151
|
+
/**
|
|
152
|
+
* @case accepted: 회원 탈퇴 수락됨, 로그아웃시켜버려야 합니다.
|
|
153
|
+
* @case submitted: 회원 탈퇴 요청중, 탈퇴 요청 접수 완료 페이지로 보내서 가둡니다.
|
|
154
|
+
*/
|
|
155
|
+
state: "accepted" | "submitted";
|
|
156
|
+
/** 회원탈퇴 요청시 입력한 사유 */
|
|
157
|
+
reason: string;
|
|
158
|
+
submitted_at: Date;
|
|
159
|
+
accepted_at: Date | null;
|
|
160
|
+
} | null;
|
|
161
|
+
amount: {
|
|
162
|
+
/** 납부한 수수료 총액을 의미합니다 */
|
|
163
|
+
totalCommission: number | null;
|
|
164
|
+
/** 미입금 수수료 총액을 의미합니다 */
|
|
165
|
+
nonPaidCommission: number | null;
|
|
166
|
+
};
|
|
167
|
+
count: {
|
|
168
|
+
/** 현재 주문 상태별 개수 */
|
|
169
|
+
order?: {
|
|
170
|
+
/** 입찰중인 주문 개수 */
|
|
171
|
+
bidding: number;
|
|
172
|
+
/** 입찰중인 주문중 북마크된 주문 개수 */
|
|
173
|
+
bookmarked: number;
|
|
174
|
+
/** 유찰된 주문 개수 */
|
|
175
|
+
failBid: number;
|
|
176
|
+
/** 진행중 상태의 주문 개수 */
|
|
177
|
+
progressing: number;
|
|
178
|
+
/** 보류 상태의 주문 개수 */
|
|
179
|
+
holded: number;
|
|
180
|
+
/** 취소 상태의 주문 개수 */
|
|
181
|
+
canceled: number;
|
|
182
|
+
/** 종료 상태의 주문 개수 */
|
|
183
|
+
finished: number;
|
|
184
|
+
};
|
|
185
|
+
/** 해당 카매니저에 대해 작성된 리뷰 개수 */
|
|
186
|
+
review: number;
|
|
187
|
+
};
|
|
188
|
+
/** 평점
|
|
189
|
+
* @description 해당 카매니저가 받은 리뷰 내 평점의 평균치
|
|
190
|
+
*/
|
|
191
|
+
rating: number;
|
|
192
|
+
/** 거절 상태이며, 사유가 존재할 경우 정의 */
|
|
193
|
+
signupRejectMessage: string | null;
|
|
194
|
+
/** 경력 연수 */
|
|
195
|
+
experienceYears: number | null;
|
|
196
|
+
/** 소속 */
|
|
197
|
+
organization: string | null;
|
|
198
|
+
/** 근무 시도 */
|
|
199
|
+
workingSido: SidoId | null;
|
|
200
|
+
/** 국산차 취급 딜러 여부
|
|
201
|
+
* 현재 중고차 카매니저에게만 사용합니다
|
|
202
|
+
*/
|
|
203
|
+
isDomestic: boolean;
|
|
204
|
+
/** 수입차 취급 딜러 여부
|
|
205
|
+
* 현재 중고차 카매니저에게만 사용합니다
|
|
206
|
+
*/
|
|
207
|
+
isImported: boolean;
|
|
208
|
+
/** 리스 딜러 여부
|
|
209
|
+
* 리스렌트 카매니저에게만 사용합니다
|
|
210
|
+
*/
|
|
211
|
+
isLease: boolean;
|
|
212
|
+
/** 장기렌트 취급 딜러 여부
|
|
213
|
+
* 리스렌트 카매니저에게만 사용합니다
|
|
214
|
+
*/
|
|
215
|
+
isRent: boolean;
|
|
216
|
+
/** 영업 지역 */
|
|
217
|
+
salesArea: Sido[];
|
|
218
|
+
/** 취급 제조사 */
|
|
219
|
+
salesMaker: CarMaker[];
|
|
220
|
+
/** 매매업종 사업증 유효기간
|
|
221
|
+
* @description YYYYDDMM NumberString
|
|
222
|
+
* @notice 중고차 매니저에게만 정의됩니다
|
|
223
|
+
*/
|
|
224
|
+
tradingCertificate_term?: {
|
|
225
|
+
start: string;
|
|
226
|
+
finish: string;
|
|
227
|
+
};
|
|
228
|
+
/** 카매니저 승인 신청시점 */
|
|
229
|
+
submitted_at: Date;
|
|
230
|
+
/** 카매니저 승인시점 */
|
|
231
|
+
accepted_at: Date | null;
|
|
232
|
+
/** 카매니저 거절시점 */
|
|
233
|
+
rejected_at: Date | null;
|
|
234
|
+
}
|
|
235
|
+
export interface AdminInfo {
|
|
236
|
+
/** 아이디/비밀번호로 로그인 가능 여부 */
|
|
237
|
+
isIdPw: boolean;
|
|
238
|
+
/** 협력사 정보 */
|
|
239
|
+
collaborator: Collaborator | null;
|
|
240
|
+
}
|
|
241
|
+
/** 협력사 정보 */
|
|
242
|
+
export interface Collaborator {
|
|
243
|
+
id: CollaboratorId;
|
|
244
|
+
name: string;
|
|
245
|
+
name_en: string;
|
|
246
|
+
description: string;
|
|
247
|
+
url: string | null;
|
|
248
|
+
}
|
|
249
|
+
export interface IsLoginResponse {
|
|
250
|
+
isLogined: boolean;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* 해당하는 회원이 존재하는지 여부를 응답합니다
|
|
254
|
+
*/
|
|
255
|
+
export interface IsMemberResponse {
|
|
256
|
+
isMember: boolean;
|
|
257
|
+
/**
|
|
258
|
+
* isMember가 true일 때 정의됩니다
|
|
259
|
+
*/
|
|
260
|
+
type?: MemberType;
|
|
261
|
+
/**
|
|
262
|
+
* member_type이 dealer일 때 정의됩니다
|
|
263
|
+
*/
|
|
264
|
+
dealerType?: MemberDealerType;
|
|
265
|
+
}
|
|
266
|
+
export interface MemberAccountInfo {
|
|
267
|
+
/** 은행코드 문서 참조 */
|
|
268
|
+
bankCode: string;
|
|
269
|
+
/**
|
|
270
|
+
* 계좌번호, (-) 제거 후 전송
|
|
271
|
+
*/
|
|
272
|
+
accountNumber: string;
|
|
273
|
+
/** 계좌주명 */
|
|
274
|
+
ownerName: string;
|
|
275
|
+
/** 사업자등록번호
|
|
276
|
+
* @description 법인계좌(isIndividual is false)일 때에만 정의
|
|
277
|
+
*/
|
|
278
|
+
identifyNumber: string | null;
|
|
279
|
+
/** 법인계좌 / 개인계좌 구분 */
|
|
280
|
+
isIndividual: boolean;
|
|
281
|
+
}
|
|
282
|
+
export interface MemberCashFlowInfo {
|
|
283
|
+
id: number;
|
|
284
|
+
/** 입출금 금액 (-일 경우 출금 (해당 회원에게 돈을 보냈다는 의미)) */
|
|
285
|
+
price: number;
|
|
286
|
+
/** 입출금 내용 */
|
|
287
|
+
content: string;
|
|
288
|
+
/** 해당 입출금 처리 여부 */
|
|
289
|
+
isPaid: boolean;
|
|
290
|
+
/** 푸시 메시지 전송 여부 */
|
|
291
|
+
isSendPush: boolean;
|
|
292
|
+
/** 입금일 (입금 및 출금 요청일이 됩니다) */
|
|
293
|
+
created_at: Date;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* @description 회원가입 API 동작 결과
|
|
297
|
+
*/
|
|
298
|
+
export interface SignupResult {
|
|
299
|
+
/** 회원이 새로 생성되었는지 여부 */
|
|
300
|
+
isCreated: boolean;
|
|
301
|
+
/** 로그인이 성공하였으면 Member를 반환합니다 */
|
|
302
|
+
member: Member | null;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* @description 어드민 - 카매니저 리스트 검색 결과
|
|
306
|
+
* @deprecated
|
|
307
|
+
*/
|
|
308
|
+
export interface Admin_MemberList {
|
|
309
|
+
totalCount: number;
|
|
310
|
+
data: Admin_MemberListData[];
|
|
311
|
+
additionalInfo: Admin_MemberList_AdditionalInfo;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* @description 어드민 - 회원 리스트 검색 결과
|
|
315
|
+
* @deprecated
|
|
316
|
+
*/
|
|
317
|
+
export interface Admin_DealerList {
|
|
318
|
+
totalCount: number;
|
|
319
|
+
data: Admin_DealerListData[];
|
|
320
|
+
additionalInfo: Admin_MemberList_AdditionalInfo;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* @description 어드민이 확인할 수 있는 회원 리스트 내 정보
|
|
324
|
+
* @deprecated
|
|
325
|
+
*/
|
|
326
|
+
export interface Admin_MemberListData extends MemberShort {
|
|
327
|
+
/** 회원가입방법 */
|
|
328
|
+
signupMethod: MemberSignupMethod;
|
|
329
|
+
/** 밴 먹인 시간 */
|
|
330
|
+
banned_at: Date | null;
|
|
331
|
+
/** 푸시메시지 전송 가능 여부 */
|
|
332
|
+
isFcmToken: boolean;
|
|
333
|
+
/** 타입이 카매니저일 때 정의됩니다 */
|
|
334
|
+
dealerInfo?: {
|
|
335
|
+
/** 딜러 타입 (신차, 중고차, 리스렌트) */
|
|
336
|
+
dealerType: MemberDealerType;
|
|
337
|
+
/** 해당 카매니저 가입신청 상태 */
|
|
338
|
+
signupState: MemberDealerSignupState;
|
|
339
|
+
/** 거절 상태이며, 사유가 존재할 경우 정의 */
|
|
340
|
+
rejectMessage: string | null;
|
|
341
|
+
/** 경력 연수 */
|
|
342
|
+
experienceYears: number | null;
|
|
343
|
+
/** 소속 */
|
|
344
|
+
organization: string | null;
|
|
345
|
+
/** 영업 지역 */
|
|
346
|
+
salesArea: Sido[];
|
|
347
|
+
/** 취급 제조사 */
|
|
348
|
+
salesMaker: CarMaker[];
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* @description 어드민이 확인할 수 있는 딜러 리스트 내 정보
|
|
353
|
+
* @deprecated
|
|
354
|
+
*/
|
|
355
|
+
export interface Admin_DealerListData extends MemberShort {
|
|
356
|
+
/** 푸시메시지 전송 가능 여부 */
|
|
357
|
+
isFcmToken: boolean;
|
|
358
|
+
/**
|
|
359
|
+
* 딜러 타입 (신차, 중고차, 리스렌트)
|
|
360
|
+
*/
|
|
361
|
+
dealerType: MemberDealerType;
|
|
362
|
+
/**
|
|
363
|
+
* 해당 카매니저 가입신청 상태
|
|
364
|
+
*/
|
|
365
|
+
signupState: MemberDealerSignupState;
|
|
366
|
+
/**
|
|
367
|
+
* 거절 상태이며, 사유가 존재할 경우 정의
|
|
368
|
+
*/
|
|
369
|
+
rejectMessage: string | null;
|
|
370
|
+
/**
|
|
371
|
+
* 경력 연수
|
|
372
|
+
*/
|
|
373
|
+
experienceYears: number | null;
|
|
374
|
+
/**
|
|
375
|
+
* 소속
|
|
376
|
+
*/
|
|
377
|
+
organization: string | null;
|
|
378
|
+
/**
|
|
379
|
+
* 영업 지역
|
|
380
|
+
*/
|
|
381
|
+
salesArea: Sido[];
|
|
382
|
+
/**
|
|
383
|
+
* 취급 제조사
|
|
384
|
+
*/
|
|
385
|
+
salesMaker: CarMaker[];
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* @description 어드민 - 일반회원 상세정보
|
|
389
|
+
*/
|
|
390
|
+
export interface Admin_CustomerDetailData extends MemberShort {
|
|
391
|
+
deleted_at: Date | null;
|
|
392
|
+
member_setting: MemberSetting;
|
|
393
|
+
signupMethod: MemberSignupMethod;
|
|
394
|
+
member_account: MemberAccountInfo | null;
|
|
395
|
+
customerInfo: CustomerInfo;
|
|
396
|
+
accountInfo?: MemberAccountInfo | null;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* @description 어드민 - 카매니저 상세정보
|
|
400
|
+
*/
|
|
401
|
+
export interface Admin_DealerDetailData extends MemberShort {
|
|
402
|
+
deleted_at: Date | null;
|
|
403
|
+
member_setting: MemberSetting;
|
|
404
|
+
roles: RoleId[];
|
|
405
|
+
signupMethod: MemberSignupMethod;
|
|
406
|
+
member_account: MemberAccountInfo | null;
|
|
407
|
+
member_dealer: DealerInfo;
|
|
408
|
+
/**
|
|
409
|
+
* 카매니저 가입 신청서
|
|
410
|
+
*/
|
|
411
|
+
signupForm: MemberDealerSignupForm | null;
|
|
412
|
+
}
|
|
413
|
+
/** 카매니저 회원가입 Form */
|
|
414
|
+
export interface MemberDealerSignupForm {
|
|
415
|
+
member_id: string;
|
|
416
|
+
state: MemberDealerSignupState;
|
|
417
|
+
experienceYears: number;
|
|
418
|
+
organization: string;
|
|
419
|
+
isCarsayoEmployee: boolean;
|
|
420
|
+
email: string;
|
|
421
|
+
/** 가입 이유 */
|
|
422
|
+
joinReason: string | null;
|
|
423
|
+
/** 신분증 */
|
|
424
|
+
file_idCard: FileInfo | null;
|
|
425
|
+
/** 명함 */
|
|
426
|
+
file_nameCard: FileInfo | null;
|
|
427
|
+
/** 사원증 */
|
|
428
|
+
file_employeeCard: FileInfo | null;
|
|
429
|
+
/** 재직증명서 */
|
|
430
|
+
file_employCertificate: FileInfo | null;
|
|
431
|
+
/** 소속매매상사 사업자등록증 */
|
|
432
|
+
file_businessCertificate: FileInfo | null;
|
|
433
|
+
/** 대출성 금융상품 판매 대리 중개업자 등록증 */
|
|
434
|
+
file_loanSalesCertificate: FileInfo | null;
|
|
435
|
+
/** 매매업종 사업증 유효기간 시작
|
|
436
|
+
* @notice YYYYMMDD 양식 numberString
|
|
437
|
+
*/
|
|
438
|
+
tradingCertificate_term_start: string | null;
|
|
439
|
+
/** 매매업종 사업증 유효기간 종료
|
|
440
|
+
* @notice YYYYMMDD 양식 numberString
|
|
441
|
+
*/
|
|
442
|
+
tradingCertificate_term_finish: string | null;
|
|
443
|
+
/** 거절시 메시지 */
|
|
444
|
+
rejectMessage: string | null;
|
|
445
|
+
submitted_at: Date;
|
|
446
|
+
rejected_at: Date | null;
|
|
447
|
+
accepted_at: Date | null;
|
|
448
|
+
}
|
|
449
|
+
export interface Admin_MemberList_AdditionalInfo {
|
|
450
|
+
/** 요청시 totalMember: true일 경우 정의됩니다 */
|
|
451
|
+
totalMember?: {
|
|
452
|
+
totalCount: number;
|
|
453
|
+
todaySignUp: number;
|
|
454
|
+
};
|
|
455
|
+
/** 요청시 dealerType: true일 경우 정의됩니다 */
|
|
456
|
+
dealerTypeCount?: {
|
|
457
|
+
newcar: number;
|
|
458
|
+
usedcar: number;
|
|
459
|
+
leaseRent: number;
|
|
460
|
+
};
|
|
461
|
+
/** 요청시 signupMethod: true일 경우 정의됩니다 */
|
|
462
|
+
signupMethodCount?: {
|
|
463
|
+
/** 카사요로 가입하기 */
|
|
464
|
+
carsayo: number;
|
|
465
|
+
/** 네이버 소셜 로그인 */
|
|
466
|
+
social_naver: number;
|
|
467
|
+
/** 카카오 소셜 로그인 */
|
|
468
|
+
social_kakao: number;
|
|
469
|
+
/** 구글 소셜 로그인 */
|
|
470
|
+
social_google: number;
|
|
471
|
+
/** 애플 소셜 로그인 */
|
|
472
|
+
social_apple: number;
|
|
473
|
+
/** 관리자 생성 */
|
|
474
|
+
admin: number;
|
|
475
|
+
/** 테스트 계정 */
|
|
476
|
+
testing: number;
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* @description 어드민 - 회원 리스트 검색 결과
|
|
481
|
+
*/
|
|
482
|
+
export interface Admin_MemberList_V2 {
|
|
483
|
+
totalCount: number;
|
|
484
|
+
data: Admin_MemberListData_V2[];
|
|
485
|
+
additionalInfo: Admin_MemberList_AdditionalInfo;
|
|
486
|
+
}
|
|
487
|
+
export interface Admin_MemberListData_V2 extends MemberShort {
|
|
488
|
+
/** 회원가입방법 */
|
|
489
|
+
signupMethod: MemberSignupMethod;
|
|
490
|
+
/** 밴 먹인 시간 */
|
|
491
|
+
banned_at: Date | null;
|
|
492
|
+
/** 회원탈퇴시점 */
|
|
493
|
+
deleted_at: Date | null;
|
|
494
|
+
/** 푸시메시지 전송 가능 여부 */
|
|
495
|
+
isFcmToken: boolean;
|
|
496
|
+
/** 회원탈퇴사유 */
|
|
497
|
+
signoutReason: string | null;
|
|
498
|
+
/** 회원이 등록된 권한 그룹 리스트 */
|
|
499
|
+
roleGroup: RoleGroupId[];
|
|
500
|
+
/** 타입이 카매니저일 때 정의됩니다 */
|
|
501
|
+
customerInfo?: CustomerInfo;
|
|
502
|
+
/** 타입이 카매니저일 때 정의됩니다 */
|
|
503
|
+
dealerInfo?: Admin_MemberListData_DealerInfo;
|
|
504
|
+
}
|
|
505
|
+
export interface Admin_MemberListData_DealerInfo extends DealerInfo {
|
|
506
|
+
/** 회원가입 메시지 */
|
|
507
|
+
joinReason: string | null;
|
|
508
|
+
/** 가입신청서 작성시 첨부한 파일 */
|
|
509
|
+
signupFile: DealerSignupFile;
|
|
510
|
+
}
|
|
511
|
+
export interface DealerSignupFile {
|
|
512
|
+
/** 신분증 */
|
|
513
|
+
idCard?: FileInfo;
|
|
514
|
+
/** 명함 */
|
|
515
|
+
nameCard?: FileInfo;
|
|
516
|
+
/** 사원증 */
|
|
517
|
+
employeeCard?: FileInfo;
|
|
518
|
+
/** 재직증명서 */
|
|
519
|
+
employCertificate?: FileInfo;
|
|
520
|
+
/** 소속매매상사 사업자등록증 */
|
|
521
|
+
businessCertificate?: FileInfo;
|
|
522
|
+
/** 대출성금융상품판매대리중개업자등록증 */
|
|
523
|
+
loanSalesCertificate?: FileInfo;
|
|
524
|
+
}
|
|
525
|
+
export interface PushSmsListData {
|
|
526
|
+
method: "SMS" | "androidPush" | "iosPush";
|
|
527
|
+
type: string;
|
|
528
|
+
content: string;
|
|
529
|
+
created_at: Date;
|
|
530
|
+
}
|
|
531
|
+
export interface PushSmsList {
|
|
532
|
+
totalCount: number;
|
|
533
|
+
data: PushSmsListData[];
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* @description 어드민 - 회원 리스트 검색 결과
|
|
537
|
+
*/
|
|
538
|
+
export interface Admin_MemberList_V3 {
|
|
539
|
+
totalCount: number;
|
|
540
|
+
data: Admin_MemberListData_V3[];
|
|
541
|
+
additionalInfo: Admin_MemberList_AdditionalInfo;
|
|
542
|
+
}
|
|
543
|
+
export interface Admin_MemberListData_V3 extends MemberShort {
|
|
544
|
+
/** 앱에서 최종 로그인한 기기 정보입니다
|
|
545
|
+
* @example android | iOS
|
|
546
|
+
*/
|
|
547
|
+
device: string | null;
|
|
548
|
+
/** 앱에서 최종 로그인한 기기 정보입니다
|
|
549
|
+
* @example SM-G99N
|
|
550
|
+
*/
|
|
551
|
+
model: string | null;
|
|
552
|
+
/** 어드민에서 입력한 메모 내용 */
|
|
553
|
+
memoContent: string | null;
|
|
554
|
+
/** 회원가입방법 */
|
|
555
|
+
signupMethod: MemberSignupMethod;
|
|
556
|
+
/** 밴 먹인 시간 */
|
|
557
|
+
banned_at: Date | null;
|
|
558
|
+
/** 회원탈퇴시점 */
|
|
559
|
+
deleted_at: Date | null;
|
|
560
|
+
/** 푸시메시지 전송 가능 여부 */
|
|
561
|
+
isFcmToken: boolean;
|
|
562
|
+
/** 회원탈퇴사유 */
|
|
563
|
+
signoutReason: string | null;
|
|
564
|
+
/** 회원이 등록된 권한 그룹 리스트 */
|
|
565
|
+
roleGroup: RoleGroupId[];
|
|
566
|
+
/** 타입이 카매니저일 때 정의됩니다 */
|
|
567
|
+
customerInfo?: CustomerInfo;
|
|
568
|
+
/** 타입이 카매니저일 때 정의됩니다 */
|
|
569
|
+
dealerInfo?: Admin_MemberListData_DealerInfo;
|
|
570
|
+
/** 회원 계좌 정보 */
|
|
571
|
+
member_account: MemberAccountInfo | null;
|
|
572
|
+
/** 관리자 정보 */
|
|
573
|
+
adminInfo: AdminInfo | null;
|
|
574
|
+
}
|
|
575
|
+
export interface MemberMemo {
|
|
576
|
+
memberId: string;
|
|
577
|
+
writer: MemberShort;
|
|
578
|
+
type: string;
|
|
579
|
+
content: string;
|
|
580
|
+
created_at: Date;
|
|
581
|
+
updated_at: Date | null;
|
|
582
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @activate 활성회된 계정입니다 (이 계정만 API를 정상적으로 사용할 수 있습니다)
|
|
3
|
+
* @banned 관리자가 밴먹인 계정으로 해당 회원은 어떤 API도 사용할 수 없습니다
|
|
4
|
+
* @combined 접근할 수 없는 계정입니다
|
|
5
|
+
* @missing 연락 두절 상태를 의미합니다
|
|
6
|
+
* @deleted 탈퇴된 계정입니다
|
|
7
|
+
*/
|
|
8
|
+
export declare const MemberState: {
|
|
9
|
+
readonly activate: "activate";
|
|
10
|
+
readonly combined: "combined";
|
|
11
|
+
readonly banned: "banned";
|
|
12
|
+
readonly missing: "missing";
|
|
13
|
+
readonly signout: "signout";
|
|
14
|
+
};
|
|
15
|
+
export type MemberState = keyof typeof MemberState;
|
|
16
|
+
export type MemberGender = "male" | "female";
|
|
17
|
+
export declare const MemberType: {
|
|
18
|
+
readonly customer: "customer";
|
|
19
|
+
readonly dealer: "dealer";
|
|
20
|
+
readonly admin: "admin";
|
|
21
|
+
};
|
|
22
|
+
export type MemberType = keyof typeof MemberType;
|
|
23
|
+
export declare const MemberDealerType: {
|
|
24
|
+
readonly newcar: "newcar";
|
|
25
|
+
readonly usedcar: "usedcar";
|
|
26
|
+
readonly leaseRent: "leaseRent";
|
|
27
|
+
};
|
|
28
|
+
export type MemberDealerType = keyof typeof MemberDealerType;
|
|
29
|
+
export declare const MemberDealerSignupState: {
|
|
30
|
+
readonly submitted: "submitted";
|
|
31
|
+
readonly rejected: "rejected";
|
|
32
|
+
readonly accepted: "accepted";
|
|
33
|
+
};
|
|
34
|
+
export type MemberDealerSignupState = keyof typeof MemberDealerSignupState;
|
|
35
|
+
export declare const SearchMemberListInterval: {
|
|
36
|
+
readonly created_at: "created_at";
|
|
37
|
+
readonly logined_at: "logined_at";
|
|
38
|
+
readonly banned_at: "banned_at";
|
|
39
|
+
};
|
|
40
|
+
export type SearchMemberListInterval = keyof typeof SearchMemberListInterval;
|
|
41
|
+
export declare const SearchMemberSort: {
|
|
42
|
+
readonly created_at: "created_at";
|
|
43
|
+
readonly banned_at: "banned_at";
|
|
44
|
+
};
|
|
45
|
+
export type SearchMemberSort = keyof typeof SearchMemberSort;
|
|
46
|
+
export declare const SearchMemberMode: {
|
|
47
|
+
readonly total: "total";
|
|
48
|
+
readonly customer: "customer";
|
|
49
|
+
readonly leaseRent: "leaseRent";
|
|
50
|
+
readonly newcar: "newcar";
|
|
51
|
+
readonly usedcar: "usedcar";
|
|
52
|
+
readonly banned: "banned";
|
|
53
|
+
readonly missing: "missing";
|
|
54
|
+
readonly dealerSignoutWaiting: "dealerSignoutWaiting";
|
|
55
|
+
readonly dealerSignupWaiting: "dealerSignupWaiting";
|
|
56
|
+
readonly dealerSignupRejected: "dealerSignupRejected";
|
|
57
|
+
};
|
|
58
|
+
export type SearchMemberMode = keyof typeof SearchMemberMode;
|
|
59
|
+
/** 회원가입 방식
|
|
60
|
+
* @carsayo 카사요 일반 회원가입
|
|
61
|
+
* @admin 어드민이 강제로 생성한 회원
|
|
62
|
+
* @social_ 소셜 로그인을 통해 생성
|
|
63
|
+
*/
|
|
64
|
+
export declare const MemberSignupMethod: {
|
|
65
|
+
readonly carsayo: "carsayo";
|
|
66
|
+
readonly admin: "admin";
|
|
67
|
+
readonly testing: "testing";
|
|
68
|
+
readonly social_naver: "social_naver";
|
|
69
|
+
readonly social_kakao: "social_kakao";
|
|
70
|
+
readonly social_google: "social_google";
|
|
71
|
+
readonly social_apple: "social_apple";
|
|
72
|
+
};
|
|
73
|
+
export type MemberSignupMethod = keyof typeof MemberSignupMethod;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** DTO는 서버단에 요청을 보낼 때 사용하는 클래스 유형으로 서버단에서 이 곳에 정의된 대로 유효성 검사를 처리합니다. */
|
|
2
|
+
export declare class NotificationIdDTO {
|
|
3
|
+
notificationId: number;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* @description 알림 리스트 검색
|
|
7
|
+
* @description Offset Paging 방식의 검색
|
|
8
|
+
*/
|
|
9
|
+
export declare class GetNotificationListDTO {
|
|
10
|
+
skip?: number;
|
|
11
|
+
take: number;
|
|
12
|
+
isReaded?: boolean;
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NotificationType } from "./type";
|
|
2
|
+
export interface CarsayoNotification {
|
|
3
|
+
id: number;
|
|
4
|
+
/** 해당 알림 유형 */
|
|
5
|
+
type: NotificationType;
|
|
6
|
+
/** 알림 내용 */
|
|
7
|
+
title: string | null;
|
|
8
|
+
/** 알림 내용 */
|
|
9
|
+
content: string;
|
|
10
|
+
/** 알림 클릭시 리다이렉트할 URL */
|
|
11
|
+
path: {
|
|
12
|
+
app: string | null;
|
|
13
|
+
adminWeb: string | null;
|
|
14
|
+
};
|
|
15
|
+
/** 읽은 알림인지 여부 */
|
|
16
|
+
isReaded: boolean;
|
|
17
|
+
created_at: Date;
|
|
18
|
+
readed_at: Date | null;
|
|
19
|
+
}
|