* fixes * fix prisma mock to include transaction callbacj * remove redudant transactions * remove hard requirement on transactions in services * remove mocktrx * fix cubic feedback * correct permission updating logic of roles. Implement diff service + domain types * remove role mapper
53 lines
967 B
TypeScript
53 lines
967 B
TypeScript
import type { PermissionString } from "../types/permission-registry";
|
|
|
|
export const RoleType = {
|
|
SYSTEM: "SYSTEM",
|
|
CUSTOM: "CUSTOM",
|
|
} as const;
|
|
|
|
export type RoleType = (typeof RoleType)[keyof typeof RoleType];
|
|
|
|
export interface RolePermission {
|
|
id: string;
|
|
roleId: string;
|
|
resource: string;
|
|
action: string;
|
|
createdAt: Date;
|
|
}
|
|
|
|
export interface Role {
|
|
id: string;
|
|
name: string;
|
|
color?: string;
|
|
description?: string;
|
|
teamId?: number;
|
|
type: RoleType;
|
|
permissions: RolePermission[];
|
|
createdAt: Date;
|
|
updatedAt: Date;
|
|
}
|
|
|
|
// Value Objects
|
|
export interface CreateRoleData {
|
|
name: string;
|
|
color?: string;
|
|
description?: string;
|
|
teamId?: number;
|
|
permissions: PermissionString[];
|
|
type?: RoleType;
|
|
}
|
|
|
|
export interface UpdateRolePermissionsData {
|
|
roleId: string;
|
|
permissions: PermissionString[];
|
|
updates?: {
|
|
color?: string;
|
|
name?: string;
|
|
};
|
|
}
|
|
|
|
export type PermissionChange = {
|
|
resource: string;
|
|
action: string;
|
|
};
|