Mergi la conținut
KAMOUniverse

Jurnal de schimbări

Ce e nou.

Fiecare îmbunătățire a platformei, pe măsură ce se livrează.

  1. · kamo-internal

    P1 frontend

    - losApi: taxaOffQueue / confirmChargeOff / auditByLoan - *************** D120 revizuiți pagina cozii; utilizator org comentarii fiecare împrumut, adaugă un motiv, clicuri Confirmare → POST /api/los/charge-off - Confirmă. Suprafețe platforma de servicii de împrumutChargeOff. - Noua componentă <LoanAuditTimeline >: - Nu. și redă întregul flux LoanAuditEvenimente (tip actor, fel, sumă, timestamp). Proiectat pentru a conecta în pagina detaliu împrumut org-side.

  2. · kamolos

    P1 lot

    Mişcarea banilor ( Miezul P1): - LoanPaymentPostingService: MarkSucceedAndPost / MarkFailed / MarkReturnedAndReverse/markDisbursementSucceed/markDrawDisbursed. Ordin de alocare blocat: taxe → dobândă → principal. Advance auto de stare DELINQUENT ↔ SUBSTANŢĂ ↔ PIED OFF pe baza echilibrului rezultat. - StripeWebhookService nu mai este log numai: payment int.succesed / payment failed / charge.refinanțate (retur ACH) / dispute.create+închis/ payout.paid+a eșuat tot avansul registrul prin PostingService. - NachaReturnCode + RetryScheduler: NACHA-conforme R-code de detailare R01/R09 retrimitere până la 2× / 5 zile distanță, R07/R10/R29 revocă mandatul; retries epuizat flip LoanPaymentMetoda → REQUIRES REVERIFY. Materializare comercială-verticală: - ************* acum creează logodnă (PERSONAL LOANS, COMITET), angajament (Activ, cu tarife + termene JSON poze), Ordin (AUTORIZED, subtotal=principal) și fire ID-urile lor înapoi la împrumut.angajamentUid / angajamentUid / irecomandantOrderUid in aceeaşi tranzacţie. Cron locuri de muncă (logică reală, nu cioburi): - CoolingOffAdvanceJob: enqueues a PELLING DISBURSEMENT OUT payment for Fiecare PENSII DISBURSARE Împrumutul a cărui răcire a expirat. - DobandaAcrualJob: zi de zi simple-dobândă de cumpărare pe principalBalance pentru credite ACTIVE + DELINQUENT. - DeclaratieGenerationJob: rate per-due-date statement, LOC per-cycle declarație cu aproximare ADB + evaluare anuală a taxelor + plată automată Programare. - AutoDebitRunJob: incendii pending auto-debits + DISBURSEMENT out payout + NACHA retries via StripeConnectService with idempotence keys. - ReconciliereJob: re-suma pe timp de noapte a taxelor/principal/echilibrul din Registrul; corecția de derivă autentificată + auditată. - ReamintireDispatchJob: trage notificări SCHEDULED trecut programatPentru și livrează prin NotificationDispatchService. Notificări: - *************** real HTTP POST to EmailService (/api/email/tranzactional/send) și VOIPService (/api/voip/sms/send, /api/voip/voice/send), șablonKey = "împrumut. {kind lowercase}." Validare: - LoanProductValidationService: aplică APR ≤ plafon de stat (per tip); controale de natură interzisă, min/max-principal. Legat LoanProductService.creare + actualizare. Încărcare: - LoanChargeOffService.queue () listează D120 credite; .confirmă() statutul flips pentru a percepe OFF și scrie un eveniment de audit exigibil. - LoanChargeOffController expune - Nu. Navigare audit: - LoanAuditEvenimentController expune - Nu

  3. · kamo-internal

    P0 intarire formulare, rezolvare sesiune, metode de plata

    Formulare (org-side): - *************** / {produsUid} editează pagini - Noul LoanProutForm: elemente de baza / tarifare / limite / termeni / conformitate secţiuni, domenii de natură conştientă (instalare vs LOC), nota de promisiune machete UID, coduri de stat permise - *************** produs selecție (numai produse active de pe această piață), membru împrumutat; termen principal, opţional, stat debitor, "rezervare proiect" vs "trimitere" - /settings/fetures/ending: org-side Stripe Connect onboarding page (Apeluri ************* redirecţionează spre Stripe) Întărire: - Noua utilizareCurrentSession() cârlig rezolvă membruId/orgId de la /api/user-info (canonic *** way) cookie citește în My Loans, Oferta Detail, Detaliu împrumut, Setări de împrumut, PipelineLoanOffersTab, PipelineActiveLoansTab - New BorrowerPaymentMetodesCard: împrumutatul poate lega banca ACH (Stripe plata metodă id + mandat) sau card, a se vedea metodele legate, setați implicit; revocă; încorporat pe /împrumuturi / [împrumut] pagină - losApi: + startStripeConnectOnboarding Configurări nav (2 din 3 locuri pe regula memoriei): - SetăriStatusWindow adaugă "Loan Products" sub Comerț + intrare rută pentru *************** - (sidebar.tsx nu are intrări POS

  4. · kamolos

    P0 întărire

    - Fix EsignClient imports: EsignGenericEnvelopeRepository / EsignSignatureRepository trăiesc în .semn.repos, nu .semnează rădăcină - New StripeConnectController Post - Nu. creează cont personalizat + întoarce URL-ul la bord (se delegă la StripeConnectService existent) - MediaServiceClient.fetchBlob: trage de petele unei pete stocate pentru Fluxuri de lucru aplatizate/returnate - New PdfFlattenService: anexează un E-SIGN Semnătura care respectă actul pagina de certificare pentru prezentarea sursei PDF pentru fiecare capturat semnătură (nume tip redat în italiană; signer/IP/UA/SHA-256 + plic UID înregistrat pe pagină). Magazine noul blob aplatizat prin MediaService și se întoarce Blob id + SHA-256. - EsignClient.submitSignature acum aplatizează după marcarea Semnată și populați Nu-ţi face griji. + semnatDocumentSha256. Aplatizează busteni de avarie, dar nu întoarce semnătura.

  5. · kamo-internal

    /api/los/* proxy route → KamoLOS via k8s DNS

    Oglindește /api/billing / [[...pat] Procură servicii de facturare: - sesiunea *** rezolvată prin intermediul Redis; X- Org-Id + X-Member-Id - /api/los/webhooks/* skip session auth (Stripe signature-verified at KamoLOS); antetul cu dungi-signatura este trecut prin - Good-mode antet pass-through conservat - 502 ambalaj pe defecțiuni în amonte

  6. · kamo-internal

    Adaugă tip personal LOANS commerce front-end

    - angajamentTypeLabels: extinderea angajării Uniunea de tip + vocabularul - MarketCardGrid: PERSONAL LOANS color (#14b8a6) + Landmark pictograma + contor - pagina detalii despre piata: file noi (Produse loan / Oferte / Credite active / Reguli de stat) cu poartă pe TradeType === "PERSONAL LOANS" - losApi.ts: suprafaţă DTO completă + ambalaj subţire de prindere lovind /api/los/* pentru produse, oferte, credite, plăţi, extrageri, declaraţii, plăţi metode, plată automată, reguli de stat, depunerea semnăturii ESign - MarketLoanProductsTab / MarketLoanOffersTab / MarketActiveLoansTab / MarketLoanStateReguliTab componente - PipelineView: VERTICAL ICONS entry for personal loans - Secţiunea de conducteVertical: PERSONAL LOANS in hasSubTabs + make block rute Oferte (intenți) + credite active (angajamente) sub-tabe - Noua conductăLoanOffersTab / PipelineActiveLoansTab - Suprafaţa de împrumut (membru) /împrumuturi: index, /împrumuturi/oferte/[ofertă Id] cu flux accept-and-sign (semnătură tipată → depunere ESign → acceptă-ofertă), /împrumuturi/[împrumut] cu sold, declarații, plăți istorie, Pay Now, trage-pentru-LOC - setări/page.tsx: comert nav adaugă intrare "Loan Products"

  7. · kamolos

    Serviciul inițial de origine a creditului personal + service

    New Spring Boot 3.1.5 / Java 21 microservice modelat pe BillingService. Deţine domeniul creditului personal la sfârşit: - LoanProduct / LoanOffer / Loan CRUD cu REST + DTO strat - LoanLifecycleService materializeaza Loan + commerce Angajament/Commitment privind acceptarea ofertei (un txn) - LoanPayment + LoanDraw + LoanStatement + LoanPaymentMetoda + Încasarea împrumutului Servicii plan de plată + controlere - Math: Amortizare Motor (reg Z Apendicele J), InterestAcrualEngine (ACT 365 / ACT 360 + ADB), Alocator de plăți (fees→interest→principal) - StripeConnectService (Custom-cont la bord, ACH payment, ACH debit) + StripeWebhookService (idepotent via LoanStripeWebhookEvent) + obiectiv webhook specific conectării - TilaRendererService redă Reg Z Schumer box (instalare) / informații deschise (LOC) prin intermediul PDFBox în MinIO - StatRegulaSelfHealService boot-loads împrumut state rules.json (50-stat registry + MLA cap + răcire-off) - EsignClient + EsignSignController completează aspectul lipsă calea de depunere a semnăturii (scrie EsignGenericEnvelope + EsignSignature in shared-lib) - NotificareDispatchService cu programare dedup-cheie - Cron jobs: OfertaExpiration, DeclarationGeneration, DelincvencySweep - manifestele k8s (configrap / desfasurare / serviciu), Dockerfile, Fluxul de lucru Forgejo CI (dual-cluster K1M1+K2M1) aliniat cu Convențiile privind serviciul de facturare

  8. · kamo-shared-library

    Adaugă personal LOANS tip comerț + pachet entitate

    - TradeType.PERSONAL LOANS + paralel EngagementType + vocabular - BuiltinVendorCategories intrări pentru furnizorii de credit personal - 15 entităţi personale împrumuturi JPA (LoanProduct, LoanStateRegula, LoanOffer, LoanOffer Decision, Loan, LoanDraw, LoanPayment, LoanPaymentMetode, ÎmprumutRecurrectionPayment Plan, Loan Statement, LoanFee, LoanDispending, LoanAuditEveniment, LoanStrapeWebhookEveniment, Notificare împrumut) + 15 repo - 22 personal împrumuturi enums (status, nivel, fel, sursă, canal etc.) - esign EsignGenericEnvelope + EsignSignature + repos for non- imortage crearea de pachete și capturarea semnăturii cu care se confruntă membrii - KamoLOS → KamoMLOS comentarii doar refs actualizate în întreaga organizație / TradeMarketService / CommerceService Managementul schemei rămâne cu KamoInitializerService; KamoLOS folosește Niciuna.

  9. · kamo-internal

    Încărcăturile foto-album folosesc aceeaşi conductă WS ca fila Uploads

    Extrage conducta doc-manager upload (hashing → dedup check → registru-sau-upload → WebSocket condus de conversie) într-o utilizare reutilizabilăImagingUploads cârlig. Cârligul deţine maşina de stat per fişier, XHR progres, şi live-conversie-progress WebSocket abonament care Uploads tab-ul utilizează. Dialog foto-album rescris pentru a consuma cârlig: - Fişierele stau la coadă automat şi procesează câte unul pe rând. - Fiecare fișier în zbor arată eticheta sa actuală de etapă (Hashing → Verificare → Încărcarea → Conversie → Complet) cu un LinearProgress, un cec / eroare / icoana spinner, și un buton de remetrie după eșec. - Dialogul afișează acum mesajul de eroare real al serverului (de exemplu, "Incarcat la MinIO") în loc să-l înghită, și o salvare este blocată în timp ce upload-uri sunt încă în zbor. - Fişiere încărcate cu succes ataşate automat pe album ca elemente.

  10. · kamolos

    Hide isActive = programe false de la debitori în timp real

    utilizareProgramCatalog filtrează acum programe cu isActive=fals înainte le returnează vrăjitorului de împrumuturi. Steagul este calculat pe partea serverului ca (base.isActive ȘI suprascrie.isActive), astfel încât atunci când un creditor schimbă un program oprit în fila de setări Programe Ipotecare, se oprește cardul corespunzător care apare în selecţia persona/programului tavanul StageTime.

  11. · SecurityService

    Oferte de programe de umplere pentru piețele ipotecare existente pe boot

    DataLoader sună acum Nu-ţi face griji. după backfill-ul AppMortgage. Mătură fiecare MORTAGE existent TradeMarket și asigură programul său Oferte sunt furnizate. Acoperiri piețe care au fost create înainte de creareMarket-side cârlig aterizat în special cele pe care utilizatorul le-a adăugat prin intermediul piețelor și câmpurilor înainte de aceasta Lansaţi. Idempotent: un sistem complet bootstrapped logs "toate piețele deja aprovizionat" şi sare.

  12. · kamo-shared-library

    Bootstrap program ipotecar oferte pe piață crea + boot backfill

    Atunci când utilizatorul creează un comerțMarket cu comerțType=MORTAGE Markets & Fields settings tab pentru suprafeţele comerciale din aval să indice intenţiile. Din episoadele anterioare s-a întâmplat lene pe primul AppMortgage crea, așa că ipoteca nou adăugată piețele au stat goale și adminii KamoLOS-side nu au avut niciun efect de la adăugarea unuia. - ***************** cand tip=MORTAGE, suna ************de piata) dupa salvare. Înfășurat în încercarea/captura astfel încât un eșec de însămânțare program nu blochează crearea pieței (Kamolos citește programe din registrul programului, nu oferte). - *************** maturări fiecare piață existentă a MORTAGE și asigură furnizarea ofertelor sale. Utilizat de SecurityService DataLoader pentru a acoperi piețele create anterior Acest cârlig a aterizat. Ipotentul cizme de echilibru sunt un nu-op.

  13. · kamo-internal

    Lianți duplicați astfel încât utilizatorii să poată furculița fără a afecta originalul

    Adaugă o acțiune "Duplicate" accesibilă din meniul de context al listei liantului și dintr-un buton nou din antetul editorului. Duplicatul pornește de la metadatele liantului sursă + elemente + modificatori, deținute de utilizatorul curent fără acțiuni și este selectat automat astfel încât utilizatorul să aterizeze pe noua ramură imediat. Firele sus: - *************** ruta proxy - duplicatBinder() în liantApi.ts şi utilizaţiBinderStore - meniu "Duplicat" element în BinderListPanel (lucrari pe orice arie vizibila deţinută, împărţită sau şablon) - Duplicat buton pictogramă + spinner în antet BinderEditor

  14. · DocsService

    Adaugă POST ***************

    Copiază adânc un liant pe care solicitantul îl poate vedea (proprietar, partajat sau șablon) într-un liant proaspăt deținut de solicitant. Copiază fiecare element (DOC, SEPARATOR, GENERAT) cu ordine, tip, configJson, și modificator per-instanta suprascrie intacte; copii modificatoare la nivel de liant; lasă documentele Img suport numai (ambii lianți de referință aceleași documente). Copia începe fără acţiuni şi este Template=fals.

  15. · kamo-internal

    Programe de ipotecare comutare + angajament MORTAGE-link

    - Ipoteca ProgramePanel acum naveaza un real comutator pe fiecare carte de program cu update optimist + rollback pe eșec. Comutarea unui program de apeluri Pune-l aici şi reflectă. servere active de stare, calculate-side de bază + suprascriere. - ***************esteActive) încheie noul obiectiv final. - /commerce/angajări/[id] page: Aplication linkType now routes to / Aplicații/ {linkId} (pagina de detaliu URLA), nu lipsa - Nu. MORTAGE se angajează automat în / Aplicații / {linkId} pe sarcină astfel încât utilizatorii ateriza în URLA detaliu direct în loc de perspectiva generică de angajament.

  16. · SecurityService

    Pus / programe/ {cod}/activ + depreciază criteriile de evaluare a POS ipotecare moștenite

    - Ipoteca programuluiController câştiguri puse *************** cu corp {"isactiv": bool}, cu poarta pe LOS TAKE APPLICATION. Delegaţi Asta va face ca Org Program Override. - *************** ObțineMortgageAppById, creeazăMortgageApp, updateMortgageApp, updateMortgageAppStatus toate marcate @Depreciated with Javadoc indică apelanții la URLA- fidelitate /api/securitate/imortage-apps criteriile finale. Moştenirea căi POS rămâne funcţională pentru compat.

  17. · kamo-shared-library

    Per-org activeaza/dezactiveaza + depreciaza calea ipotecara exclusiv comerciala

    - *************** upsertează un rând OrgProgramOverride cu recordState.isactiv=dorit; listaForOrg acum ȘI e programul de bază Steagul activ cu suprascrierea, deci o suprascriere dezactivată poartă dublu care înseamnă "acest org a dezactivat în mod explicit acest program." - OrgProgramOverrideRepository adds findAll byOrganizationId și ***************** pentru upsert+listForOrg. - *************** / găsesteMortgageAppbyId / - Nu. / updateMortgageApp / updateMortgageAppStatus are @Depreciated. Ei operează doar pe comerț Intenții etichetate LOAN APPLICATION și NU creați sau citiți URLA AppMortgage Înregistrări păstrate pentru back-compat cu ************* dar noul cod trebuie să utilizeze AppMortgageService + /api/security/mortgage-apps.

  18. · kamolos

    Ziua de frecat↔ tema de noapte cu luna de soare SkyToggle

    - continuu t [0,1] unitate de poziție scena ~25 CSS proprietăți personalizate la:root prin interpolare liniară RGB între ziua de hârtie caldă și ancore de noapte Aurora în lib/scenă/palete.ts - Implicate la ora locală a zilei la prima vizită; suprascriere manuală este lipicios într-un cookie, cu un buton ceas-icon pentru a re-enable auto follow - Scena ScenaPainter coace paleta rezolvată înainte de prima vopsea astfel nu există FOUC la vizitele ulterioare; modul auto de prim-vizită ușurează din zi în oră locală peste ~1.4s - SkyToggle: pointer-draggable degetul mare al cărui glif luna de soare se rotește în timp real cu t și morfe între soare-cu-raze și semilună - PageGlow + StarField straturi ambientale: chihlimbar-soare-lumina de sus-stânga la zi, se răcește luna-lumina de sus dreapta-pe timp de noapte, ~80 stele însămânțate se estompeze în trecut amurg și sclipire prin keyframe-ul cu conținut redus de mișcare - comutatoare de tematica MUI la limita de amurgul t citeste din CSS vars asa ca interpolarea ramane continua - drops the hard-locked dark class + color-system; fixs two Baze de suprafață (lipsă de culoare-prefix) lungi în călătorie Crest și CeremonieClient

  19. · kamolos

    Expunerea de angajament/intentă/angajament AINS

    AppMortgageDTO poartă acum identificatorii de comerț-ciclu de viață care SecurityService backend populează fiecare cerere de ipotecă. KamoLOS Încă nu le foloseşte activ, dar dactilografiarea lor prin mijloace viitoare În cazul în care o entitate nu este obligată să efectueze o evaluare a riscurilor, aceasta trebuie să se bazeze pe o evaluare a riscurilor efectuată în conformitate cu articolul 4 alineatul (2) din Regulamentul (UE) nr. se referă direct la stratul comercial fără a trece prin modelul URLA.

  20. · kamo-internal

    Arată contextul comerțului + fila setărilor programelor

    - / erou aplicaţii acum citește "Commerce > Ipotecare rezidenţială · URLA 2021" Astfel, personalul consideră ipoteca ca fiind una verticală a modulului comercial, nu o Conductă independentă. - Programe noi nerambursabile sub Setări de comerţ - catalog numai pentru citire programe de împrumut (CONV/FHA/VA/...) cu stare activă și versiune regulit. Setări nav actualizat în toate cele trei locații (subTopics, rute, etichetaFor). - AppMortgageDTO/SummaryDTO + o oglindă tip programDTO/LoanProgramCode modificările în comun (angagementUid / intentionUid / angajamentUid). - ipoteca AppsApi.list Programme () atinge obiectivul actual /programuri.

  21. · SecurityService

    Întărire drepturi LOS + / scop comercial/angajamente

    - Ipoteca AppController: fiecare obiectiv poartă acum pe RoleRightType. Citiri necesită LOS VIEW PIPELINE; crearea unei noi aplicații necesită LOS TAKE APPLICATION; editări acceptă orice rol LOS scris (ia / proces / subscrie / închide / suspenda); eliminarea necesită LOS SUSPEND OR WITHDRAW. Contul de servicii al lui KamoLOS are deja setul complet LOS din dreapta astfel încât călătoria cu împrumut nu este afectată; utilizatorii personalului sunt porționați pe rolul lor. - CommerceEngagementController: new GET *************** (listă cu filtre de tip/status/date) și GET .../angajări/{uid} (detalii); Poartă pe Access COMMERCE. Acesta este omologul vertical-agnostic la ipoteca-applics obiectivul de bază ipoteca, un ordin de vânzare cu amănuntul, sau o rezervare de închiriere.

  22. · kamo-shared-library

    Ipotecare URLA sârmă în angajament/Intenție/Commitment

    Numerar este una verticală a sistemului comercial servicii, abonamente şi achiziţii. Acest lucru fire ipotecă URLA- fidelitate stiva la domeniul-agnostic comerț ciclu de viață, astfel încât suprafețele transversale Vezi ipoteca ca oricare alta logodnă. - Aplicare: nou angajament id / intention id / angajament id FKs (nullable for rânduri moștenite). - ************* BAR capcana orgului TradeMarket + o ofertă per LoanProgramCode pe prima aplicație crea; Ataşează Angajament + Intenţie la fiecare AppMortgage; oglinzi LoanFile. status pe Intent.status si Logodna. statut; materializează un angajament privind Fondat cu termenii de împrumut instantaneu. Ipotent la sfârşit. - AppMortgageService: creareBlank/create FromLead atasat la angajament; SetSelectedProgramCode împrospătează oferta Intentului. - LoanPipelineService.Oglinzi de tranzitie dupa fiecare tranzitie; comert esecurile oglinzii nu blocheaza progresia URLA (log + continua). - AppMortgageDTO / AppMortgageSummaryDTO expune angajament Uid / intentionUid / angajamentUid pentru frontend.

  23. · kamo-internal

    Adaugă fila organizator cu lianți, separatoare, documente generate

    Adaugă organizatorul la managerul doc: - Noua filă "Organizator" (poziţia 4) cu o listă de liant + vizualizare despicată a editorului; - "Adauga la Organizator" actiune pe fiecare rand de doctori deschide un culegator de liant (care exista sau creaza noi) - Binder editor: drag-to-recorder items (HTML5 DnD), adăugați pagina Separator (color + eticheta prin ModernColorPicker), adăugați Generated Doc (Cover Page, Tabel de conținut, Foto Album, Word Count) - Photo Album suportă upload-nou-fotos (de asemenea, adaugă la doc manager) și browse-existente - Panou modificatori la scara binder refolosind forma modificatorului de esign (numere de pagini, etichetă, filigran) - modificator per-doc-stanță suprascrie printr-un dialog per- element - Modul de previzualizare redă PDF fuzionat într-un iframe - Butonul de descărcare invocă /api/docs/binders/{id}/render Noua utilizare a magazinului ZustandBinderStore, REST client app/utils/binderApi.ts și traseele proxy Next.js sub /api/docs/binders/* oglindind modelul de proxy imagistic existent.

  24. · DocsService

    Adăugați suport organizator

    Suprafață nouă REST sub /api/docs/binders pentru caracteristica Organizator: - BinderController: CRUD, element addition/update/remote/recomandare, share, rande - BinderService: org-scoped acceschecks, proprietar/share/template visibility, position management - BinderRenderer: bi-pass fuzion (apărare ToC/WordCount), se aplică modificatoare per-stanță și liant-la nivel prin intermediul PdfBuildUtils partajate - Generat-doc registru cu renders pentru Cover Pagină, Tabel de conținut, Word Count, Photo Album (uses MinIO for image bytes) Reutilizări E nevoie de documente modificate pentru control.

  25. · kamo-shared-library

    Adaugă entități și depozite Binder/BinderShare

    Adaugă stratul de persistență pentru noua caracteristică doc-manager Organizator: - Binder (Id lung, membru proprietar, org-scoped, isTemplate, modificator la nivel de liant Json) - BinderShare (UID, membru destinatarId, READ/Write role) - arhivele de date de primăvară JPA cu întrebări telescopice și o uniune "vizibilă pentru membri" (proprietate + șablon partajat) Schema este preluată automat de KamoInitializerService via Hibernate ddl-auto.

  26. · kamolos

    Glimmer banner test, se potrivesc cu viewport, adăuga consimțământ cookie

    - TestModeBanner publică înălțimea sa la --kamolos-banner-h și Globals.css scade din ecranul Min-h astfel încât vizualizarea acasă nu mai mult deversează viewport de pixeli bannerului. - Banner câștigă un sclipitor chihlimbar glisant + puls lent umbra astfel încât citeste ca un avertisment activ, oglindind bara de previzualizare de marketing. - Nou CookieConsentBanner (Accept All / Gestionează cu analize comuta), repiens din versiunea de marketing pentru a utiliza întuneric suprafata aurora + per-tenant --org-primar /-org-gradient.

  27. · kamolos

    ID-uri privind SAFE de suprafață pentru creditor + LO atribuite

    Adaugă LoContactCard cu avatar, puls de prezență, link-ul NMLS verificat, și call/email/message actions in the top-left of hero and apply surfaces, so inițiatorul de credite licențiat al debitorului (numele + ID NMLS) este întotdeauna unul atingeţi uşor Creditorul Footer NMLS este promovat la o pastila de incredere "Licensed · NMLS #" și useAsignedLO returnează acum un demo fals LO până la atribuirea de credit-file LO pământuri. LoGuideChip revine la voce doar deoarece LO are propria suprafață.

  28. · kamolos

    Demo creditor auto-sarcină atunci când nici un chiriaș real rezolvă

    Motivul "încă nu branded" numele gazdei fiind testat, astfel încât aducerea SSR returnat nul și fiecare Suprafaţa cu care se confruntă creditorul a căzut în eroarea Kamo. ă Sistemul de branding funcţiona; pur şi simplu nu avea cu ce marca. Acum, navele un creditor demo complet care auto-încarcă ca rezervă atunci când Real put întoarce nimic și cioburi sunt permise ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* Producția cu Cămaşele dezactivate încă mai cad până la neplata Kamo-ului aşa că nu-i aşa. să trimită vreodată un împrumutat adevărat la "Apex Ipotecar." - lib/org/demoOrg.ts: "Apex vulgaris" aur (#D4A24C) secundar, în mod deliberat departe de aurora astfel încât Efectul marcat este inconfundabil. Populație completă: tagline ("Trei generaţii de te acasă."), NMLS #123456, telefon suport + e-mail, anul stabilit 1989, ambele mărci EHO + EHL, linear-135 direcția gradientului. Nou activBasePath: "/demo-împrumut" pe org tip spune ThemeLogo pentru a încărca /demo-împrumut/logo-plin. svg înainte Încercând MinIO sau retragerea globală. - *************** + logo.svg: real Apex Ipotecar Semnul de cuvânt și marca de vârf de munte în → → gradientul de aur. Nu. doar un semn de cuvânt, o blocare reală. - lib/org/fetchOrganization.ts: întoarce DEMO ORG atunci când în amonte este Nu poate fi contactat sau nici un org este înregistrat și coturi permite. Real-host rezoluţia reală câştigă atunci când este prezentă. - componente/tema/TemaLogo.tsx: consults useOrg().assetBasePath și Pune prefixul în faţa lanţului candidat. Demo creditor terenuri logo; active MinIO chiriași reali încă rezolva mai întâi atunci când populat. - app/layout.tsx: <link rel="preload [62] urmărește aceeași ordine prioritară, astfel încât preîncărcarea SSR vizează logo-ul creditorului demo atunci când modul demo este activă. - ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** bannerul strigă "Arată demo creditor (nici o org chiriaș configurat pentru această gazdă)" astfel încât testers știu ce marcă sunt Vederea este confiscată. Construiește 32/32, 140 teste trece. Reîncarcă aplicația împrumutat și ar trebui Acum vedeți logo-ul Apex ipotecar + numele în antet, burgundy și aur în CTA şi panglici, "Bine aţi venit la Apex Ipotecar." Eroul de aterizare, NMLS #123456 + EHO + EHL în subsol, "Call Apex Ipoteca (800) 555-2739" în fişa de ajutor.

  29. · kamolos

    Face creditor marca primară, nu un accent

    Reformulează aplicația cu care se confruntă debitorii din "produs Kamo cu accente de creditor" "Produsul lui Lender, Kamo ca motor." Fiecare suprafaţă duce acum cu identitatea creditorului. - LenderLockup ******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** Marcaj folosit peste tot. Scales sm → md → lg → xl → erou. Perechi logo-ul (sau semnul verbal de rezervă în culoarea primară a creditorului) cu numele creditorului; tagline opţionale de mai jos. Folosit de fiecare suprafaţă care trebuie să se simtă "Sunt pe site-ul creditorului meu." - BorrowerHeader întotdeauna vizibile (size="md" forceWordmark), drop-shadow colorate în Creditorul e primar. Semnul anterior din colţul 24px a dispărut. Un nou butonul telefonic clic-la-call stă lângă Ajutor cu creditorul frontieră primară + strălucire; pe mobil se prăbușește la un buton pictogramă. ă Accent panglica este 4px (a fost 2px) și încă pans gradient creditor. - Aterizare erou pagina centrat, dominat de împrumut blocare la erou scară într-o carte de sticlă cu puternic --org-primar strălucire. Deasupra ori citește "Bine ați venit la {LenderName} ." numele este titlul), cu tagline creditorului ca subtitrare. O pastilă colorată spune " {Land} · Împrumut la bord" în loc de generic "Kamoville." Butonul CTA este mai mare și poartă o puternică --org-primar strălucire exterioară. - LenderFooter Link de acces + telefon + email + site + marca EHO/EHL. Linia de drepturi de autor se citește "© Toate drepturile rezervate." cu un mic "La bordul lui Kamo." Vizibil pe suprafeţe eroice. - HeroBrandIntro ȘI la fiecare 30-min de întoarcere inactivă (a fost o dată pe perioadă de sesiune). Cardul de logo crește la dimensiunea="erou" într-o carte de sticlă mai puternică cu un mai greu --org-primar strălucire exterioară. "Bine ati venit la {LenderName}." este titlul; Linia de tagline a creditorului este subtitrarea. - generaMetadate cu implicit fiind doar numele de creditor. Fiecare pagină de copii citeşte creditor-primul în fila browser și cărți OG. numele site-ului, titlul și descrierea tuturor fluxurilor din înregistrarea org. Construiește 32/32, 140 teste trece. Dacă chiriașul dvs. config a populat tagline / nmlsId / telefonSuport / emailSupport / yearEst / colorPri / colorSec / logo activ, site-ul Acum arată fără echivoc ca produsul creditorului. Cu nimic. populat se degradează graţios la "Kamo" implicit.

  30. · InitializerService

    Migrație pentru brandul cu care se confruntă debitorii + coloanele de prezentare a informațiilor

    Adaugă cele șapte coloane anulate Organizația kamo-împărtășită-library Entitatea declară acum (TAGLINE / NMLS ID / PHONE support / EMAIL support) / ECHIAL HOUSING DISCLOSURE / on PRIMARY TEXT / GRADIENT DIRECTION) so aplicația kamo-los împrumutat poate ridica branding creditor fără schema erori pe rândurile de orgi existente. @Ordin (35) LeadCompanyColumnRunner (40). Ipotent prin ADD COLUMN DACĂ NU EXISTĂ; sigur pentru a re-run. Pe politica de proiect acest fisier nu este executat aici este pornit de către utilizator.

Universul tău te așteaptă.

Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.

Gratuit pentru totdeauna — nu este necesar un card de credit