create-entity-server 0.0.31 → 0.2.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.
Files changed (38) hide show
  1. package/package.json +1 -1
  2. package/template/configs/database.json +18 -7
  3. package/template/entities/README.md +3 -3
  4. package/template/entities/System/Address/addr_dong.json +10115 -0
  5. package/template/entities/System/Address/addr_sido.json +39 -0
  6. package/template/entities/System/Address/addr_sigungu.json +1398 -0
  7. package/template/entities/System/Auth/account.json +0 -64
  8. package/template/entities/System/Auth/account_device.json +7 -22
  9. package/template/entities/System/Auth/account_login_log.json +3 -8
  10. package/template/entities/System/Auth/anon_device.json +56 -0
  11. package/template/scripts/reset-all.sh +78 -5
  12. package/template/scripts/run.sh +73 -27
  13. package/template/configs/auth/oauth.json +0 -40
  14. package/template/configs/auth/password.json +0 -45
  15. package/template/configs/keys/apns.p8.example +0 -7
  16. package/template/configs/keys/firebase.pem.example +0 -7
  17. package/template/configs/notification/push.json +0 -25
  18. package/template/entities/System/Auth/account_oauth.json +0 -74
  19. package/template/entities/System/Auth/identity_verification.json +0 -106
  20. package/template/entities/System/Auth/password_history.json +0 -19
  21. package/template/entities/System/Notification/alimtalk_log.json +0 -65
  22. package/template/entities/System/Notification/alimtalk_msg.json +0 -53
  23. package/template/entities/System/Notification/friendtalk_log.json +0 -89
  24. package/template/entities/System/Notification/friendtalk_msg.json +0 -91
  25. package/template/entities/System/Notification/sms_log.json +0 -65
  26. package/template/entities/System/Notification/sms_msg.json +0 -82
  27. package/template/entities/System/Notification/sms_verification.json +0 -50
  28. package/template/entities/System/Payment/pg_cancel.json +0 -60
  29. package/template/entities/System/Payment/pg_order.json +0 -115
  30. package/template/entities/System/Payment/pg_webhook_log.json +0 -52
  31. package/template/entities/System/Push/push_log.json +0 -86
  32. package/template/entities/System/Push/push_msg.json +0 -56
  33. package/template/templates/email/auth/2fa_disabled.html +0 -23
  34. package/template/templates/email/auth/2fa_recovery_regenerated.html +0 -31
  35. package/template/templates/email/auth/2fa_setup_complete.html +0 -43
  36. package/template/templates/email/auth/welcome.html +0 -18
  37. package/template/templates/email/order/order_confirmation.html +0 -30
  38. /package/template/configs/{notification/smtp.json → smtp.json} +0 -0
