mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-28 15:26:53 +05:00
feat(core): add application layer components
Add application layer: - UseCase base class for use cases - ResponseDto for standardized responses - Mapper for domain-DTO conversion
This commit is contained in:
31
packages/core/src/application/dtos/ResponseDto.ts
Normal file
31
packages/core/src/application/dtos/ResponseDto.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
/**
|
||||
* Standard response wrapper for use cases
|
||||
*/
|
||||
export interface IResponseDto<T> {
|
||||
success: boolean;
|
||||
data?: T;
|
||||
error?: string;
|
||||
timestamp: Date;
|
||||
}
|
||||
|
||||
export class ResponseDto<T> implements IResponseDto<T> {
|
||||
public readonly success: boolean;
|
||||
public readonly data?: T;
|
||||
public readonly error?: string;
|
||||
public readonly timestamp: Date;
|
||||
|
||||
private constructor(success: boolean, data?: T, error?: string) {
|
||||
this.success = success;
|
||||
this.data = data;
|
||||
this.error = error;
|
||||
this.timestamp = new Date();
|
||||
}
|
||||
|
||||
public static ok<T>(data: T): ResponseDto<T> {
|
||||
return new ResponseDto<T>(true, data);
|
||||
}
|
||||
|
||||
public static fail<T>(error: string): ResponseDto<T> {
|
||||
return new ResponseDto<T>(false, undefined, error);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user