import { Project } from '@app/domain/projects/project.model';
import { of } from 'rxjs';

export const mockProjects: Project[] = [
  {
    id: '1',
    created: '2025-01-12T09:32:00Z',
    updated: '2025-01-15T11:45:00Z',
    nom: 'Portfolio Web 3D',
    lien: 'https://portfolio-3d.example.com',
    description:
      'Un site web interactif utilisant Three.js et Angular 17 pour présenter un portfolio 3D.',
    fichier: 'portfolio-preview.png',
    utilisateur: 'user_001',
  },
  {
    id: '2',
    created: '2025-02-03T08:22:00Z',
    updated: '2025-02-10T10:05:00Z',
    nom: 'Application Mobile de Gestion de Budget',
    lien: 'https://budget-app.example.com',
    description:
      'Une application mobile multiplateforme développée avec Angular et Capacitor pour suivre les dépenses quotidiennes.',
    fichier: 'budget-app-icon.png',
    utilisateur: 'user_002',
  },
  {
    id: '3',
    created: '2025-03-01T13:10:00Z',
    updated: '2025-03-05T16:50:00Z',
    nom: 'Système de Suivi des Présences',
    lien: 'https://presence-system.example.com',
    description:
      'Un projet SaaS développé avec Angular et Spring Boot pour gérer la présence des étudiants dans les écoles.',
    fichier: 'attendance-report.pdf',
    utilisateur: 'user_001',
  },
  {
    id: '4',
    created: '2025-04-20T12:15:00Z',
    updated: '2025-04-22T09:40:00Z',
    nom: 'Dashboard d’Analyse Crypto',
    lien: 'https://crypto-dashboard.example.com',
    description:
      'Un tableau de bord en temps réel affichant les cours et tendances des crypto-monnaies avec RxJS et WebSocket.',
    fichier: 'crypto-dashboard-chart.png',
    utilisateur: 'user_003',
  },
  {
    id: '5',
    created: '2025-05-11T14:00:00Z',
    updated: '2025-05-12T10:20:00Z',
    nom: 'API de Gestion de Projets',
    lien: 'https://api-project-manager.example.com',
    description:
      'Backend RESTful pour la gestion des projets, conçu avec Node.js, Express et PostgreSQL.',
    fichier: 'openapi-schema.yaml',
    utilisateur: 'user_001',
  },
];

export const mockProjectRepo = {
  create: jest.fn().mockReturnValue(of({} as Project)),
  list: jest.fn().mockReturnValue(of([])),
  get: jest.fn().mockReturnValue(of({} as Project)),
  update: jest.fn().mockReturnValue(of({} as Project)),
};
