Skip to main content
Model is the center of business logic. All business logic including data validation, complex queries, transactions, and domain rules is handled in Model.

What is Business Logic?

Business logic is the core rules and processes of an application:

Data Validation

Input value validation Duplicate checks, format validation

Data Transformation

Data processing and calculation Encryption, format conversion

Domain Rules

Business constraints Permissions, state transition rules

Workflows

Complex processes Orchestrating multi-step operations

Business Logic Writing Principles

1. Focus on Model

Write business logic only in Model.

2. Type Safety

Validate types with Zod schemas.
types.ts
model.ts

3. Use Transactions

Wrap related operations in transactions.

Data Validation Patterns

Duplicate Check

Conditional Validation

Range Validation

Data Transformation Patterns

Encryption

Normalization

Calculated Fields

State Transition Patterns

State Machine

Permission-Based State Changes

Complex Query Patterns

Conditional Query Building

Complex JOINs

In Puri, join/leftJoin take a column of an already available table first and a column of the newly joined table second — the opposite order from Knex.

Subquery Usage

Transaction Patterns

Basic Transaction

Manual Transaction

Nested Transactions

Error Handling Patterns

Clear Error Messages

Custom Exceptions

Async Processing Patterns

Parallel Processing

Sequential Processing

Next Steps

BaseModel Methods

Learn about methods provided by BaseModel

Puri Query Builder

Writing type-safe queries

Transactions

Detailed transaction guide

Testing

Testing business logic