import { faker } from '@faker-js/faker';

/**
 * UserFactory
 * 
 * Handles creation and cleanup of test users.
 * Note: Since this is a local-first app without a real backend API for user creation yet,
 * this factory currently generates mock data. adapting to real API calls later.
 */
export class UserFactory {
    // In a real app, we would track IDs here for cleanup
    // private createdUserIds: string[] = [];

    async createUser(overrides = {}) {
        const user = {
            id: faker.string.uuid(),
            email: faker.internet.email(),
            name: faker.person.fullName(),
            password: faker.internet.password(),
            createdAt: new Date().toISOString(),
            ...overrides,
        };

        // Placeholder: In a real app, you would POST to API here
        // const response = await fetch(\`\${process.env.API_URL}/users\`, ...);

        return user;
    }

    async cleanup() {
        // Placeholder: In a real app, you would DELETE users here
        // for (const id of this.createdUserIds) { ... }

        // For now, no cleanup needed for transient mock data
        return Promise.resolve();
    }
}
