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:
imfozilbek
2025-11-23 21:43:38 +05:00
parent 2bdfc5382f
commit 2d54538d81
5 changed files with 67 additions and 0 deletions

View 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);
}
}