import { InjectRepository } from '@nestjs/typeorm'; import { Injectable } from '@nestjs/common'; import { UserSession } from '../entity/user-session.entity'; import { Repository } from 'typeorm'; @Injectable() export class UserSessionService { constructor( @InjectRepository(UserSession) private readonly userSessionRepository: Repository, ) { } async createSession(userId: string): Promise { const session = this.userSessionRepository.create({ userId, }); return this.userSessionRepository.save(session); } async getSession(sessionId: string) { const session = await this.userSessionRepository.findOne({ where: { sessionId, }, }); return session; } async invalidateSession(sessionId: string, reason?: string): Promise { await this.userSessionRepository.update( { sessionId, deletedAt: null }, { deletedAt: new Date(), disabledReason: reason || null, } ) } }