Files
ux_aura_assistant/types.ts
2026-03-25 01:21:46 +05:30

174 lines
3.5 KiB
TypeScript

export interface ChatMessage {
role: 'user' | 'model';
content: string;
context?: string; // Stores full content (e.g., with file attachments) for AI context, while content is for display
}
export type LogStatus = 'pending' | 'success' | 'error' | 'info';
export interface LogMessage {
id: number;
message: string;
status: LogStatus;
}
export interface User {
name: string;
company_name?: string;
auth_cookie?: string;
uid?: string;
}
export interface UserSettings {
systemPrompt: string;
}
export type Role = string;
export type Permission = string;
export interface AppInfo {
id: number;
name: string;
createdBy: string;
primary_domain?: string;
base_url?: string;
studio_app_url?: string;
}
export interface PullRequest {
id: number;
number?: number;
title: string;
state: 'open' | 'closed';
user: {
login: string;
avatar_url: string;
};
head: string | {
ref: string;
};
base: string | {
ref: string;
};
html_url: string;
created_at: string;
updated_at?: string;
merged: boolean;
merged_at?: string | null;
source?: 'gitea' | 'database';
environment?: 'non-prod' | 'prod' | 'dev';
envName?: string;
hasConflicts?: boolean;
}
export interface Organization {
id: number;
name: string;
description?: string;
createdAt?: string;
}
export interface Project {
id: number;
name: string;
description?: string;
organizationId: number;
createdAt?: string;
}
export interface ProjectComponent {
id: number;
projectId: number;
name: string;
title: string;
type: 'UX' | 'API';
description?: string;
status?: 'Pending' | 'Active' | 'Inactive';
createdAt?: string;
additional_info?: {
slug?: string;
supported_domains?: string[];
ai_studio_link?: string;
github_repo?: string;
github_owner?: string;
hiq_repo?: string;
unique_app_code?: string;
[key: string]: any;
};
}
export type RequirementType = 'Defect' | 'Feature';
export type RequirementCategory = 'User' | 'System' | 'Non-Functional';
// Updated to match backend API validation
export type RequirementStatus = 'New' | 'Open' | 'InProgress' | 'Resolved' | 'Closed';
export interface Requirement {
id?: number;
componentId?: number;
type: RequirementType;
category?: RequirementCategory;
title: string;
description: string;
status: RequirementStatus;
tempId?: string; // For frontend tracking of new items before they have a DB ID
unique_hash?: string;
}
export interface ComponentPrompt {
id?: number;
componentId: number;
title: string;
description: string;
type: 'System' | 'Other';
content: string;
createdAt?: string;
updatedAt?: string;
}
export interface ComponentContentItem {
id?: number;
componentId: number;
textId: string;
description: string;
text: string;
format: 'plain' | 'markdown';
type: 'Title' | 'Body' | 'LinkText' | 'Heading';
createdAt?: string;
updatedAt?: string;
}
export interface Task {
id: number;
title: string;
description?: string;
assignee: string;
assigned_date?: string;
due_date: string;
start_date?: string;
close_date?: string;
status: 'Open' | 'InProgress' | 'Closed';
created_at?: string;
updated_at?: string;
additional_info?: any;
}
// Added missing LLM and Attachment types
export type ModelProvider = 'google' | 'openai';
export interface LLMConfig {
provider: ModelProvider;
model: string;
apiKey?: string;
systemInstruction?: string;
}
export interface Attachment {
id: string;
name: string;
content: string;
isProcessing: boolean;
}