Skip to main content

waqas@dev:~$man -s7 architecture

How the systems on this site are actually put together. The patterns, the trade-offs behind them, and the diagrams that make them legible.

## Pricing Calculation

How room prices are calculated step by step

### Calculation Flow

Calculation Flow

### How It Works

Prices flow through stages: base calculation, then modifiers like taxes and discounts. Each stage is independent, so new pricing rules can be added without changing existing code. The result includes a full breakdown of how the price was calculated.

waqas@dev:~$cat PRINCIPLES.md

Clean Architecture

Dependencies point inward. The domain layer knows nothing about the layers outside it, so business logic stays framework-agnostic.

SOLID Principles

Single responsibility, open-closed, Liskov substitution, interface segregation, dependency inversion.

Domain-Driven Design

Bounded contexts, aggregates, value objects and a shared vocabulary, for domains complicated enough to need them.

Type Safety

PHPStan level 9, strict types, readonly classes and typed properties, so the failure surfaces before it ships.

Immutability

Value objects and DTOs that return new instances rather than mutating. Cheaper to reason about than to debug.

Testability

Dependency injection, interfaces and pure functions, so a unit test does not need a database to run.