UNPKG

skailan-core

Version:

Servicio de autenticación y multitenancy para Skailan.

193 lines 6.45 kB
/** * Servicio centralizado para la gestión de membresías y roles en organizaciones. * Incluye lógica para invitar, aceptar, listar, cambiar rol y eliminar miembros. */ import { PrismaClient, Prisma, Role, MembershipStatus } from "@prisma/client"; export declare class MembershipService { static createMembership(prisma: PrismaClient, userId: string, organizationId: string, role?: Role, status?: MembershipStatus): Promise<{ organization: { settings: Prisma.JsonValue | null; id: string; createdAt: Date; updatedAt: Date; name: string; deletedAt: Date | null; trialDays: number; slug: string; subdomain: string | null; domain: string | null; isBlocked: boolean; trialEnd: Date | null; trialStart: Date | null; isTrialActive: boolean; paymentStatus: import("@prisma/client").$Enums.PaymentStatus; }; user: { id: string; createdAt: Date; updatedAt: Date; name: string | null; email: string; password: string; }; } & { role: import("@prisma/client").$Enums.Role; id: string; createdAt: Date; updatedAt: Date; organizationId: string; userId: string; status: import("@prisma/client").$Enums.MembershipStatus; deletedAt: Date | null; invitedBy: string | null; joinedAt: Date | null; }>; static updateMembership(prisma: PrismaClient, membershipId: string, data: Partial<Prisma.MembershipUpdateInput>): Promise<{ organization: { settings: Prisma.JsonValue | null; id: string; createdAt: Date; updatedAt: Date; name: string; deletedAt: Date | null; trialDays: number; slug: string; subdomain: string | null; domain: string | null; isBlocked: boolean; trialEnd: Date | null; trialStart: Date | null; isTrialActive: boolean; paymentStatus: import("@prisma/client").$Enums.PaymentStatus; }; user: { id: string; createdAt: Date; updatedAt: Date; name: string | null; email: string; password: string; }; } & { role: import("@prisma/client").$Enums.Role; id: string; createdAt: Date; updatedAt: Date; organizationId: string; userId: string; status: import("@prisma/client").$Enums.MembershipStatus; deletedAt: Date | null; invitedBy: string | null; joinedAt: Date | null; }>; static deleteMembership(prisma: PrismaClient, membershipId: string, organizationId: string): Promise<{ role: import("@prisma/client").$Enums.Role; id: string; createdAt: Date; updatedAt: Date; organizationId: string; userId: string; status: import("@prisma/client").$Enums.MembershipStatus; deletedAt: Date | null; invitedBy: string | null; joinedAt: Date | null; }>; static getMembership(prisma: PrismaClient, userId: string, organizationId: string): Promise<({ organization: { settings: Prisma.JsonValue | null; id: string; createdAt: Date; updatedAt: Date; name: string; deletedAt: Date | null; trialDays: number; slug: string; subdomain: string | null; domain: string | null; isBlocked: boolean; trialEnd: Date | null; trialStart: Date | null; isTrialActive: boolean; paymentStatus: import("@prisma/client").$Enums.PaymentStatus; }; user: { id: string; createdAt: Date; updatedAt: Date; name: string | null; email: string; password: string; }; } & { role: import("@prisma/client").$Enums.Role; id: string; createdAt: Date; updatedAt: Date; organizationId: string; userId: string; status: import("@prisma/client").$Enums.MembershipStatus; deletedAt: Date | null; invitedBy: string | null; joinedAt: Date | null; }) | null>; static getOrganizationMembers(prisma: PrismaClient, organizationId: string): Promise<({ user: { id: string; createdAt: Date; updatedAt: Date; name: string | null; email: string; password: string; }; } & { role: import("@prisma/client").$Enums.Role; id: string; createdAt: Date; updatedAt: Date; organizationId: string; userId: string; status: import("@prisma/client").$Enums.MembershipStatus; deletedAt: Date | null; invitedBy: string | null; joinedAt: Date | null; })[]>; static inviteUser(prisma: PrismaClient, organizationId: string, email: string, role?: string): Promise<{ organization: { settings: Prisma.JsonValue | null; id: string; createdAt: Date; updatedAt: Date; name: string; deletedAt: Date | null; trialDays: number; slug: string; subdomain: string | null; domain: string | null; isBlocked: boolean; trialEnd: Date | null; trialStart: Date | null; isTrialActive: boolean; paymentStatus: import("@prisma/client").$Enums.PaymentStatus; }; user: { id: string; createdAt: Date; updatedAt: Date; name: string | null; email: string; password: string; }; } & { role: import("@prisma/client").$Enums.Role; id: string; createdAt: Date; updatedAt: Date; organizationId: string; userId: string; status: import("@prisma/client").$Enums.MembershipStatus; deletedAt: Date | null; invitedBy: string | null; joinedAt: Date | null; }>; } //# sourceMappingURL=membershipService.d.ts.map