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