Basic Architecture of Sport Web

This commit is contained in:
Nông Đức Huy
2026-08-11 13:37:25 +07:00
commit 8032fff6ac
262 changed files with 20348 additions and 0 deletions
@@ -0,0 +1,23 @@
import { Module } from '@nestjs/common';
/**
* OrdersModule — boundary declared, implementation pending.
*
* Owns (exclusively): `orders`, `order_items`, `order_status_history` — milestone 2
*
* Order lines snapshot product name, variant title and price at purchase time. Never join to the live catalog for historical orders: yesterday’s receipt must not change when a price does.
*
* EXTRACTION CANDIDATE: designed so it could become its own service. It must
* therefore never read another module’s tables directly, and it communicates
* outward through domain events.
*
* Anatomy once implemented (see ../README.md):
* orders.module.ts wiring only
* orders.controller.ts HTTP surface, no logic
* orders.service.ts business rules
* orders.repository.ts the only file that touches Prisma
* dto/ request/response shapes
* public/ what other modules may import
*/
@Module({})
export class OrdersModule {}
@@ -0,0 +1,10 @@
/**
* Public surface of OrdersModule.
*
* This barrel is the ONLY thing other modules may import from here. Everything
* else — repository, DTOs, internal services — is private, and the ESLint
* boundary rule in @sport/eslint-config/nest enforces it.
*
* Keep it narrow: each export is a promise to the rest of the codebase.
*/
export {};