1.6 KiB
1.6 KiB
Entities
Purpose
The entities layer defines the core domain models of the application.
Entities represent business objects used throughout the system, such as User, Product, Project, or Message.
This layer contains pure type definitions that describe how data is structured inside the application.
Entities are stable, reusable models that can be used across any layer.
entities/
| --- user.ts # { id: string; name: string; email: string }
| --- product.ts # { id: string; name: string; price: number }
| --- message.ts # { id: string; content: string; createdAt: string }
| --- enums.ts # { UserRole, ProductCategory }
or
entities/
| --- user/
| | --- interfaces.ts # { id: string; name: string; email: string }
| | --- types.ts # { id: string; name: string; email: string }
| | --- enums.ts # { UserRole }
| | --- rules.ts # MIN_ALLOWED_AGE = 18
| | --- index.ts # export all entity types
| --- product.ts # { id: string; name: string; price: number }
| --- message.ts # { id: string; content: string; createdAt: string }
Responsibilities
The entities layer is responsible for:
- defining domain models
- defining entity-related enums or constants
- providing shared types used across the application
export type User = {
id: number;
name: string;
email: string;
};
export enum UserRole {
ADMIN = "admin",
SIMLPE_JACK = "simple_jack",
}