Schema additions for issues #37-41: New models: - Domain (#37): Life domains (work, marriage, homelab, etc.) - Idea (#38): Brain dumps with pgvector embeddings - Relationship (#39): Generic entity linking (blocks, depends_on) - Agent (#40): ClawdBot agent tracking with metrics - AgentSession (#40): Conversation session tracking - WidgetDefinition (#41): HUD widget registry - UserLayout (#41): Per-user dashboard configuration Updated models: - Task, Event, Project: Added domainId foreign key - User, Workspace: Added new relations New enums: - IdeaStatus: CAPTURED, PROCESSING, ACTIONABLE, ARCHIVED, DISCARDED - RelationshipType: BLOCKS, BLOCKED_BY, DEPENDS_ON, etc. - AgentStatus: IDLE, WORKING, WAITING, ERROR, TERMINATED - EntityType: Added IDEA, DOMAIN Migration: 20260129182803_add_domains_ideas_agents_widgets
58 lines
1.1 KiB
TypeScript
58 lines
1.1 KiB
TypeScript
import { ActivityAction, EntityType, Prisma } from "@prisma/client";
|
|
|
|
/**
|
|
* Interface for creating a new activity log entry
|
|
*/
|
|
export interface CreateActivityLogInput {
|
|
workspaceId: string;
|
|
userId: string;
|
|
action: ActivityAction;
|
|
entityType: EntityType;
|
|
entityId: string;
|
|
details?: Record<string, any>;
|
|
ipAddress?: string;
|
|
userAgent?: string;
|
|
}
|
|
|
|
/**
|
|
* Interface for activity log query filters
|
|
*/
|
|
export interface ActivityLogFilters {
|
|
workspaceId: string;
|
|
userId?: string;
|
|
action?: ActivityAction;
|
|
entityType?: EntityType;
|
|
entityId?: string;
|
|
startDate?: Date;
|
|
endDate?: Date;
|
|
}
|
|
|
|
/**
|
|
* Type for activity log result with user info
|
|
* Uses Prisma's generated type for type safety
|
|
*/
|
|
export type ActivityLogResult = Prisma.ActivityLogGetPayload<{
|
|
include: {
|
|
user: {
|
|
select: {
|
|
id: true;
|
|
name: true;
|
|
email: true;
|
|
};
|
|
};
|
|
};
|
|
}>;
|
|
|
|
/**
|
|
* Interface for paginated activity log results
|
|
*/
|
|
export interface PaginatedActivityLogs {
|
|
data: ActivityLogResult[];
|
|
meta: {
|
|
total: number;
|
|
page: number;
|
|
limit: number;
|
|
totalPages: number;
|
|
};
|
|
}
|