// learner.service.ts
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Enrollment } from '../enrollments/enrollment.entity';

@Injectable()
export class LearnerService {
    constructor(
        @InjectRepository(Enrollment) private readonly enrollRepo: Repository<Enrollment>,
    ) { }

    async getMyCourses(id: number, status: Enrollment['status'], skip = 0, take = 20) {
        const [rows, total] = await this.enrollRepo.findAndCount({
            where: { user: { id: id }, status },
            relations: { course: true }, // include course details
            order: { subscribedAt: 'DESC' },
            skip,
            take,
        });

        // Return only what frontend needs
        return {
            total,
            items: rows.map((e) => ({
                enrollmentId: e.id,
                status: e.status,
                subscribedAt: e.subscribedAt,
                course: e.course, // has title, description, price, level, etc.
            })),
        };
    }
}
