@ossy/consultancy
v3.21.0
Published
Consultancy feature package — schemas, forecasts UI, and assignment margins
Readme
@ossy/consultancy
Consultancy feature package for the Ossy platform — schemas and UI for employees, contracts, company information, vacations, the opportunity → proposal sales pipeline, forecasts, and an assignment margin calculator.
What's included
Pages
| File | Page id | Default paths |
|---|---|---|
| consultancy.page.jsx | consultancy/home | /consultancy (en), /konsultverksamhet (sv) |
| org.page.jsx | consultancy/org | /consultancy/org, /konsultverksamhet/orgdetaljer |
| margins.page.jsx | consultancy/margins | /consultancy/margins, /konsultverksamhet/marginaler |
One sidebar item (Consultancy). Overview (home), Margins, and Org Details are in-product tabs under that surface.
The home Overview tab shows fiscal-year KPIs via @ossy/calendar's useForecast / ForecastClient (engine stays in calendar). Org Details shows company data (fiscal years, registration, VAT) via @ossy/calendar's useCompany hook. Margins is a standalone calculator (not yet wired to live resources).
Schemas (ADR 0006)
Document types are defined in *.schema.js. Import canonical ids from ConsultancySchema.
| Schema | Id | Purpose |
|--------|-----|---------|
| Employee | @ossy/consultancy/schema/employee | Consultant employment records |
| Contract | @ossy/consultancy/schema/contract | Client contracts linked to employees |
| Company Basic Info | @ossy/consultancy/schema/company-basic-info | Company registration and VAT details |
| Vacation | @ossy/consultancy/schema/vacation | Employee vacation periods |
| Opportunity | @ossy/consultancy/schema/opportunity | Sales pipeline leads and qualification |
| Proposal | @ossy/consultancy/schema/proposal | Draft and sent proposals linked to opportunities |
| Calculator | @ossy/consultancy/schema/calculator | Assignment margin form fields (Platform category — not in create picker) |
Document instances are stored under /@ossy/consultancy/ (see the location export in locations.js).
Opportunity → proposal pipeline
These schemas support platform automation workflows:
- Opportunity — tracks lead status (
new→qualified→proposal→won/lost/deferred), fit scoring, contact details, and a link to a proposal vialinkedProposalId. - Proposal — references its parent opportunity via
opportunityIdand progresses throughdraft→sent→accepted/rejected.
Exports
| Export | Description |
|---|---|
| CreateConsultancyButton | Add CTA that opens create-document for consultancy schemas |
| ConsultancySchema | Canonical schema id constants |
| employeeSchema, contractSchema, … | Schema definitions for manifest build |
| calculateAssignmentMargin, … | Pure margin / employer-cost helpers |
| location | Workspace storage path (/@ossy/consultancy/) |
| Definition | Feature metadata for store/sidebar (status: ['beta']) |
Usage
npm install @ossy/consultancy
npm run build@ossy/app discovers pages automatically via "ossy": { "src": "./src" } in package.json. Schemas are picked up from *.schema.js files at build time.
import { ConsultancySchema, calculateAssignmentMargin } from '@ossy/consultancy'
ConsultancySchema.employee
// => '@ossy/consultancy/schema/employee'Migration from resource templates
This package migrated from *.resource.js to ADR 0006 schemas. Stored resource.type values changed:
| Before | After |
|--------|-------|
| @ossy/consultancy/employee | @ossy/consultancy/schema/employee |
| @ossy/consultancy/contract | @ossy/consultancy/schema/contract |
| @ossy/consultancy/companyBasicInfo | @ossy/consultancy/schema/company-basic-info |
| @ossy/consultancy/vacation | @ossy/consultancy/schema/vacation |
Dependencies
| Package | Role |
|---|---|
| @ossy/schema | Canonical id grammar and schema validation |
| @ossy/calendar | DataLoader, useCompany, useForecast |
| @ossy/design-system | Layout primitives and Page component |
| @ossy/router-react | Page routing |
| react | UI |
