@verisure-italy/alis-types
v1.7.2
Published
Types for ALIS service
Readme
ALIS Types
TypeScript & Zod schemas for ALIS service domain entities: leads, channels, blacklist, enrichment settings and related enums.
Features
- ✅ Lead domain model with nested transmission & blacklist status
- ✅ Discriminated union for closed day details
- ✅ Optional enrichment data structure
- ✅ Writable variants for create/update operations
- ✅ Reuse of shared timestamp & zip code primitives
Installation
pnpm add @verisure-italy/alis-typesEnums
import { blacklistScopeSchema, channelTypeSchema, sourceTypeSchema, leadProvenanceSchema } from '@verisure-italy/alis-types'- Blacklist Scope:
source | supplier | channel | phone_number | zip_code | vlms_ip | ip - Channel Type:
push | pull - Source Type:
empty | push | pull - Lead Provenance:
funnel | c2c | api
Core Schemas
Blacklist / WritableBlacklist
import { blacklistSchema, writableBlacklistSchema } from '@verisure-italy/alis-types'Writable variant omits id & timestamps.
Channel / WritableChannel
import { channelSchema, writableChannelSchema } from '@verisure-italy/alis-types'Includes type (enum) plus audit fields.
EnrichmentSettings / WritableEnrichmentSettings
import { enrichmentSettingsSchema, writableEnrichmentSettingsSchema } from '@verisure-italy/alis-types'Stores external enrichment endpoints.
Lead / WritableLead
import { leadSchema, writableLeadSchema } from '@verisure-italy/alis-types'Lead contains provenance, optional zip code, arbitrary data payload.
LeadDetails
Extended lead with nested metadata:
supplier,channelUUID referencespipelineCompletedAttimestampblackliststatus blocktransmissionstate (delay, transmitted, scheduling)timeRecallmomentclosedDaydiscriminated union byisClosedenrichmentDataoptional_embeddedresolved related objects
Closed day union pattern:
if (leadDetails.closedDay.isClosed) {
// Access leadDetails.closedDay.detail.openingTime
}Property / WritableProperty
Configuration for source-required properties.
import { propertySchema, writablePropertySchema } from '@verisure-italy/alis-types'property must match /^[A-Za-z_]+$/.
EnrichmentData / OverbookingData
Optional enrichment wrapper containing overbooking allocation.
import { enrichmentDataSchema } from '@verisure-italy/alis-types'Defaults to null.
Usage Examples
Parse a lead:
const parsed = leadSchema.safeParse(payload)
if (!parsed.success) {
// handle validation errors
} else {
const lead = parsed.data
}Check closed day:
if (leadDetails.closedDay.isClosed) {
console.log(leadDetails.closedDay.detail.nextWorkingDay)
}Writable pattern for creation:
const newLeadInput = writableLeadSchema.parse(req.body)Related Packages
@verisure-italy/shared-types(timestamp, zip code, user agent info)@verisure-italy/overbooking-types(allocation types inside enrichment)
License
Internal Verisure Italy package
