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.82 kB
text/typescript
// Order Domain Mock Data
// This file contains mock data and utilities for order domain testing
/**
* TODO: Replace this interface with your actual Order entity
* Import from: '../entities/Order'
*/
interface Order {
id: string;
name: string;
createdAt: string;
updatedAt: string;
// Add your domain-specific fields here
}
/**
* Mock order data store
*/
class MockOrderData {
private data: Order[] = [
{
id: '1',
name: 'Sample Order 1',
createdAt: '2025-01-01T00:00:00Z',
updatedAt: '2025-01-01T00:00:00Z',
},
{
id: '2',
name: 'Sample Order 2',
createdAt: '2025-01-02T00:00:00Z',
updatedAt: '2025-01-02T00:00:00Z',
},
{
id: '3',
name: 'Sample Order 3',
createdAt: '2025-01-03T00:00:00Z',
updatedAt: '2025-01-03T00:00:00Z',
},
];
/**
* Get all order items
*/
getAll(): Order[] {
return [...this.data];
}
/**
* Get order item by ID
*/
getById(id: string): Order | undefined {
return this.data.find(item => item.id === id);
}
/**
* Create new order item
*/
create(item: Partial<Order>): Order {
const newItem: Order = {
id: Date.now().toString(),
name: item.name || 'New Order',
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
...item,
};
this.data.push(newItem);
return newItem;
}
/**
* Update order item
*/
update(id: string, updates: Partial<Order>): Order | 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 order 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 Order 1',
createdAt: '2025-01-01T00:00:00Z',
updatedAt: '2025-01-01T00:00:00Z',
},
{
id: '2',
name: 'Sample Order 2',
createdAt: '2025-01-02T00:00:00Z',
updatedAt: '2025-01-02T00:00:00Z',
},
{
id: '3',
name: 'Sample Order 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 mockOrderData = new MockOrderData();