This is a private Composer repository.
To use it, you have to add this repository to your composer.json file.
Add this Composer
repository to your project's composer.json
file, then you can require these private packages just like you would with
one from Packagist.
{
"repositories": [{
"type": "composer",
"url": "https://satis.viartas.com"
}]
}
Click on an individual package's release version to get a snippet of code for your project's dependencies.
Read more on how to handle composer private packages.
Viartas Auth — Fortify-backed login, register, password reset and email verification, with per-environment × per-locale route registration and public/private API token issuance via Sanctum.
Viartas CKEditor 4 — WYSIWYG editor (n1theme skin, image upload, YouTube plugin) with Laravel File Manager bridge, published to public/vendor/ckeditor.
Viartas Core — foundation module: shared core:: translations, admin dashboard route, public web search routes, and the global form-validator asset.
Form Builder package for Viartas CMS — fields, groups, validation, translatable support
Viartas ModuleManager — DB-driven runtime module management: per-env enable, per-route SEO/GEO, sidebar identity.
Viartas Themes — admin UI + runtime resolution for per-environment theme overrides (views, controllers, configs, translations).
Viartas Translations — UI strings, route-segment translations, model-column labels and locale management.
Viartas Users — admin CRUD for users + roles, profile zone, API token management and permission-group metadata. Provides the User model used as the auth provider.
Viartas Badges module — cross-module translatable label chip (text + Bootstrap contextual color) attached polymorphically via the HasBadge trait to any badgeable model. Package name uses cms-badges prefix because 'badges' is a GitLab reserved path; PHP namespace remains ViartasCross\Badges.
Viartas Geo module — cross-module GEO (Generative Engine Optimization / AI search optimization): AI summary, Q&A pairs, entities and bot access control attached polymorphically via the HasGeo trait to any geoable model.
Viartas Logs module — admin UI for spatie/laravel-activitylog. Adds a per-model 'Logs' tab and a global last-changes dashboard across any loggable model. Cross-module, decentralized config.
Viartas Media module — Spatie Media Library integration with per-model media tabs, polymorphic galleries, on-demand conversions, crop modal and cache-busted URLs. Cross-module, decentralized config.
Viartas Microdata module — cross-module Schema.org structured data generator (itemscope/itemtype/itemprop HTML attributes) attached polymorphically via the HasMicrodata trait to any microdataable model.
Viartas SEO module — cross-module meta tags / Open Graph / noindex-nofollow / canonical manager attached polymorphically via the HasSeo trait to any seoable model.
Viartas TestAudit module — browser-test audit log (feature/test_run/fix records produced by Playwright runs and manual artisan commands) + admin review UI.
Florial companies (B2B clients) domain — the Company model (florial_companies) with a pending→approved→suspended approval workflow, admin CRUD + a 5-tab company-detail (Info/Employees/Orders/Invoices/Users). Single-tenant; sales-rep + company-admin linkage. (Florial/task-11).
Florial core — client environment seam. Registers the /savitarna, /pardavimai and /operacijos route seams for the Florial flower-subscription product (Florial/task-1). Catalog + domain modules land in sibling va-florial/* packages.
Florial employees domain — the Employee model (florial_employees) and their recurring Occasion model (florial_occasions: birthday/name_day/work_anniversary/anniversary/jubilee, each with a date + assigned package). Employees are pure entities with no login account (discovery §1). Admin CRUD with nested occasions. (Florial/task-12).
Florial B2B invoicing — the Invoice + InvoiceLine models (florial_invoices, florial_invoice_lines) with monthly aggregation of a company's delivered orders, a separate VAT line, statuses (draft/sent/paid/overdue) and an admin listing with mark-paid. Single-tenant. (Florial/task-21).
Florial notifications core (Florial/task-36) — per-user in-app notifications (florial_user_notifications) shown in the savitarna cabinet + DB-editable email templates (florial_email_templates) with admin CRUD. The template bodies are read by the email/telegram channels (task-37/38). Single-tenant; no stancl/tenancy.
Florial orders core — the Order model (florial_orders) with a guarded status machine (planned → confirmed → preparing → delivering → delivered/cancelled) and a global admin orders listing (type/status filters + manual status change routed through the machine). B2B (company_id + employee_id) or B2C (subscriber_id) via a `type` discriminator. Single-tenant. (Florial/task-14).
Florial packages catalog — the bouquet/package catalog (price incl. VAT, cost, computed margin, occasions, one Media image). Single source of truth consumed by Orders, the CSV import and subscriptions (Florial/task-7).
Florial payments gateway abstraction (Florial/task-39 — LATER/Phase 8). A swappable PaymentGateway interface + Stripe implementation for the B2C annual one-off charge (saved card / SetupIntent). Persists into the task-23 florial_payments ledger (adds gateway/gateway_id columns). Interface stable so task-40 can add Paysera without touching call sites. Single-tenant; no stancl/tenancy.
Florial procurement summary — aggregates `confirmed` orders for the nearest supply window BY PACKAGE (simple unit count, NOT a stem BOM) into a ProcurementSummary + ProcurementSummaryLine, built by `florial:procurement-build` and surfaced to floristers at /operacijos/tiekimas ("how many of each package to buy"). Single-tenant. (Florial/task-17).
Florial sales domain — the SalesRep model (florial_sales_reps) with a portfolio read off florial_companies.sales_rep_id (task-110 — the JSON assigned_companies column is gone) + a per-order commission ledger (florial_commissions, state derived from order status: planned…delivering → pending, delivered → earned, cancelled → written_off, mark-paid → paid). `florial:commissions-accrue` recomputes daily (idempotent). Admin: sales-reps CRUD + commissions history with mark-paid (single + bulk) + a per-rep wallet (available = earned − paid). Single-tenant. (Florial/task-24).
Florial subscriptions — B2C annual plans (Standartas/Premium/Luxe) and (task-9) space plans catalog, plus the B2C (task-19) and space (task-20) subscription runtime + the subscriber cabinet (task-29). This task (Florial/task-8) adds the SubscriptionPlan model + admin CRUD.
Viartas Account module — user-facing account web zone (profile, settings, password change). Auth + verified protected, web-only.
Viartas ContentFields module — universal custom-field framework; admin defines field definitions per target model (ContentFieldGroup → ContentField → ContentFieldOption + polymorphic ContentFieldValue), surfaced via the HasContentFields trait as a 'Papildomi laukai' tab on target edit pages.
Viartas CustomLinks module — reusable URL link library; plug-in source for the Menus picker. Admin-only (no public URL).
Viartas DemoSeedersPack module — console-only demo seeder + supplier feed fixture + default UpdateFields dictionary bundle. Ships BigCatalogDemoSeeder / QuickCatalogDemoSeeder / DefaultUpdateFieldsDictionariesSeeder plus the `demo:refresh` and `demo:fixtures:generate` commands. No migrations, no UI, no permissions. Registered LAST (priority 110) so all catalog packages are available to the seeders.
Viartas FAQ module — hierarchical FAQ categories + entries, slug-addressable on public web with Schema.org Question/Answer microdata.
Viartas Forms module — admin form-builder UI on top of the va-core/form-builder DSL. DB-backed form definitions, [[form:slug]] shortcode render, submissions + email notifications.
Viartas GridBuilder module — lightweight page-builder lite. Single-blob GridContent (translatable HTML + grid_data structure) attachable to any content model via the HasGridContent trait (morphOne); admin grid-contents AJAX CRUD + per-target Blokai tab + server-side-rendered, cacheable <x-gridbuilder::grid-content> Blade component. Legacy GridLayout/GridBlock tree dropped in task-5f.
Viartas HeaderSearch module — catalog-focused header search dropdown + autocomplete API + click tracking + admin analytics dashboard. Additive on top of Core's existing /paieska search.
Viartas installation partners module — 3-level hierarchy (Country → City → Partner). Tire/wheel mounting partner directory with addresses, contact info, work hours, Google Maps embed and Schema.org LocalBusiness/AutoRepair microdata. Slug-addressable on the public web.
Viartas Menus module — DB-driven navigation (admin sidebar + web header/footer) with drag-drop tree, polymorphic menuable items, and per-locale labels.
Viartas News module — individual news articles, slug-addressable on the public web (catchall priority 400), with one primary category + extra categories pivot.
Viartas NewsCategories module — hierarchical taxonomy for news articles, slug-addressable on the public web (catchall priority 450).
Viartas Newsletter module — email subscription flow (double opt-in, unsubscribe token, admin list). Skeleton: subscribers DB + model + provider + permissions.
Viartas Pages module — primary CMS content (hierarchical pages, multi-level slug paths), root-URL addressable through the catchall slug resolver (priority 500, catch-all fallback).
Viartas Stores module — physical retail outlets + customer pickup points with address, contacts, multi-shift weekly schedule and holiday exceptions. Public web URL `/parduotuves/{slug}` (LT) / `/stores/{slug}` (EN) via slug catchall (priority 260). Helpers Store::isOpenAt() / getNextWorkingDate() feed per-store delivery scheduling in Suppliers.
Viartas Tags module — cross-module tagging built on spatie/laravel-tags. Per-module type isolation (Tag::where('type', '{moduleSlug}')); modules opt in via a 'taggable' config block + Spatie's HasTags trait.
Viartas UpdateFields module — translation dictionary between supplier feed values and our canonical values (AttributeValue, ProductBrand, ProductSeries, ProductModel, ProductColor, ContentFieldOption, free_text, boolean). Used by Suppliers BaseDriver::applyUpdateFields() per feed row; admin-only dictionary catalog + per-supplier override entries + bulk CSV import/export + lookup debug UI.
Seglo core — accounting environment seam. Registers /accounting/* route seam for the Seglo reconciliation product (task-1). Tenancy + domain modules land in sibling va-seglo/* packages.
Seglo expenses — reimbursable people + their expenses (task-32 scaffold). people + expenses tables (tenant DB, entity_id FK + EntityScope), Person/Expense models with an ExpenseStatus enum (pending/clarify/paid/rejected) and an idempotent demo seeder. Self-service UI (task-33), mobile capture (task-34), source-people admin (task-35) and ledger reimburse (task-36) land later.
Seglo export — the accounting export module (task-22). exports + period_locks tables (tenant DB, entity_id FK + EntityScope), ExportManager + CsvAdapter (adapter pattern), and the 3-step wizard (format → period+entity → preview → CSV download). Exports ONLY reconciled (ok) rows, with intercompany flags. At /accounting/eksportas.
Seglo insights — read-only KPI aggregation. task-42: KpiAggregator (Nesusegta / Pinigai limbo + aging / Nepavyko / Įplaukos / Išlaidos / Atsiperka €) computed from the ledger via StateResolver, and the /accounting/apzvalga dashboard. No tables of its own. Health metrics + leader/license land in task-43+.
Seglo ledger — the reconciliation core. task-12: the transactions table (tenant DB, entity_id FK + EntityScope), Transaction model + read-only register at /accounting/transakcijos, MBKR demo transactions. Invoices/matching/reconcile land in task-13+.
Seglo OCR — document recognition. task-30: a standalone package that turns a PDF/photo invoice into structured fields. OcrService is an adapter over an external OCR API (OcrDriver interface + HttpOcrDriver + FakeOcrDriver for tests, chosen by config('ocr.driver')); FieldExtractor pulls supplier / amount / VAT (PVM) / IBAN / invoice number / date out of the OCR text with a per-field confidence. Low-confidence (or unrecognised) documents are NEVER auto-assigned — they are flagged needs_review and delegated to the human-review queue (task-18) via the SOFT OcrLowConfidence event. Dependencies on va-cross/media (file source) and va-seglo/ledger (queue) are SOFT (class_exists / event listener), so the package is testable in isolation with FakeOcrDriver. UI integration (drawer / upload / mobile) is task-31.
Seglo rules — the reconciliation rule engine (task-24 scaffold). rules table (tenant DB, entity_id FK + EntityScope), Rule model + full CRUD (/accounting/taisykles): priority list, enable switch, "suveikė N×" (hit_count). The engine (RuleEngine evaluate/apply) lands in task-25.
Seglo security — the append-only audit trail (task-37). audit_log table (tenant DB, entity_id FK + EntityScope, append-only), AuditLogger service capturing who/what/when/ip for every Seglo mutation, and a CSV export at /accounting/saugumas/audit/csv. Foundation for 2FA/sessions/allowlists (task-38..41).
Seglo sources — ingest. task-20: the sources + ingest_log tables (tenant DB, entity_id FK + EntityScope), Source/IngestLog models + the sources hub. task-21: the upload connector — StatementParser (CSV/XML/XLSX, Luminor/SEB/Swedbank), Deduplicator (content_hash), UploadConnector writing ledger transactions, at /accounting/saltiniai/ikelimas. task-28: the email fetch@ connector — EmailConnector + SupplierRecognizer (VAT/IBAN), sender allowlist (BEC gate, email_allowlist tenant table), inbound webhook (secret-gated, tenant/Entity resolved from the fetch@ address) creating ledger invoices, at /accounting/saltiniai/email. task-29: robot (scraping) connectors — robot_queue tenant table + RobotQueueItem, RobotConnector (test/run/needsReauth stub), RunRobotQueueJob (queued→running→done/failed/reauth status machine), encrypted credential vault, reauth flow + test-connection at /accounting/saltiniai/robotai; cloud (OAuth stub + watched folder), connect (copyable webhook URL + secret-gated inbound) and bank (PSD2 placeholder) screens.
Seglo tenancy foundation — stancl/tenancy (DB-per-tenant), central tenants/domains (task-5), the Group/Entity tenant hierarchy + entity_user pivot + EntityScope global scope + demo seeder (task-6). The tenant.scope middleware + session-driven active Entity land in task-7.
Viartas Cart module — manages cart state (NOT checkout). Provides cart / cart_items / cart_events tables, AJAX add-to-cart endpoints, slide-out cart drawer, /krepselis (LT) | /cart (EN) full cart page, required-addon auto-add (is_required flag), guest cart merge on login, price-drift detection, and an abandoned-cart cleanup console command. Cross-FK invariants: cart_items has product_id XOR product_variation_id with an addon_of_cart_item_id tree hierarchy. HARD requires va-shop/products.
Viartas CatalogBrowsing module — pure UX layer that composes the product listing grid, dynamic filter sidebar (per CategoryAttributes is_filterable_lg/sm), sort dropdown and cursor-based pagination surfaced on ProductCategory web pages. No DB tables of its own. HARD requires va-shop/products + va-shop/category-attributes.
Viartas CategoryAttributes module — pivot between ProductCategory × Attribute with 8 policy flags (is_variation/is_attribute/is_content_field/is_visible_in_product/is_visible_in_category/is_filterable_lg/is_filterable_sm/is_selectable). Single 'Atributai' admin tab on ProductCategory edit page (priority 35). Drives Products variation generation + category listing filtering. Admin-only (no public URL, no slug resolver). First Wave 5 package with 3 HARD requires.
Viartas CategoryRelations module — two pivot tables binding ProductCategory to (a) other ProductCategories (cross-sell/up-sell) and (b) Products (category-level default related/addon set). Two admin tabs on ProductCategory edit; admin-only, no public URL. HARD requires va-shop/products (FK category_related_products.product_id → products.id).
Viartas ModelTests module — third-party model test results (AutoBild, ADAC, etc.) where ProductModels are ranked. Each test belongs to a ProductCategory; ranks/scores/notes live on the model_test_product_model M:N pivot. Public detail URLs resolve via the slug catchall at /{category-fullslug}/testai/{test-slug} (priority 240). HARD requires va-shop/product-categories + va-shop/product-models.
Viartas ProductAttributes module — 3-level catalog dictionary hierarchy AttributeGroup → Attribute → AttributeValue (Matmenys → Plotis → 205; Spalva → Color → Raudona). Admin-only (no public URL, no slug resolver). Drives Products variations + ContentFields source + UpdateFields lookup. Root taxonomy package — CategoryAttributes (task-60) HARD requires it.
Viartas ProductBrandGroups module — flat concerns / parent groups for ProductBrands (Michelin Group, VW Group, ...). Slug-addressable on the public web via the catchall registry (priority 300) under /koncernai/{slug} (LT) or /groups/{slug} (EN).
Viartas ProductBrands module — flat manufacturers (Michelin, Samsung, Taurus, ...). Admin-only domain entity with NO public URL of its own: brands surface on the public web only via BrandCategory pages, ProductBrandGroup landings, ProductSeries and ProductModel pages. Ships the BrandCategory pivot-as-content pages (priority 310 catchall) as a submodule.
Viartas ProductCategories module — hierarchical e-commerce taxonomy. Slug-addressable on the public web via the catchall registry (priority 320). Root of the Shop FK chain — Products, ProductModels, CategoryAttributes, ModelTests etc. depend on it.
Viartas ProductColors module — color / finish / design variants of a concrete ProductModel (Diamond Black, Matte Bronze, Galaxy S24 Violet, ...). Leaf node of the catalog hierarchy. Public URL `/{cat-fullslug}/{brand-slug}/{series-slug?}/{model-slug}/{color-slug}` (catchall priority 270, lowest in chain). HARD requires va-shop/product-models (FK product_colors.model_id → product_models.id).
Viartas ProductFilters module — universal user-side product filter facade. Exposes ProductFilter::forCategory()/forBrand()/forBrandGroup()/forSeries()/forModel()/forColor() fluent builder + ProductFilterService backbone + reusable Blade components (facet-sidebar, checkbox-group, price-range, active-filters). Wraps CatalogBrowsing FilterQueryComposer/SortApplier (single source of truth for filter semantics) and adds scope-based cache invalidation observers. No public URL of its own. HARD requires va-shop/catalog-browsing + va-shop/products.
Viartas ProductImports module — cross-supplier import pipeline (staging + normalization + matching + apply + revert). Owns the per-row `product_import_staging_rows` table (3 JSON columns original/detected/corrected + 6-bucket matcher enum) plus normalization/extraction rules, code templates, attribute overrides/changes and the persistent EAN blocklist. StagingWriter is consumed by Suppliers' BaseDriver::import() so every parsed feed row materializes BEFORE matching. Bundles the 4 cascade Apply resolvers (Brand/Model/Product/Stock), RevertService, CatalogSuggester, per-feed stepper Dashboard + global Naujinimai Overview, `imports:archive` cron and the import/apply/image/rematch/renormalize queue jobs. Admin-only — no public URL. HARD requires va-shop/suppliers.
Viartas ProductModels module — concrete product entries (Galaxy S24, Pilot Sport 4, ...). Tier-3 shop taxonomy leaf in the Brand → Series → Model chain. Belongs to a (brand_id, category_id) pair plus optional series_id. Public URL `/{cat-fullslug}/{brand-slug}/[{series-slug}/]{model-slug}` (catchall priority 280). HARD requires va-shop/product-series (FK product_models.series_id → product_series.id).
Viartas ProductSeries module — brand series within a category (Galaxy S, Pilot Sport, ...). Tier-2 shop taxonomy in the Brand → Series → Model chain. Public URL `/{cat-fullslug}/{brand-slug}/{series-slug}` (catchall priority 290). HARD requires va-shop/product-brands (FK product_series.brand_id → product_brands.id).
Viartas Products module — main product entity + variations + per-supplier stock + attribute pivots + related/addon products. Central node of the Wave 5 shop FK chain. Public web URL `/{cat-fullslug}/{product-slug}` (catchall priority 250, leaf entity). HARD requires va-shop/product-categories, va-shop/product-brands, va-shop/product-models, va-shop/product-colors.
Viartas Suppliers module — external feed/distribution partner registry + import driver framework + source connector layer + scheduler. Bundles Supplier (entity), SupplierFeed (per-supplier × category import config), SupplierDeliverySchedule, SupplierUnavailableDate, SupplierImportMapping, SupplierImportSession, SupplierFeedBlockRule and per-row import events. Driver hierarchy (BaseDriver → 4 generic + TyreImportDriver → VdbaCarTyreDriver), 5 source connectors (local_upload/http/ftp/api_paginated/custom), mapping operations envelope (copy/regex_extract/split/concat/sum/formula), encrypted FTP creds, and a supplier:update {code}[:{feed}] artisan command for manual + scheduler-driven feed runs. Admin-only — no public URL. HARD requires va-modules/stores.
Cleverphant — content website theme for educational institutions (cleverphant.lt redesign base).
Florial — flower-subscription product theme (savitarna/pardavimai/operacijos client cabinets + public web).
Viartas CMS — Protera public web theme (tyres / wheels / batteries storefront)
Seglo — accounting/reconciliation product theme for the `accounting` environment.
Viartas CMS — default admin theme
Beautiful activity log UI for Spatie Activity Log with Viartas Admin Theme
Viartas core
Viartas ckeditor
Viartas select2
Viartas swal2
Viartas shop core
Viartas shop discount-codes
Viartas florial theme
This Composer repository is powered by Satis