ruch
Version:
Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.
138 lines (121 loc) • 2.88 kB
text/typescript
// Payment Domain Mock Data
// This file contains mock data and utilities for payment domain testing
/**
* TODO: Replace this interface with your actual Payment entity
* Import from: '../entities/Payment'
*/
interface Payment {
id: string;
name: string;
createdAt: string;
updatedAt: string;
// Add your domain-specific fields here
}
/**
* Mock payment data store
*/
class MockPaymentData {
private data: Payment[] = [
{
id: '1',
name: 'Sample Payment 1',
createdAt: '2025-01-01T00:00:00Z',
updatedAt: '2025-01-01T00:00:00Z',
},
{
id: '2',
name: 'Sample Payment 2',
createdAt: '2025-01-02T00:00:00Z',
updatedAt: '2025-01-02T00:00:00Z',
},
{
id: '3',
name: 'Sample Payment 3',
createdAt: '2025-01-03T00:00:00Z',
updatedAt: '2025-01-03T00:00:00Z',
},
];
/**
* Get all payment items
*/
getAll(): Payment[] {
return [...this.data];
}
/**
* Get payment item by ID
*/
getById(id: string): Payment | undefined {
return this.data.find(item => item.id === id);
}
/**
* Create new payment item
*/
create(item: Partial<Payment>): Payment {
const newItem: Payment = {
id: Date.now().toString(),
name: item.name || 'New Payment',
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
...item,
};
this.data.push(newItem);
return newItem;
}
/**
* Update payment item
*/
update(id: string, updates: Partial<Payment>): Payment | undefined {
const index = this.data.findIndex(item => item.id === id);
if (index === -1) {
return undefined;
}
this.data[index] = {
...this.data[index],
...updates,
updatedAt: new Date().toISOString(),
};
return this.data[index];
}
/**
* Delete payment item
*/
delete(id: string): boolean {
const index = this.data.findIndex(item => item.id === id);
if (index === -1) {
return false;
}
this.data.splice(index, 1);
return true;
}
/**
* Reset data to initial state (useful for tests)
*/
reset(): void {
this.data = [
{
id: '1',
name: 'Sample Payment 1',
createdAt: '2025-01-01T00:00:00Z',
updatedAt: '2025-01-01T00:00:00Z',
},
{
id: '2',
name: 'Sample Payment 2',
createdAt: '2025-01-02T00:00:00Z',
updatedAt: '2025-01-02T00:00:00Z',
},
{
id: '3',
name: 'Sample Payment 3',
createdAt: '2025-01-03T00:00:00Z',
updatedAt: '2025-01-03T00:00:00Z',
},
];
}
/**
* Add custom methods for your domain-specific operations
* Example: getByStatus, getByUser, etc.
*/
}
// Export singleton instance
export const mockPaymentData = new MockPaymentData();