- Shipped
- 14 noiembrie 2026 la 22:26 UTC
- Author
- Kamo
- Commit
- 39906c0
- MlosProgramsController (/api/security/mlos/config, market-setup dreapta, auditat, undoable): GET /programs (cel Catalog cu nume de afișare, oferit astăzi, variantă, canale, versiunea în vigoare, programat), GET /programs/{id}/history, GET|PUT /product-enablements (basedOnVersion → 409 STALE), GET /channels (program x canal) CRUD (structurat — predicatele în formă liberă sunt refuzate; scopul este derivat), suport pentru scenarii CRUD + check ("Tipuri de împrumut Kamo Handles", MlosScenarioSupportService: cel puțin o dimensiune, fără regulă duplicat). - MlosCompanyLicensesController: lista de licențe ONE Company (Imprimare pe dezvăluiri + propoziție de dezvăluire, stat opțional pentru rândul companiei NMLS, normalizarea stării ISO, rândul NMLS completează numele legal al profilului / NMLS primar), /licensing/needs-you și /licensing/coverage (date despre harta licențelor) pentru fiecare deținător de drepturi de setare. - Executare: setSelectedProgram refuză un program neoferit sau neoferit pe canalul de împrumut; un fișier de împrumut Schimbarea canalului o verifică din nou; selectorul de programe principal, scorul LOE **************** MLOS_TAKE_APPLICATION switch endpoint eliminat) și o nouă citire publică oferită de programe de către gazdă urmează catalogul. - Poarta de licențiere (odată ce o licență de stat este introdusă): creați-de-lead, modificări de stare a proprietății (personal + debitor), Promovarea portalului și aplicarea publică refuză o proprietate într-o stare nelicențiată cu o propoziție simplă (409 STATE_NOT_LICENSED); BaseLosController.error redă refuzurile MLOS în loc de 500. - LicenseRenewalReminderJob: 60/30/7 zile de memento-uri pentru companie (configurarea pieței) și ofițer (propriu) licențe, o alertă Per eveniment prin intermediul centrului de notificare (LICENSE_RENEWAL_COMPANY / LICENSE_RENEWAL_OWN), singleton-blocat. - OrgStateLicenseController șters; subsolul public citește lista fuzionată.