@@ -1,74 +0,0 @@
1
- {
2
- "name": "account_oauth",
3
- "description": "소셜 로그인 OAuth 프로바이더 연동 정보. 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "history": false,
5
- "hard_delete": true,
6
- "fields": {
7
- "account_seq": {
8
- "index": true,
9
- "required": true,
10
- "comment": "계정 seq"
11
- },
12
- "provider": {
13
- "index": true,
14
- "type": [
15
- "google",
16
- "github",
17
- "naver",
18
- "kakao",
19
- "apple"
20
- ],
21
- "required": true
22
- },
23
- "provider_id": {
24
- "index": true,
25
- "type": "string",
26
- "required": true,
27
- "comment": "프로바이더 고유 사용자 ID"
28
- },
29
- "status": {
30
- "index": true,
31
- "type": [
32
- "active",
33
- "unlinked"
34
- ],
35
- "default": "active"
36
- },
37
- "email": {
38
- "type": "email",
39
- "comment": "프로바이더에서 제공한 이메일"
40
- },
41
- "name": {
42
- "type": "string",
43
- "comment": "프로바이더에서 제공한 이름"
44
- },
45
- "profile_image": {
46
- "type": "string",
47
- "comment": "프로필 이미지 URL"
48
- },
49
- "access_token": {
50
- "type": "string",
51
- "comment": "OAuth access token (암호화 저장)"
52
- },
53
- "refresh_token": {
54
- "type": "string",
55
- "comment": "OAuth refresh token (암호화 저장)"
56
- },
57
- "token_expires_at": {
58
- "type": "string",
59
- "comment": "access token 만료 시각 (RFC3339)"
60
- },
61
- "raw": {
62
- "type": "json",
63
- "comment": "프로바이더 원본 응답 (디버깅용)"
64
- },
65
- "linked_at": {
66
- "type": "string",
67
- "comment": "연결 시각"
68
- },
69
- "unlinked_at": {
70
- "type": "string",
71
- "comment": "연결 해제 시각"
72
- }
73
- }
74
- }
@@ -1,106 +0,0 @@
1
- {
2
- "name": "identity_verification",
3
- "description": "휴대폰 본인인증 요청 및 결과 저장. 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "history": false,
5
- "hard_delete": false,
6
- "compress": true,
7
- "fields": {
8
- "request_id": {
9
- "index": true,
10
- "type": "string",
11
- "required": true,
12
- "unique": true,
13
- "comment": "인증 요청 고유 ID (32바이트 hex)"
14
- },
15
- "status": {
16
- "index": true,
17
- "type": [
18
- "pending",
19
- "verified",
20
- "failed",
21
- "expired"
22
- ],
23
- "default": "pending"
24
- },
25
- "purpose": {
26
- "index": true,
27
- "type": [
28
- "signup",
29
- "find_account",
30
- "password_reset",
31
- "adult_verify",
32
- "identity_change"
33
- ],
34
- "required": true
35
- },
36
- "provider": {
37
- "index": true,
38
- "type": [
39
- "nice",
40
- "kmc",
41
- "danal"
42
- ],
43
- "required": true
44
- },
45
- "ci_hash": {
46
- "type": "string",
47
- "comment": "CI의 SHA-256 해시 (중복 조회용)"
48
- },
49
- "di": {
50
- "type": "string",
51
- "comment": "DI 원문 (암호화 저장)"
52
- },
53
- "name": {
54
- "type": "string",
55
- "comment": "인증된 실명"
56
- },
57
- "birth_date": {
58
- "type": "string",
59
- "comment": "생년월일 (YYYYMMDD)"
60
- },
61
- "gender": {
62
- "type": "string",
63
- "comment": "성별 (M/F)"
64
- },
65
- "carrier": {
66
- "type": "string",
67
- "comment": "통신사 코드"
68
- },
69
- "phone": {
70
- "type": "string",
71
- "comment": "인증 휴대폰 번호"
72
- },
73
- "nationality": {
74
- "type": "string",
75
- "comment": "내/외국인 (local/foreign)"
76
- },
77
- "account_seq": {
78
- "type": "int",
79
- "comment": "연결된 계정 seq (인증 완료 후 설정)"
80
- },
81
- "ip_address": {
82
- "type": "string",
83
- "comment": "요청 IP 주소"
84
- },
85
- "user_agent": {
86
- "type": "string",
87
- "comment": "요청 User-Agent"
88
- },
89
- "verified_at": {
90
- "type": "string",
91
- "comment": "인증 완료 시각 (RFC3339)"
92
- },
93
- "expires_at": {
94
- "type": "string",
95
- "comment": "요청 만료 시각 (RFC3339)"
96
- },
97
- "error_message": {
98
- "type": "string",
99
- "comment": "실패 시 에러 메시지"
100
- },
101
- "raw_response": {
102
- "type": "json",
103
- "comment": "중계사 원본 응답 (디버깅용, 암호화)"
104
- }
105
- }
106
- }
@@ -1,19 +0,0 @@
1
- {
2
- "name": "password_history",
3
- "description": "비밀번호 변경 이력 (재사용 금지 정책용) 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "hard_delete": true,
5
- "fields": {
6
- "account_seq": {
7
- "index": true,
8
- "comment": "계정 seq",
9
- "type": "integer",
10
- "required": true
11
- },
12
- "passwd_hash": {
13
- "comment": "변경 시점의 비밀번호 해시 (salt 포함)"
14
- },
15
- "changed_time": {
16
- "comment": "비밀번호 변경 시각"
17
- }
18
- }
19
- }
@@ -1,65 +0,0 @@
1
- {
2
- "name": "alimtalk_log",
3
- "description": "알림톡 발송 로그 — 워커가 소비하는 DB 큐 역할을 합니다. 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "history": false,
5
- "read_only": true,
6
- "compress": true,
7
- "fields": {
8
- "status": {
9
- "index": true,
10
- "type": [
11
- "pending",
12
- "processing",
13
- "sent",
14
- "delivered",
15
- "failed",
16
- "expired"
17
- ],
18
- "default": "pending",
19
- "comment": "발송 상태 (delivered = 프로바이더 수신 확인)"
20
- },
21
- "template_code": {
22
- "index": true,
23
- "comment": "카카오 알림톡 템플릿 코드",
24
- "required": true
25
- },
26
- "receiver": {
27
- "index": true,
28
- "hash": true,
29
- "comment": "수신자 전화번호",
30
- "required": true
31
- },
32
- "alimtalk_msg_seq": {
33
- "index": true,
34
- "comment": "alimtalk_msg 참조 seq"
35
- },
36
- "template_name": {
37
- "comment": "내부 템플릿 이름"
38
- },
39
- "variables_json": {
40
- "type": "text",
41
- "comment": "템플릿 변수 JSON"
42
- },
43
- "provider": {
44
- "comment": "사용 프로바이더"
45
- },
46
- "provider_msg_id": {
47
- "comment": "프로바이더 메시지 ID"
48
- },
49
- "error_message": {
50
- "type": "text",
51
- "comment": "오류 메시지"
52
- },
53
- "retry_count": {
54
- "type": "uint",
55
- "default": 0
56
- },
57
- "sent_at": {
58
- "type": "string"
59
- },
60
- "delivered_at": {
61
- "type": "string",
62
- "comment": "프로바이더 수신 확인 시각"
63
- }
64
- }
65
- }
@@ -1,53 +0,0 @@
1
- {
2
- "name": "alimtalk_msg",
3
- "description": "알림톡 발송 트리거 엔티티 — Hook 또는 API를 통해 생성되면 알림톡 발송이 시작됩니다. 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "history": false,
5
- "fields": {
6
- "template_code": {
7
- "index": true,
8
- "comment": "카카오 알림톡 템플릿 코드",
9
- "required": true
10
- },
11
- "receiver": {
12
- "index": true,
13
- "hash": true,
14
- "comment": "수신자 전화번호",
15
- "required": true
16
- },
17
- "status": {
18
- "index": true,
19
- "type": [
20
- "pending",
21
- "processing",
22
- "sent",
23
- "delivered",
24
- "failed"
25
- ],
26
- "default": "pending",
27
- "comment": "발송 상태 (delivered = 프로바이더 수신 확인)"
28
- },
29
- "variables_json": {
30
- "type": "text",
31
- "comment": "템플릿 변수 JSON (#{key} 바인딩)"
32
- },
33
- "provider": {
34
- "comment": "프로바이더 키 (빈 값이면 default)"
35
- },
36
- "ref_entity": {
37
- "comment": "참조 엔티티 이름"
38
- },
39
- "ref_seq": {
40
- "type": "int"
41
- }
42
- },
43
- "hooks": {
44
- "after_insert": [
45
- {
46
- "type": "alimtalk",
47
- "alimtalk_receiver": "${new.receiver}",
48
- "alimtalk_template_code": "${new.template_code}",
49
- "alimtalk_variables": "${new.variables_json}"
50
- }
51
- ]
52
- }
53
- }
@@ -1,89 +0,0 @@
1
- {
2
- "name": "friendtalk_log",
3
- "description": "친구톡(브랜드메시지) 발송 로그 — 워커가 소비하는 DB 큐 역할을 합니다. 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "history": false,
5
- "read_only": true,
6
- "compress": true,
7
- "fields": {
8
- "status": {
9
- "index": true,
10
- "type": [
11
- "pending",
12
- "processing",
13
- "sent",
14
- "failed",
15
- "expired"
16
- ],
17
- "default": "pending",
18
- "comment": "발송 상태"
19
- },
20
- "msg_type": {
21
- "index": true,
22
- "type": [
23
- "text",
24
- "image",
25
- "wide_image",
26
- "wide_item_list",
27
- "carousel"
28
- ],
29
- "default": "text"
30
- },
31
- "receiver": {
32
- "index": true,
33
- "hash": true,
34
- "comment": "수신자 전화번호",
35
- "required": true
36
- },
37
- "friendtalk_msg_seq": {
38
- "index": true,
39
- "comment": "friendtalk_msg 참조 seq"
40
- },
41
- "content": {
42
- "type": "text",
43
- "comment": "메시지 본문"
44
- },
45
- "image_url": {
46
- "comment": "이미지 URL"
47
- },
48
- "image_link": {
49
- "comment": "이미지 클릭 시 이동 URL"
50
- },
51
- "is_ad": {
52
- "type": "bool",
53
- "default": true,
54
- "comment": "광고성 메시지 여부"
55
- },
56
- "buttons_json": {
57
- "type": "text",
58
- "comment": "버튼 목록 JSON"
59
- },
60
- "carousel_json": {
61
- "type": "text",
62
- "comment": "캐러셀 데이터 JSON"
63
- },
64
- "items_json": {
65
- "type": "text",
66
- "comment": "와이드 아이템 리스트 JSON"
67
- },
68
- "header": {
69
- "comment": "와이드 아이템 리스트 헤더"
70
- },
71
- "provider": {
72
- "comment": "사용 프로바이더"
73
- },
74
- "provider_msg_id": {
75
- "comment": "프로바이더 메시지 ID"
76
- },
77
- "error_message": {
78
- "type": "text",
79
- "comment": "오류 메시지"
80
- },
81
- "retry_count": {
82
- "type": "uint",
83
- "default": 0
84
- },
85
- "sent_at": {
86
- "type": "string"
87
- }
88
- }
89
- }
@@ -1,91 +0,0 @@
1
- {
2
- "name": "friendtalk_msg",
3
- "description": "친구톡(브랜드메시지) 발송 트리거 엔티티 — Hook 또는 API를 통해 생성되면 친구톡 발송이 시작됩니다. 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "history": false,
5
- "fields": {
6
- "receiver": {
7
- "index": true,
8
- "hash": true,
9
- "comment": "수신자 전화번호",
10
- "required": true
11
- },
12
- "msg_type": {
13
- "index": true,
14
- "type": [
15
- "text",
16
- "image",
17
- "wide_image",
18
- "wide_item_list",
19
- "carousel"
20
- ],
21
- "default": "text"
22
- },
23
- "status": {
24
- "index": true,
25
- "type": [
26
- "pending",
27
- "processing",
28
- "sent",
29
- "failed"
30
- ],
31
- "default": "pending"
32
- },
33
- "content": {
34
- "type": "text",
35
- "required": true,
36
- "comment": "메시지 본문"
37
- },
38
- "image_url": {
39
- "comment": "이미지 URL"
40
- },
41
- "image_link": {
42
- "comment": "이미지 클릭 시 이동 URL"
43
- },
44
- "is_ad": {
45
- "type": "bool",
46
- "default": true,
47
- "comment": "광고성 메시지 여부"
48
- },
49
- "buttons_json": {
50
- "type": "text",
51
- "comment": "버튼 목록 JSON"
52
- },
53
- "carousel_json": {
54
- "type": "text",
55
- "comment": "캐러셀 데이터 JSON"
56
- },
57
- "items_json": {
58
- "type": "text",
59
- "comment": "와이드 아이템 리스트 JSON"
60
- },
61
- "header": {
62
- "comment": "와이드 아이템 리스트 헤더"
63
- },
64
- "provider": {
65
- "comment": "프로바이더 키 (빈 값이면 default)"
66
- },
67
- "ref_entity": {
68
- "comment": "참조 엔티티 이름"
69
- },
70
- "ref_seq": {
71
- "type": "int"
72
- }
73
- },
74
- "hooks": {
75
- "after_insert": [
76
- {
77
- "type": "friendtalk",
78
- "friendtalk_receiver": "${new.receiver}",
79
- "friendtalk_content": "${new.content}",
80
- "friendtalk_msg_type": "${new.msg_type}",
81
- "friendtalk_image_url": "${new.image_url}",
82
- "friendtalk_image_link": "${new.image_link}",
83
- "friendtalk_is_ad": "${new.is_ad}",
84
- "friendtalk_buttons_json": "${new.buttons_json}",
85
- "friendtalk_carousel_json": "${new.carousel_json}",
86
- "friendtalk_items_json": "${new.items_json}",
87
- "friendtalk_header": "${new.header}"
88
- }
89
- ]
90
- }
91
- }
@@ -1,65 +0,0 @@
1
- {
2
- "name": "sms_log",
3
- "description": "SMS/LMS/MMS 발송 이력 로그. 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "license_scope": false,
5
- "hard_delete": true,
6
- "history": false,
7
- "read_only": true,
8
- "compress": true,
9
- "fields": {
10
- "status": {
11
- "index": true,
12
- "type": [
13
- "pending",
14
- "processing",
15
- "sent",
16
- "failed"
17
- ]
18
- },
19
- "msg_type": {
20
- "index": true,
21
- "type": [
22
- "sms",
23
- "lms",
24
- "mms"
25
- ]
26
- },
27
- "receiver": {
28
- "index": true,
29
- "hash": true,
30
- "type": "string"
31
- },
32
- "sms_msg_seq": {
33
- "index": true,
34
- "comment": "sms_msg 참조 seq"
35
- },
36
- "sender": {
37
- "type": "string"
38
- },
39
- "subject": {
40
- "type": "string"
41
- },
42
- "content": {
43
- "type": "string"
44
- },
45
- "image_url": {
46
- "type": "string",
47
- "comment": "MMS 이미지 URL"
48
- },
49
- "provider": {
50
- "type": "string"
51
- },
52
- "provider_msg_id": {
53
- "type": "string"
54
- },
55
- "error_message": {
56
- "type": "string"
57
- },
58
- "retry_count": {
59
- "type": "uint"
60
- },
61
- "sent_at": {
62
- "type": "string"
63
- }
64
- }
65
- }
@@ -1,82 +0,0 @@
1
- {
2
- "name": "sms_msg",
3
- "description": "SMS/LMS/MMS 발송 트리거 엔티티. insert 시 sms hook으로 비동기 발송. 사용자 환경에 맞게 fields를 자유롭게 확장할 수 있습니다.",
4
- "license_scope": false,
5
- "hard_delete": true,
6
- "history": false,
7
- "read_only": true,
8
- "fields": {
9
- "status": {
10
- "index": true,
11
- "type": [
12
- "queued",
13
- "sent",
14
- "failed"
15
- ],
16
- "default": "queued"
17
- },
18
- "msg_type": {
19
- "index": true,
20
- "type": [
21
- "sms",
22
- "lms",
23
- "mms"
24
- ],
25
- "default": "sms"
26
- },
27
- "receiver": {
28
- "index": true,
29
- "hash": true,
30
- "type": "string",
31
- "required": true,
32
- "comment": "수신 전화번호"
33
- },
34
- "sender": {
35
- "type": "string",
36
- "comment": "발신번호"
37
- },
38
- "subject": {
39
- "type": "string",
40
- "comment": "LMS/MMS 제목 (SMS는 미사용)"
41
- },
42
- "content": {
43
- "type": "string",
44
- "comment": "메시지 본문"
45
- },
46
- "image_url": {
47
- "type": "string",
48
- "comment": "MMS 이미지 URL"
49
- },
50
- "provider": {
51
- "type": "string",
52
- "comment": "발송 프로바이더 키"
53
- },
54
- "provider_msg_id": {
55
- "type": "string",
56
- "comment": "프로바이더 메시지 ID"
57
- },
58
- "ref_entity": {
59
- "type": "string"
60
- },
61
- "ref_seq": {
62
- "type": "int"
63
- },
64
- "error_message": {
65
- "type": "string"
66
- },
67
- "sent_at": {
68
- "type": "string"
69
- }
70
- },
71
- "hooks": {
72
- "after_insert": [
73
- {
74
- "type": "sms",
75
- "enabled": true,
76
- "sms_receiver": "${new.receiver}",
77
- "sms_content": "${new.content}",
78
- "sms_subject": "${new.subject}"
79
- }
80
- ]
81
- }
82
- }