Files
template-app/modules/invoicing/module.ts
T
2026-11-14 09:56:45 +00:00

52 lines
2.0 KiB
TypeScript

// SPDX-License-Identifier: LicenseRef-ConusAI-Template-1.0
import { defineModule } from "@conusai-kit/core"
import { INVOICING_PROCEDURES } from "./adapters/procedures.js"
import { en, lt } from "./i18n/index.js"
export const invoicingModule = defineModule({
id: "invoicing",
// A business module is its service, which this app reaches on these profiles (test/module-profiles.test.ts).
profiles: ["postgres", "mariadb", "mongodb"],
version: "0.1.0",
kit: "^0.1.0",
requires: ["tenancy"],
permissions: {
"invoicing.invoice.read": "viewer",
"invoicing.series.read": "viewer",
"invoicing.invoice.write": "editor",
"invoicing.invoice.issue": "admin",
"invoicing.invoice.credit": "admin",
"invoicing.invoice.void": "admin",
"invoicing.series.manage": "admin",
},
procedures: INVOICING_PROCEDURES,
serviceRequirements: [
{
transport: "business",
service: "invoicing",
apiRange: "^1.1.0",
profiles: ["postgres", "mariadb", "mongodb"],
operations: {
"invoicing.invoice.list": ["invoicing.invoices:read"],
"invoicing.invoice.get": ["invoicing.invoices:read"],
"invoicing.invoice.ubl": ["invoicing.invoices:read"],
"invoicing.series.list": ["invoicing.series:read"],
"invoicing.invoice.draft": ["invoicing.invoices:write"],
"invoicing.invoice.update": ["invoicing.invoices:read", "invoicing.invoices:write"],
"invoicing.invoice.issue": ["invoicing.invoices:issue"],
"invoicing.invoice.credit": ["invoicing.invoices:write"],
"invoicing.invoice.void": ["invoicing.invoices:void"],
"invoicing.series.create": ["invoicing.series:write"],
},
configuration: [],
dependencies: [],
dataClasses: ["personal", "financial"],
partitionRequired: true,
remediation: "/docs/business-services.md",
},
],
ui: {
nav: [{ scope: "project", label: "invoicing.title", href: "invoicing", permission: "invoicing.invoice.read" }],
},
i18n: { en, lt },
})