skailan-core
Version:
Servicio de autenticación y multitenancy para Skailan.
193 lines • 6.45 kB
TypeScript
/**
* 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