@dalmore/api-contracts 1.0.6 → 1.0.7
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/contracts/clients/index.d.ts +19 -0
- package/index.mjs +4 -1
- package/package.json +4 -4
- package/src/common/types/account-contact.types.ts +0 -98
- package/src/common/types/account-detail.types.ts +0 -27
- package/src/common/types/account-integration.types.ts +0 -143
- package/src/common/types/account-manager.types.ts +0 -124
- package/src/common/types/account.types.ts +0 -296
- package/src/common/types/activity.types.ts +0 -274
- package/src/common/types/address.spec.ts +0 -203
- package/src/common/types/address.types.ts +0 -41
- package/src/common/types/aic.types.ts +0 -246
- package/src/common/types/aml.types.ts +0 -18
- package/src/common/types/api-key-logs.types.ts +0 -66
- package/src/common/types/api-keys.types.ts +0 -69
- package/src/common/types/asset.types.ts +0 -338
- package/src/common/types/auth.types.ts +0 -370
- package/src/common/types/batch-jobs.types.ts +0 -151
- package/src/common/types/bonus-tier.types.ts +0 -147
- package/src/common/types/cart.types.ts +0 -18
- package/src/common/types/checklist-items.types.ts +0 -70
- package/src/common/types/checklist.types.ts +0 -97
- package/src/common/types/common.types.spec.ts +0 -336
- package/src/common/types/common.types.ts +0 -1520
- package/src/common/types/comply-advantage-api.types.ts +0 -316
- package/src/common/types/comply-advantage.types.ts +0 -25
- package/src/common/types/contact-us.types.ts +0 -107
- package/src/common/types/contract-helpers.ts +0 -205
- package/src/common/types/countries.types.ts +0 -375
- package/src/common/types/covered-person.types.ts +0 -274
- package/src/common/types/dashboard.types.ts +0 -799
- package/src/common/types/data-record.types.ts +0 -325
- package/src/common/types/data-room.types.ts +0 -242
- package/src/common/types/default-theme-config.types.ts +0 -87
- package/src/common/types/disbursement-adjustment.types.ts +0 -32
- package/src/common/types/disbursement-approval-user.types.ts +0 -100
- package/src/common/types/disbursement-review.types.ts +0 -110
- package/src/common/types/disbursement-transaction.types.ts +0 -72
- package/src/common/types/disbursements.types.ts +0 -310
- package/src/common/types/domain-filter.types.ts +0 -55
- package/src/common/types/email-theme.types.ts +0 -442
- package/src/common/types/entity.types.ts +0 -15
- package/src/common/types/error-responses.types.ts +0 -135
- package/src/common/types/escrow-account.types.ts +0 -104
- package/src/common/types/exchange-api-key.types.ts +0 -121
- package/src/common/types/exchange-import.types.ts +0 -36
- package/src/common/types/exchange-provider.types.ts +0 -329
- package/src/common/types/file.types.ts +0 -461
- package/src/common/types/files.types.spec.ts +0 -154
- package/src/common/types/health.types.ts +0 -29
- package/src/common/types/index.ts +0 -48
- package/src/common/types/individuals.types.ts +0 -554
- package/src/common/types/investor-account.types.ts +0 -1239
- package/src/common/types/investorAccountIdSchema.type.ts +0 -0
- package/src/common/types/investors-offering.types.ts +0 -65
- package/src/common/types/invite.types.ts +0 -133
- package/src/common/types/issuer-bank-account.types.ts +0 -107
- package/src/common/types/issuer-offering.types.ts +0 -306
- package/src/common/types/issuer-payment-method.types.spec.ts +0 -612
- package/src/common/types/issuer-payment-method.types.ts +0 -341
- package/src/common/types/issuer.types.ts +0 -312
- package/src/common/types/job-item.types.ts +0 -119
- package/src/common/types/jobs.types.ts +0 -171
- package/src/common/types/kyb.types.ts +0 -53
- package/src/common/types/kyc.types.ts +0 -188
- package/src/common/types/legal-entity.types.ts +0 -185
- package/src/common/types/login-history.types.ts +0 -46
- package/src/common/types/mail-template.types.ts +0 -436
- package/src/common/types/north-cap-integration.types.ts +0 -190
- package/src/common/types/note.types.ts +0 -109
- package/src/common/types/notification.types.ts +0 -58
- package/src/common/types/notion-api.types.ts +0 -374
- package/src/common/types/notion-database.types.ts +0 -125
- package/src/common/types/notion-page.types.ts +0 -267
- package/src/common/types/offering-reports.types.ts +0 -153
- package/src/common/types/offering-submission.types.ts +0 -314
- package/src/common/types/offering.types.spec.ts +0 -91
- package/src/common/types/offering.types.ts +0 -590
- package/src/common/types/page-revision.types.ts +0 -86
- package/src/common/types/page.types.ts +0 -436
- package/src/common/types/password.type.ts +0 -15
- package/src/common/types/payment-methods.types.ts +0 -298
- package/src/common/types/phone.spec.ts +0 -76
- package/src/common/types/phone.type.ts +0 -27
- package/src/common/types/portfolio.types.ts +0 -50
- package/src/common/types/privacy-policy-and-tos.types.ts +0 -231
- package/src/common/types/queue.types.ts +0 -112
- package/src/common/types/registered-reps.types.ts +0 -25
- package/src/common/types/rejection-reasons.types.ts +0 -56
- package/src/common/types/reminder-config.types.ts +0 -40
- package/src/common/types/review.types.ts +0 -133
- package/src/common/types/role.types.ts +0 -26
- package/src/common/types/secondary-customer.types.ts +0 -66
- package/src/common/types/secondary-issuer.types.ts +0 -50
- package/src/common/types/secondary-order.types.ts +0 -58
- package/src/common/types/secondary-security.types.ts +0 -60
- package/src/common/types/secondary-trade.entity.ts +0 -16
- package/src/common/types/secondary-trade.types.ts +0 -95
- package/src/common/types/secure-request.types.ts +0 -68
- package/src/common/types/signer.types.ts +0 -651
- package/src/common/types/site-link.types.spec.ts +0 -134
- package/src/common/types/site-link.types.ts +0 -166
- package/src/common/types/site-settings.types.ts +0 -726
- package/src/common/types/site.types.ts +0 -270
- package/src/common/types/sms.types.ts +0 -30
- package/src/common/types/state-machine.types.ts +0 -177
- package/src/common/types/states.types.ts +0 -163
- package/src/common/types/subdoc-preview.types.ts +0 -35
- package/src/common/types/task.types.ts +0 -258
- package/src/common/types/trade-adjustment.type.ts +0 -33
- package/src/common/types/trade-line-item.type.ts +0 -132
- package/src/common/types/trade.types.ts +0 -929
- package/src/common/types/transaction.types.ts +0 -198
- package/src/common/types/trusted-contact.types.ts +0 -122
- package/src/common/types/typography.types.ts +0 -75
- package/src/common/types/user-manual.types.ts +0 -290
- package/src/common/types/user-setting.types.ts +0 -133
- package/src/common/types/user.types.ts +0 -320
- package/src/common/types/webhook.types.ts +0 -588
- package/src/common/types/zip.type.ts +0 -36
- package/src/contracts/clients/accounts/index.ts +0 -61
- package/src/contracts/clients/aic/index.ts +0 -59
- package/src/contracts/clients/api-key-logs/index.ts +0 -53
- package/src/contracts/clients/api-keys/index.ts +0 -73
- package/src/contracts/clients/assets/index.ts +0 -102
- package/src/contracts/clients/auth/index.ts +0 -50
- package/src/contracts/clients/files/index.ts +0 -166
- package/src/contracts/clients/files-public/index.ts +0 -166
- package/src/contracts/clients/index.ts +0 -44
- package/src/contracts/clients/individuals/index.ts +0 -93
- package/src/contracts/clients/investor-accounts/index.ts +0 -93
- package/src/contracts/clients/issuers/index.ts +0 -94
- package/src/contracts/clients/legal-entities/index.ts +0 -93
- package/src/contracts/clients/offerings/index.ts +0 -117
- package/src/contracts/clients/secure-requests/index.ts +0 -34
- package/src/contracts/clients/sites/index.ts +0 -56
- package/src/contracts/clients/trades/index.ts +0 -122
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
export const PRIVACY_POLICY_DATA = `
|
|
2
|
-
<p>Privacy Policy</p>
|
|
3
|
-
<p><br></p>
|
|
4
|
-
<p>Dalmore Group, LLC is committed to maintaining the trust and confidence of our clients. We want you to understand how we protect your privacy when we collect and use your nonpublic personal information ("personal information") in the course of business, as well as the measures we take to safeguard your personal information. Keeping personal information secure and private is a priority at Dalmore Group, LLC</p>
|
|
5
|
-
<p><br></p>
|
|
6
|
-
<p><strong>HOW WE COLLECT YOUR PERSONAL INFORMATION</strong></p>
|
|
7
|
-
<p>While providing service to you, we collect personal information from the following sources:</p>
|
|
8
|
-
<p><br></p>
|
|
9
|
-
<p>Client Intake forms and other standard forms related to your accounts. Examples of information collected include your name, address, Social Security number, assets, types and amounts of investments, transactions and income.</p>
|
|
10
|
-
<p><br></p>
|
|
11
|
-
<p>Consumer reporting agencies, including information concerning your credit worthiness and credit history.</p>
|
|
12
|
-
<p><br></p>
|
|
13
|
-
<p>Information obtained from third parties when verifying applications or other forms. This may be obtained from your current or past employers or from other institutions with which you conduct financial transactions.</p>
|
|
14
|
-
<p><br></p>
|
|
15
|
-
<p>Keeping your information secure is one of our most important responsibilities. We restrict access to your personal information to those employees and agents who assist us in providing products or services to you. We maintain physical, electronic and procedural safeguards that comply with applicable law to protect your personal information. We train our employees in the proper handling of personal information. When we use other companies to help provide our services to you, we require them to protect the confidentiality of personal information they receive.</p>
|
|
16
|
-
<p><br></p>
|
|
17
|
-
<p><strong>USE OF "COOKIES"</strong></p>
|
|
18
|
-
<p>We may occasionally use a "cookie" in order to provide better service to you, to facilitate your use of our website, to track usage of the website, and to address security issues. (A cookie is a small piece of information that a website stores on a personal computer and can be retrieved later.) We may use cookies for administrative purposes, such as to store your preference for certain kinds of information. None will contain information that will enable anyone to contact you via telephone, email, or any other means. If you are uncomfortable with the use of cookie technology, you can set your computer's browser to decline cookies. However, if you refuse cookies, you may be unable to utilize certain features of our website, and you may experience performance issues with our website.</p>
|
|
19
|
-
<p><br></p>
|
|
20
|
-
<p><strong>DISCLOSING PERSONAL INFORMATION TO NON-AFFILIATED THIRD PARTIES</strong></p>
|
|
21
|
-
<p>We do not sell, share or disclose your personal information to non-affiliated third-party marketing companies, except personal information we share with other financial institutions pursuant to joint marketing agreements we enter into with them.</p>
|
|
22
|
-
<p><br></p>
|
|
23
|
-
<p>We may disclose all of the information we collect, as described above in the section captioned "How We Collect Your Personal Information," to companies that perform marketing or other services on our behalf and to other financial institutions with which we have joint marketing agreements. All of these companies are contractually obligated to keep the information that we provide confidential and use the information only to provide the services as allowed by applicable law or regulation. They are not permitted to share or use the information for any other purpose. We may also disclose all of the information we collect to our affiliates, as described above in the section captioned "How We Collect Your Personal Information." To the extent that state laws grant you greater in with our sharing of your will comply with those laws.</p>
|
|
24
|
-
<p><br></p>
|
|
25
|
-
<p>We may also disclose your personal information as permitted or required by law. These disclosures may include, for example, information to process transactions on your behalf, to conduct our operations, to follow your instructions as you authorize, or to protect the security of your financial records.</p>
|
|
26
|
-
<p><br></p>
|
|
27
|
-
<p><strong>DISCLOSING PERSONAL INFORMATION TO AFFILIATES</strong></p>
|
|
28
|
-
<p>We do not share your personal information with other organizations for marketing purposes.</p>
|
|
29
|
-
<p><br></p>
|
|
30
|
-
<p>IF YOUR RELATIONSHIP WITH US ENDS</p>
|
|
31
|
-
<p>If your relationship with us ends, we will continue to treat personal information in accordance with this Privacy Notice. That means that we may continue to share your personal information with our lending partners and affiliates as described above or permitted by law. However, if you notify us of your election not to have us share your personal information with others before or after your relationship with us ends, we will honor that request.</p>
|
|
32
|
-
<p><br></p>
|
|
33
|
-
<p><strong>CHANGES TO OUR PRIVACY POLICY NOTICES</strong></p>
|
|
34
|
-
<p>We reserve the right to amend (that is, to add to, delete from, or change) the terms of this Privacy Notice from time to time. Our Privacy Notice, as in effect from time to time, is continually posted on our website. By electing to become one of our customers or by receiving our products and related services, you agree to receive copies of our Privacy Notice and any amendments to it from our website, unless you notify us otherwise in writing at the address provided below.</p>
|
|
35
|
-
<p><br></p>
|
|
36
|
-
<p><strong>VIEW AND CHANGE YOUR PERSONAL INFORMATION</strong></p>
|
|
37
|
-
<p>You can review your personal information and make any needed corrections to it by contacting us in writing at the address listed below.</p>
|
|
38
|
-
<p><br></p>
|
|
39
|
-
<p><strong>CONTACT AND RIGHT TO ACCESS AND CORRECT INFORMATION</strong></p>
|
|
40
|
-
<p>You may write to us at the address listed below with any questions you may have about your personal information. You may see and copy the personal information that we have about you in person. If you prefer, we will copy and send it to you. If you think the personal information that we have in our files is incomplete or incorrect, you may request that we complete or correct the disputed personal information. We will review your request. We will either or explain why we did not do so. If we do not make the change, you may file a written statement of dispute with us. We will include the written dispute in future disclosures of that personal information. We will send the written dispute to anyone you ask who received your personal information from us in the past two years. To exercise these rights, please send us a written request. Please include your name, address, account number, daytime phone number, and the personal information that you would like access to or that you believe needs correction. We may charge a small fee to collect and send the personal information to you. To protect your personal information, we may ask you to verify your identity and to provide other details to respond to your request.</p>
|
|
41
|
-
<p><br></p>
|
|
42
|
-
<p>Our mailing address for purposes of this Privacy Notice is:</p>
|
|
43
|
-
<p>Dalmore Group, LLC</p>
|
|
44
|
-
<p>525 Green Place</p>
|
|
45
|
-
<p>Woodmere, NY 11598</p>
|
|
46
|
-
<p><br></p>
|
|
47
|
-
<p>Questions related to the protection of your Social Security number or your other personally identifiable information may be sent to this address as well.</p>
|
|
48
|
-
<p><br></p>
|
|
49
|
-
<p>Dalmore Group, LLC is a Registered Broker Dealer (Member of FINRA and SIPC)</p>
|
|
50
|
-
`;
|
|
51
|
-
|
|
52
|
-
export const TERMS_OF_SERVICE_DATA = `
|
|
53
|
-
<p><strong>Effective Date:</strong> 9/1/25<br><strong>Last Updated:</strong> 9/1/25</p>
|
|
54
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">1. Acceptance of Terms</h2>
|
|
55
|
-
<p>By accessing or using Dalmore Direct ("Platform," "we," "us," or "our"), you agree to be bound by these Terms of Service ("Terms"). If you do not agree to these Terms, you may not use our Platform.</p>
|
|
56
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">2. Description of Service</h2>
|
|
57
|
-
<p>Dalmore Direct is a crowdfunding platform that connects project issuers ("Issuers") with investors ("Investors") to fund creative projects, products, and ventures. We provide the technology and services to facilitate these connections but are not a party to the agreements between Issuers and Investors. In some cases we might provide Broker Dealer services as well.</p>
|
|
58
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">3. User Accounts</h2>
|
|
59
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">3.1 Account Creation</h3>
|
|
60
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
61
|
-
<li>You must be at least 18 years old to create an account</li>
|
|
62
|
-
<li>You must provide accurate and complete information</li>
|
|
63
|
-
<li>You are responsible for maintaining the security of your account</li>
|
|
64
|
-
<li>One person or entity may not maintain more than one account</li>
|
|
65
|
-
</ul>
|
|
66
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">3.2 Account Responsibilities</h3>
|
|
67
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
68
|
-
<li>You are responsible for all activities under your account</li>
|
|
69
|
-
<li>You must notify us immediately of any unauthorized use</li>
|
|
70
|
-
<li>We reserve the right to suspend or terminate accounts at our discretion</li>
|
|
71
|
-
</ul>
|
|
72
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">4. Creator Responsibilities</h2>
|
|
73
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">4.1 Project Requirements</h3>
|
|
74
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
75
|
-
<li>Projects must be legal and comply with our Community Guidelines</li>
|
|
76
|
-
<li>Issuers must deliver rewards as promised or provide appropriate updates</li>
|
|
77
|
-
<li>Projects cannot involve prohibited items (weapons, drugs, adult content, etc.)</li>
|
|
78
|
-
<li>Issuers must be transparent about risks and challenges</li>
|
|
79
|
-
</ul>
|
|
80
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">4.2 Funding and Fees</h3>
|
|
81
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
82
|
-
<li>Payment processing fees apply as disclosed</li>
|
|
83
|
-
<li>Funds are released according to our payment schedule</li>
|
|
84
|
-
<li>Issuers are responsible for all taxes and legal obligations</li>
|
|
85
|
-
</ul>
|
|
86
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">4.3 Creator Obligations</h3>
|
|
87
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
88
|
-
<li>Provide regular project updates to Investors</li>
|
|
89
|
-
<li>Fulfill rewards in a timely manner</li>
|
|
90
|
-
<li>Respond to backer inquiries reasonably</li>
|
|
91
|
-
<li>Use funds primarily for the stated project purpose</li>
|
|
92
|
-
</ul>
|
|
93
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">5. Backer Responsibilities</h2>
|
|
94
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">5.1 Backing Projects</h3>
|
|
95
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
96
|
-
<li>Backing a project is not a purchase but a pledge to support a creative work</li>
|
|
97
|
-
<li>Rewards are not guaranteed and may not be delivered as expected</li>
|
|
98
|
-
<li>Investors cannot cancel pledges once a project is successfully funded</li>
|
|
99
|
-
<li>Investors assume the risk that projects may not be completed</li>
|
|
100
|
-
</ul>
|
|
101
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">5.2 Communication</h3>
|
|
102
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
103
|
-
<li>Investors may communicate with Issuers through our platform</li>
|
|
104
|
-
<li>Respectful communication is required at all times</li>
|
|
105
|
-
<li>Harassment or abusive behavior will result in account termination</li>
|
|
106
|
-
</ul>
|
|
107
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">6. Prohibited Uses</h2>
|
|
108
|
-
<p>Users may not:</p>
|
|
109
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
110
|
-
<li>Post false, misleading, or fraudulent content</li>
|
|
111
|
-
<li>Infringe on intellectual property rights</li>
|
|
112
|
-
<li>Engage in money laundering or illegal financial activities</li>
|
|
113
|
-
<li>Create projects for personal expenses, debt, or charity</li>
|
|
114
|
-
<li>Sell equity or investment opportunities</li>
|
|
115
|
-
<li>Violate any applicable laws or regulations</li>
|
|
116
|
-
<li>Attempt to circumvent our fees or policies</li>
|
|
117
|
-
</ul>
|
|
118
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">7. Intellectual Property</h2>
|
|
119
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">7.1 Platform Content</h3>
|
|
120
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
121
|
-
<li>We own all rights to the Platform's design, code, and functionality</li>
|
|
122
|
-
<li>Users grant us a license to use submitted content for Platform operations</li>
|
|
123
|
-
<li>We respect intellectual property rights and will respond to valid DMCA notices</li>
|
|
124
|
-
</ul>
|
|
125
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">7.2 User Content</h3>
|
|
126
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
127
|
-
<li>Issuers retain ownership of their original content</li>
|
|
128
|
-
<li>Users grant other users limited rights to view and back projects</li>
|
|
129
|
-
<li>Users must not infringe on others' intellectual property rights</li>
|
|
130
|
-
</ul>
|
|
131
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">8. Payment Terms</h2>
|
|
132
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">8.1 Payment Processing</h3>
|
|
133
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
134
|
-
<li>We use third-party payment processors</li>
|
|
135
|
-
<li>All payments are subject to payment processor terms</li>
|
|
136
|
-
<li>We are not responsible for payment processor errors or delays</li>
|
|
137
|
-
</ul>
|
|
138
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">8.2 Refunds</h3>
|
|
139
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
140
|
-
<li>Pledges to unsuccessful projects are automatically refunded</li>
|
|
141
|
-
<li>Refunds for successful projects are at Creator discretion</li>
|
|
142
|
-
<li>We do not provide refunds for our service fees</li>
|
|
143
|
-
</ul>
|
|
144
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">9. Disputes and Resolution</h2>
|
|
145
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">9.1 Creator-Backer Disputes</h3>
|
|
146
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
147
|
-
<li>We encourage direct communication between parties</li>
|
|
148
|
-
<li>We may provide information to help resolve disputes</li>
|
|
149
|
-
<li>We are not obligated to resolve disputes between users</li>
|
|
150
|
-
<li>Serious disputes may result in account suspension</li>
|
|
151
|
-
</ul>
|
|
152
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">9.2 Platform Disputes</h3>
|
|
153
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
154
|
-
<li>Users agree to attempt good faith resolution before legal action</li>
|
|
155
|
-
<li>Binding arbitration may be required for certain disputes</li>
|
|
156
|
-
<li>Class action lawsuits are waived where legally permissible</li>
|
|
157
|
-
</ul>
|
|
158
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">10. Privacy and Data Protection</h2>
|
|
159
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
160
|
-
<li>Our Privacy Policy governs data collection and use</li>
|
|
161
|
-
<li>We may share information as required by law</li>
|
|
162
|
-
<li>Users consent to data processing necessary for Platform operations</li>
|
|
163
|
-
<li>We implement reasonable security measures but cannot guarantee data security</li>
|
|
164
|
-
</ul>
|
|
165
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">11. Platform Modifications</h2>
|
|
166
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">11.1 Service Changes</h3>
|
|
167
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
168
|
-
<li>We may modify or discontinue services at any time</li>
|
|
169
|
-
<li>We will provide reasonable notice of material changes</li>
|
|
170
|
-
<li>Continued use constitutes acceptance of modifications</li>
|
|
171
|
-
</ul>
|
|
172
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">11.2 Terms Updates</h3>
|
|
173
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
174
|
-
<li>We may update these Terms at any time</li>
|
|
175
|
-
<li>Users will be notified of significant changes</li>
|
|
176
|
-
<li>Updated Terms become effective upon posting</li>
|
|
177
|
-
</ul>
|
|
178
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">12. Disclaimers and Limitations</h2>
|
|
179
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">12.1 Platform Disclaimers</h3>
|
|
180
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
181
|
-
<li>The Platform is provided "as is" without warranties</li>
|
|
182
|
-
<li>We do not guarantee project success or reward delivery</li>
|
|
183
|
-
<li>We are not responsible for Creator or Backer actions</li>
|
|
184
|
-
<li>We do not endorse or verify project claims</li>
|
|
185
|
-
</ul>
|
|
186
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">12.2 Limitation of Liability</h3>
|
|
187
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
188
|
-
<li>Our liability is limited to the maximum extent permitted by law</li>
|
|
189
|
-
<li>We are not liable for indirect, incidental, or consequential damages</li>
|
|
190
|
-
<li>Our total liability to any user is limited to fees paid to us</li>
|
|
191
|
-
</ul>
|
|
192
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">13. Indemnification</h2>
|
|
193
|
-
<p>Users agree to indemnify and hold us harmless from claims arising from:</p>
|
|
194
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
195
|
-
<li>User's violation of these Terms</li>
|
|
196
|
-
<li>User's violation of applicable laws</li>
|
|
197
|
-
<li>User's infringement of third-party rights</li>
|
|
198
|
-
<li>User's use of the Platform</li>
|
|
199
|
-
</ul>
|
|
200
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">14. Termination</h2>
|
|
201
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">14.1 User Termination</h3>
|
|
202
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
203
|
-
<li>Users may terminate their accounts at any time</li>
|
|
204
|
-
<li>Outstanding obligations survive account termination</li>
|
|
205
|
-
<li>We may retain certain information as required by law</li>
|
|
206
|
-
</ul>
|
|
207
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">14.2 Platform Termination</h3>
|
|
208
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
209
|
-
<li>We may suspend or terminate accounts for Terms violations</li>
|
|
210
|
-
<li>We may terminate the Platform with reasonable notice</li>
|
|
211
|
-
<li>Termination does not relieve users of existing obligations</li>
|
|
212
|
-
</ul>
|
|
213
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">15. International Use</h2>
|
|
214
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
215
|
-
<li>The Platform is operated from New York</li>
|
|
216
|
-
<li>Users are responsible for compliance with local laws</li>
|
|
217
|
-
<li>Some features may not be available in all jurisdictions</li>
|
|
218
|
-
<li>Export control laws may apply to certain content</li>
|
|
219
|
-
</ul>
|
|
220
|
-
<h2 style="font-size: 24px; margin: 20px 0 10px 0;">16. Miscellaneous</h2>
|
|
221
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">16.1 Governing Law</h3>
|
|
222
|
-
<p>These Terms are governed by the laws of New York, without regard to conflict of law principles.</p>
|
|
223
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">16.2 Severability</h3>
|
|
224
|
-
<p>If any provision is found unenforceable, the remaining provisions remain in full force and effect.</p>
|
|
225
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">16.3 Entire Agreement</h3>
|
|
226
|
-
<p>These Terms, along with our Privacy Policy and Community Guidelines, constitute the entire agreement between users and the Platform.</p>
|
|
227
|
-
<h3 style="font-size: 20px; margin: 15px 0 5px 0;">16.4 Contact Information</h3>
|
|
228
|
-
<p>For questions about these Terms, contact us at:</p>
|
|
229
|
-
<ul style="list-style: disc; margin: 0 20px; padding: 0px;">
|
|
230
|
-
<li>Email: <a href="mailto:support@dalmoregroup.com">support@dalmoregroup.com</a></li>
|
|
231
|
-
</ul>`;
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { JobsOptions } from 'bullmq';
|
|
2
|
-
import { typeid } from 'typeid-js';
|
|
3
|
-
|
|
4
|
-
export enum QueueFrequency {
|
|
5
|
-
SUPER_HIGH_FREQUENCY = 'SUPER_HIGH_FREQUENCY',
|
|
6
|
-
HIGH_FREQUENCY = 'HIGH_FREQUENCY',
|
|
7
|
-
MEDIUM_FREQUENCY = 'MEDIUM_FREQUENCY',
|
|
8
|
-
LOW_FREQUENCY = 'LOW_FREQUENCY',
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
interface QueueOptionsConfig {
|
|
12
|
-
removeOnComplete: number;
|
|
13
|
-
removeOnFail: number;
|
|
14
|
-
attempts: number;
|
|
15
|
-
backoff: {
|
|
16
|
-
type: 'exponential' | 'fixed';
|
|
17
|
-
delay: number;
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const FREQUENCY_CONFIGS: Record<QueueFrequency, QueueOptionsConfig> = {
|
|
22
|
-
[QueueFrequency.SUPER_HIGH_FREQUENCY]: {
|
|
23
|
-
removeOnComplete: 50,
|
|
24
|
-
removeOnFail: 25,
|
|
25
|
-
attempts: 1,
|
|
26
|
-
backoff: {
|
|
27
|
-
type: 'fixed',
|
|
28
|
-
delay: 500,
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
[QueueFrequency.HIGH_FREQUENCY]: {
|
|
32
|
-
removeOnComplete: 50,
|
|
33
|
-
removeOnFail: 25,
|
|
34
|
-
attempts: 2,
|
|
35
|
-
backoff: {
|
|
36
|
-
type: 'fixed',
|
|
37
|
-
delay: 1000,
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
[QueueFrequency.MEDIUM_FREQUENCY]: {
|
|
41
|
-
removeOnComplete: 75,
|
|
42
|
-
removeOnFail: 35,
|
|
43
|
-
attempts: 3,
|
|
44
|
-
backoff: {
|
|
45
|
-
type: 'exponential',
|
|
46
|
-
delay: 1500,
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
[QueueFrequency.LOW_FREQUENCY]: {
|
|
50
|
-
removeOnComplete: 100,
|
|
51
|
-
removeOnFail: 50,
|
|
52
|
-
attempts: 3,
|
|
53
|
-
backoff: {
|
|
54
|
-
type: 'exponential',
|
|
55
|
-
delay: 2000,
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Creates standardized BullMQ job options based on frequency and job ID
|
|
62
|
-
* @param jobId - Unique identifier for the job (for deduplication)
|
|
63
|
-
* @param frequency - Queue frequency level (defaults to LOW_FREQUENCY)
|
|
64
|
-
* @param customOptions - Optional custom options to override defaults
|
|
65
|
-
* @returns JobsOptions for BullMQ
|
|
66
|
-
*/
|
|
67
|
-
export function createQueueJobOptions(
|
|
68
|
-
jobId?: string,
|
|
69
|
-
frequency: QueueFrequency = QueueFrequency.LOW_FREQUENCY,
|
|
70
|
-
customOptions?: Partial<JobsOptions>,
|
|
71
|
-
): JobsOptions {
|
|
72
|
-
const config = FREQUENCY_CONFIGS[frequency];
|
|
73
|
-
const finalJobId = jobId || typeid('job').toString();
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
jobId: finalJobId,
|
|
77
|
-
removeOnComplete: config.removeOnComplete,
|
|
78
|
-
removeOnFail: config.removeOnFail,
|
|
79
|
-
attempts: config.attempts,
|
|
80
|
-
backoff: config.backoff,
|
|
81
|
-
...customOptions,
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Convenience functions for each frequency level
|
|
87
|
-
*/
|
|
88
|
-
export const createSuperHighFrequencyJobOptions = (
|
|
89
|
-
jobId?: string,
|
|
90
|
-
customOptions?: Partial<JobsOptions>,
|
|
91
|
-
) =>
|
|
92
|
-
createQueueJobOptions(
|
|
93
|
-
jobId,
|
|
94
|
-
QueueFrequency.SUPER_HIGH_FREQUENCY,
|
|
95
|
-
customOptions,
|
|
96
|
-
);
|
|
97
|
-
|
|
98
|
-
export const createHighFrequencyJobOptions = (
|
|
99
|
-
jobId?: string,
|
|
100
|
-
customOptions?: Partial<JobsOptions>,
|
|
101
|
-
) => createQueueJobOptions(jobId, QueueFrequency.HIGH_FREQUENCY, customOptions);
|
|
102
|
-
|
|
103
|
-
export const createMediumFrequencyJobOptions = (
|
|
104
|
-
jobId?: string,
|
|
105
|
-
customOptions?: Partial<JobsOptions>,
|
|
106
|
-
) =>
|
|
107
|
-
createQueueJobOptions(jobId, QueueFrequency.MEDIUM_FREQUENCY, customOptions);
|
|
108
|
-
|
|
109
|
-
export const createLowFrequencyJobOptions = (
|
|
110
|
-
jobId?: string,
|
|
111
|
-
customOptions?: Partial<JobsOptions>,
|
|
112
|
-
) => createQueueJobOptions(jobId, QueueFrequency.LOW_FREQUENCY, customOptions);
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
3
|
-
import { TypeID } from 'typeid-js';
|
|
4
|
-
|
|
5
|
-
extendZodWithOpenApi(z);
|
|
6
|
-
|
|
7
|
-
export enum CommissionRateType {
|
|
8
|
-
FIXED = 'FIXED',
|
|
9
|
-
PERCENTAGE = 'PERCENTAGE',
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const registeredRepIdSchema = z.string().refine(
|
|
13
|
-
(value) => {
|
|
14
|
-
try {
|
|
15
|
-
const tid = TypeID.fromString(value);
|
|
16
|
-
return tid.getType() === 'registered_rep';
|
|
17
|
-
} catch {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
message:
|
|
23
|
-
'Invalid registered rep ID format. Must be a valid TypeID with "registered_rep" prefix. Example: registered_rep_01j5y5ghx8fvc83dmx3pznq7hv',
|
|
24
|
-
},
|
|
25
|
-
);
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { IBaseEntity } from './entity.types';
|
|
2
|
-
|
|
3
|
-
import { TypeID } from 'typeid-js';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
|
|
6
|
-
export const RejectionReasons = {
|
|
7
|
-
KYC: [
|
|
8
|
-
'ID document is expired',
|
|
9
|
-
'ID photo is blurry or unclear',
|
|
10
|
-
'ID does not match applicant’s name',
|
|
11
|
-
'Document type not accepted',
|
|
12
|
-
'Incomplete or missing ID submission',
|
|
13
|
-
],
|
|
14
|
-
AML: [
|
|
15
|
-
'Missing supporting financial documents',
|
|
16
|
-
'Income documentation not sufficient',
|
|
17
|
-
'CPA/Attorney letter is outdated or unsigned',
|
|
18
|
-
'Documents do not meet accreditation criteria',
|
|
19
|
-
],
|
|
20
|
-
AIC: [
|
|
21
|
-
'Individual appears on a sanctions list',
|
|
22
|
-
'Match found in politically exposed persons (PEP) database',
|
|
23
|
-
'Potential adverse media found',
|
|
24
|
-
'High-risk jurisdiction flagged',
|
|
25
|
-
'Name match flagged – additional verification required',
|
|
26
|
-
],
|
|
27
|
-
SUB_DOC: [
|
|
28
|
-
'Signature missing or incorrect',
|
|
29
|
-
'Incomplete or incorrectly filled document',
|
|
30
|
-
'Document version is outdated',
|
|
31
|
-
'Not all pages were submitted',
|
|
32
|
-
'Mismatch in investment amount',
|
|
33
|
-
],
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export const rejectionReasonIdSchema = z.string().refine(
|
|
37
|
-
(value) => {
|
|
38
|
-
try {
|
|
39
|
-
const tid = TypeID.fromString(value);
|
|
40
|
-
return tid.getType() === 'rejection_reason';
|
|
41
|
-
} catch {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
message:
|
|
47
|
-
'Invalid rejection reason ID format. Must be a valid TypeID with "rejection_reason" prefix.',
|
|
48
|
-
},
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
export const RejectionReasonZod = IBaseEntity.extend({
|
|
52
|
-
id: z.string(),
|
|
53
|
-
reason: z.string(),
|
|
54
|
-
target: z.string(),
|
|
55
|
-
});
|
|
56
|
-
export type RejectionReasonZod = z.infer<typeof RejectionReasonZod>;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Job } from 'bullmq';
|
|
2
|
-
import { QueryRunner } from 'typeorm';
|
|
3
|
-
import { Site } from '../../sites/entities/site.entity';
|
|
4
|
-
import { ProcessTradeCancellationReminderDto } from '../../workers/dto.worker';
|
|
5
|
-
|
|
6
|
-
export enum ReminderType {
|
|
7
|
-
DAILY = 'daily',
|
|
8
|
-
CUMULATIVE = 'cumulative',
|
|
9
|
-
WARNING = 'warning',
|
|
10
|
-
CANCEL = 'cancel',
|
|
11
|
-
SKIP = 'skip', // for days with no action
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface ReminderConfig {
|
|
15
|
-
day: number;
|
|
16
|
-
type: ReminderType;
|
|
17
|
-
daysLeft?: number; // for warning type
|
|
18
|
-
createTask?: boolean; // for daily type
|
|
19
|
-
priority?: 'low' | 'medium' | 'high' | 'urgent';
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface ReminderTemplate {
|
|
23
|
-
subject: (params: ReminderTemplateParams) => string;
|
|
24
|
-
description: (params: ReminderTemplateParams) => string;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface ReminderTemplateParams {
|
|
28
|
-
day: number;
|
|
29
|
-
offeringName: string;
|
|
30
|
-
daysLeft?: number;
|
|
31
|
-
userName: string;
|
|
32
|
-
tradeStatus: string;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface ReminderContext {
|
|
36
|
-
queryRunner: QueryRunner;
|
|
37
|
-
job: Job<ProcessTradeCancellationReminderDto>;
|
|
38
|
-
site: Site;
|
|
39
|
-
logContext: any;
|
|
40
|
-
}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { extendZodWithOpenApi } from '@anatine/zod-openapi';
|
|
3
|
-
import {
|
|
4
|
-
AicStatus,
|
|
5
|
-
AMLStatus,
|
|
6
|
-
BaseStatus,
|
|
7
|
-
KYCStatus,
|
|
8
|
-
IPaginationMeta,
|
|
9
|
-
} from './common.types';
|
|
10
|
-
import { accountIdSchema } from './account.types';
|
|
11
|
-
import { individualIdSchema } from './individuals.types';
|
|
12
|
-
extendZodWithOpenApi(z);
|
|
13
|
-
|
|
14
|
-
export const AccountStats = z.object({
|
|
15
|
-
account: z.object({
|
|
16
|
-
id: accountIdSchema,
|
|
17
|
-
name: z.string(),
|
|
18
|
-
active: z.boolean(),
|
|
19
|
-
dba: z.string().nullable(),
|
|
20
|
-
}),
|
|
21
|
-
needsReview: z.number(),
|
|
22
|
-
pending: z.number(),
|
|
23
|
-
approved: z.number(),
|
|
24
|
-
rejected: z.number(),
|
|
25
|
-
manualReview: z.number(),
|
|
26
|
-
});
|
|
27
|
-
export type AccountStats = z.infer<typeof AccountStats>;
|
|
28
|
-
|
|
29
|
-
export const PendingReviewStats = z.object({
|
|
30
|
-
account: z.object({
|
|
31
|
-
id: z.string(),
|
|
32
|
-
name: z.string(),
|
|
33
|
-
}),
|
|
34
|
-
needsReview: z.number(),
|
|
35
|
-
pending: z.number(),
|
|
36
|
-
rejected: z.number(),
|
|
37
|
-
error: z.number(),
|
|
38
|
-
approved: z.number(),
|
|
39
|
-
});
|
|
40
|
-
export type PendingReviewStats = z.infer<typeof PendingReviewStats>;
|
|
41
|
-
|
|
42
|
-
export const GetPendingReviewResponse = z.object({
|
|
43
|
-
items: z.array(PendingReviewStats),
|
|
44
|
-
meta: IPaginationMeta,
|
|
45
|
-
});
|
|
46
|
-
export type GetPendingReviewResponse = z.infer<typeof GetPendingReviewResponse>;
|
|
47
|
-
|
|
48
|
-
export enum PendingReviewType {
|
|
49
|
-
PENDING_TRADES = 'PENDING_TRADES',
|
|
50
|
-
ALL = 'ALL',
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export enum StatusType {
|
|
54
|
-
AML = 'aml',
|
|
55
|
-
KYC = 'kyc',
|
|
56
|
-
AIC = 'aic',
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export const PendingReviewFilters = z.object({
|
|
60
|
-
type: z
|
|
61
|
-
.nativeEnum(PendingReviewType)
|
|
62
|
-
.optional()
|
|
63
|
-
.default(PendingReviewType.ALL),
|
|
64
|
-
statusType: z.nativeEnum(StatusType).optional().default(StatusType.KYC),
|
|
65
|
-
});
|
|
66
|
-
export type PendingReviewFilters = z.infer<typeof PendingReviewFilters>;
|
|
67
|
-
|
|
68
|
-
export const GetReviewKycResponse = z.array(AccountStats);
|
|
69
|
-
export type GetReviewKycResponse = z.infer<typeof GetReviewKycResponse>;
|
|
70
|
-
|
|
71
|
-
export const GetReviewAmlResponse = z.array(AccountStats);
|
|
72
|
-
export type GetReviewAmlResponse = z.infer<typeof GetReviewAmlResponse>;
|
|
73
|
-
|
|
74
|
-
export const GetReviewAicResponse = z.array(AccountStats);
|
|
75
|
-
export type GetReviewAicResponse = z.infer<typeof GetReviewAicResponse>;
|
|
76
|
-
|
|
77
|
-
export const ReviewKycFilters = z.object({
|
|
78
|
-
accountId: accountIdSchema.optional(),
|
|
79
|
-
kycStatus: z.nativeEnum(KYCStatus).optional(),
|
|
80
|
-
needsReview: z
|
|
81
|
-
.string()
|
|
82
|
-
.optional()
|
|
83
|
-
.default('false')
|
|
84
|
-
.refine(
|
|
85
|
-
(v) => {
|
|
86
|
-
return v === 'true' || v === 'false';
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
message: 'needsReview must be a boolean string',
|
|
90
|
-
},
|
|
91
|
-
),
|
|
92
|
-
});
|
|
93
|
-
export type ReviewKycFilters = z.infer<typeof ReviewKycFilters>;
|
|
94
|
-
|
|
95
|
-
export const ReviewAmlFilters = z.object({
|
|
96
|
-
accountId: accountIdSchema.optional(),
|
|
97
|
-
amlStatus: z.nativeEnum(AMLStatus).optional(),
|
|
98
|
-
needsReview: z
|
|
99
|
-
.string()
|
|
100
|
-
.optional()
|
|
101
|
-
.default('false')
|
|
102
|
-
.refine((v) => v === 'true' || v === 'false', {
|
|
103
|
-
message: 'needsReview must be a boolean string',
|
|
104
|
-
}),
|
|
105
|
-
});
|
|
106
|
-
export type ReviewAmlFilters = z.infer<typeof ReviewAmlFilters>;
|
|
107
|
-
|
|
108
|
-
export const ReviewAicFilters = z.object({
|
|
109
|
-
accountId: accountIdSchema.optional(),
|
|
110
|
-
aicStatus: z.nativeEnum(AicStatus).optional(),
|
|
111
|
-
needsReview: z
|
|
112
|
-
.string()
|
|
113
|
-
.optional()
|
|
114
|
-
.default('false')
|
|
115
|
-
.refine((v) => v === 'true' || v === 'false', {
|
|
116
|
-
message: 'needsReview must be a boolean string',
|
|
117
|
-
}),
|
|
118
|
-
});
|
|
119
|
-
export type ReviewAicFilters = z.infer<typeof ReviewAicFilters>;
|
|
120
|
-
|
|
121
|
-
export const PostReviewBody = z.object({
|
|
122
|
-
individualIds: z.array(individualIdSchema).min(1).max(100),
|
|
123
|
-
status: z.nativeEnum(BaseStatus),
|
|
124
|
-
});
|
|
125
|
-
export type PostReviewBody = z.infer<typeof PostReviewBody>;
|
|
126
|
-
|
|
127
|
-
export const PostReviewResponse = z.object({
|
|
128
|
-
individualsUpdated: z.array(accountIdSchema).min(1).max(100),
|
|
129
|
-
status: z.nativeEnum(BaseStatus),
|
|
130
|
-
reviewedBy: z.string(),
|
|
131
|
-
targetObject: z.any(),
|
|
132
|
-
});
|
|
133
|
-
export type PostReviewResponse = z.infer<typeof PostReviewResponse>;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { PortalType, UserRole } from './common.types';
|
|
3
|
-
import { IBaseEntity } from './entity.types';
|
|
4
|
-
import { TypeID } from 'typeid-js';
|
|
5
|
-
|
|
6
|
-
export const roleIdSchema = z.string().refine(
|
|
7
|
-
(value) => {
|
|
8
|
-
try {
|
|
9
|
-
const tid = TypeID.fromString(value);
|
|
10
|
-
return tid.getType() === 'role';
|
|
11
|
-
} catch {
|
|
12
|
-
return false;
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
message:
|
|
17
|
-
'Invalid role ID format. Must be a valid TypeID with "role" prefix.',
|
|
18
|
-
},
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
export const RoleZod = IBaseEntity.extend({
|
|
22
|
-
id: z.string(),
|
|
23
|
-
name: z.nativeEnum(UserRole),
|
|
24
|
-
type: z.nativeEnum(PortalType),
|
|
25
|
-
});
|
|
26
|
-
export type RoleZod = z.infer<typeof RoleZod>;
|