feat: add RBI circulars, CKYC, KYC, Superset analytics, passbook modules and UI updates

Add new feature modules (RBI feeds, CKYC, KYC tab, Form60, Superset analytics, passbook),
update client family members, dashboard, login page, sidenav, images, translations,
environment config, and fix RBI feeds API auth by using relative URLs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Aditya
2026-03-10 15:13:35 +05:30
co-authored by Claude Opus 4.6
parent 07f701f654
commit 73aa69ee02
84 changed files with 6256 additions and 700 deletions
+85
View File
@@ -472,4 +472,89 @@ export class ClientsService {
return this.externalHttp.post(apiUrl, { externalId }, { headers });
}
/**
* Gets KYC details for a client.
* @param clientId Client ID
*/
getClientKyc(clientId: string): Observable<any> {
return this.http.get(`/clients/${clientId}/kyc`);
}
/**
* Saves KYC details for a client.
* @param clientId Client ID
* @param kycData KYC payload
*/
saveClientKyc(clientId: string, kycData: any): Observable<any> {
return this.http.post(`/clients/${clientId}/kyc`, kycData);
}
/**
* Updates existing KYC details for a client.
* @param clientId Client ID
* @param kycId KYC record ID
* @param kycData KYC payload
*/
updateClientKyc(clientId: string, kycId: string, kycData: any): Observable<any> {
return this.http.put(`/clients/${clientId}/kyc/${kycId}`, kycData);
}
/**
* Verifies PAN number via LincPay (reads PAN from the stored KYC record).
* @param clientId Client ID
* @param kycId KYC record ID
*/
verifyPAN(clientId: string, kycId: string): Observable<any> {
return this.http.post(`/clients/${clientId}/kyc/${kycId}?command=verify-pan`, {});
}
/**
* Step 1 of Aadhaar e-KYC: sends OTP to the Aadhaar-linked mobile via LincPay.
* @param clientId Client ID
* @param kycId KYC record ID
* @param aadhaarNumber Full 12-digit Aadhaar number (never stored)
*/
sendAadhaarOtp(clientId: string, kycId: string, aadhaarNumber: string): Observable<any> {
return this.http.post(`/clients/${clientId}/kyc/${kycId}?command=aadhaar-generate-otp`, { aadhaarNumber });
}
/**
* Step 2 of Aadhaar e-KYC: verifies the OTP entered by the client via LincPay.
* @param clientId Client ID
* @param kycId KYC record ID
* @param otp OTP received on Aadhaar-linked mobile
* @param aadhaarRefNumber Reference number returned by sendAadhaarOtp (changes.aadhaarRefNumber)
*/
verifyAadhaarOtp(clientId: string, kycId: string, otp: string, aadhaarRefNumber: string): Observable<any> {
return this.http.post(`/clients/${clientId}/kyc/${kycId}?command=verify-aadhaar`, {
aadhaarRefNumber,
aadhaarOtp: otp
});
}
/**
* Verifies GSTIN via LincPay (reads GSTIN from the stored KYC record).
* @param clientId Client ID
* @param kycId KYC record ID
*/
verifyGSTIN(clientId: string, kycId: string): Observable<any> {
return this.http.post(`/clients/${clientId}/kyc/${kycId}?command=verify-gstin`, {});
}
getClientCkyc(clientId: string): Observable<any> {
return this.http.get(`/clients/${clientId}/ckyc`);
}
uploadCkycDocument(clientId: string, formData: FormData): Observable<any> {
return this.http.post(`/clients/${clientId}/ckyc/documents`, formData);
}
getClientForm60(clientId: string): Observable<any> {
return this.http.get(`/clients/${clientId}/form60`);
}
submitClientForm60(clientId: string, data: any): Observable<any> {
return this.http.post(`/clients/${clientId}/form60`, data);
}
}