mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-27 23:06:54 +05:00
Add @puaros/guardian package v0.1.0 - code quality guardian for vibe coders and enterprise teams. Features: - Hardcode detection (magic numbers, magic strings) - Circular dependency detection - Naming convention enforcement (Clean Architecture) - Architecture violation detection - CLI tool with comprehensive reporting - 159 tests with 80%+ coverage - Smart suggestions for fixes - Built for AI-assisted development Built with Clean Architecture and DDD principles. Works with Claude, GPT, Copilot, Cursor, and any AI coding assistant.
58 lines
1.1 KiB
TypeScript
58 lines
1.1 KiB
TypeScript
import { User } from "../aggregates/User"
|
|
import { UserId } from "../value-objects/UserId"
|
|
import { Email } from "../value-objects/Email"
|
|
|
|
/**
|
|
* User Repository Interface
|
|
*
|
|
* DDD Pattern: Repository
|
|
* - Interface in domain layer
|
|
* - Implementation in infrastructure layer
|
|
* - Collection-like API for aggregates
|
|
*
|
|
* SOLID Principles:
|
|
* - DIP: domain depends on abstraction
|
|
* - ISP: focused interface
|
|
* - SRP: manages User persistence
|
|
*
|
|
* Clean Architecture:
|
|
* - Domain doesn't know about DB
|
|
* - Infrastructure implements this
|
|
*/
|
|
export interface IUserRepository {
|
|
/**
|
|
* Save user (create or update)
|
|
*/
|
|
save(user: User): Promise<void>
|
|
|
|
/**
|
|
* Find user by ID
|
|
*/
|
|
findById(id: UserId): Promise<User | null>
|
|
|
|
/**
|
|
* Find user by email
|
|
*/
|
|
findByEmail(email: Email): Promise<User | null>
|
|
|
|
/**
|
|
* Find all users
|
|
*/
|
|
findAll(): Promise<User[]>
|
|
|
|
/**
|
|
* Find active users
|
|
*/
|
|
findActive(): Promise<User[]>
|
|
|
|
/**
|
|
* Delete user
|
|
*/
|
|
delete(id: UserId): Promise<void>
|
|
|
|
/**
|
|
* Check if user exists
|
|
*/
|
|
exists(id: UserId): Promise<boolean>
|
|
}
|