Files
puaros/packages/core/src/application/dtos/ResponseDto.ts
imfozilbek 2d54538d81 feat(core): add application layer components
Add application layer:
- UseCase base class for use cases
- ResponseDto for standardized responses
- Mapper for domain-DTO conversion
2025-11-23 21:43:38 +05:00

31 lines
796 B
TypeScript

/**
* 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);
}
}