158 lines
2.8 KiB
TypeScript
158 lines
2.8 KiB
TypeScript
export interface PagedResult<T> {
|
|
items: T[]
|
|
totalCount: number
|
|
page: number
|
|
pageSize: number
|
|
}
|
|
|
|
export interface User {
|
|
id: string
|
|
username: string
|
|
displayName: string
|
|
roleId: string
|
|
roleName: string
|
|
}
|
|
|
|
export interface UserListItem {
|
|
id: string
|
|
username: string
|
|
displayName: string
|
|
roleId: string
|
|
roleName: string
|
|
isActive: boolean
|
|
createdAt: string
|
|
}
|
|
|
|
export interface LoginResponse {
|
|
token: string
|
|
user: User
|
|
}
|
|
|
|
export interface MenuItem {
|
|
key: string
|
|
label: string
|
|
path: string
|
|
canView: boolean
|
|
canCreate: boolean
|
|
canEdit: boolean
|
|
canDelete: boolean
|
|
}
|
|
|
|
export interface PermissionEntry {
|
|
screen: string
|
|
canView: boolean
|
|
canCreate: boolean
|
|
canEdit: boolean
|
|
canDelete: boolean
|
|
}
|
|
|
|
export interface Role {
|
|
id: string
|
|
name: string
|
|
isSystem: boolean
|
|
permissions: PermissionEntry[]
|
|
}
|
|
|
|
export interface SaveRoleRequest {
|
|
name: string
|
|
permissions: PermissionEntry[]
|
|
}
|
|
|
|
export interface MasterDataItem {
|
|
id: string
|
|
group: string
|
|
label: string
|
|
value: string
|
|
sortOrder: number
|
|
isActive: boolean
|
|
}
|
|
|
|
export interface SaveMasterDataRequest {
|
|
group: string
|
|
label: string
|
|
value: string
|
|
sortOrder: number
|
|
isActive: boolean
|
|
}
|
|
|
|
export type ProjectStatus = 'Active' | 'Archived'
|
|
export type MemberRole = 'Owner' | 'Member'
|
|
export type DocumentType = 'Folder' | 'Document'
|
|
export type TaskStatus = 'Todo' | 'InProgress' | 'Done' | 'Cancelled'
|
|
export type TaskPriority = 'Low' | 'Medium' | 'High'
|
|
|
|
export interface Project {
|
|
id: string
|
|
name: string
|
|
description: string | null
|
|
status: ProjectStatus
|
|
createdBy: string
|
|
createdByName: string
|
|
createdAt: string
|
|
updatedBy: string | null
|
|
updatedByName: string | null
|
|
updatedAt: string
|
|
}
|
|
|
|
export interface ProjectMember {
|
|
userId: string
|
|
username: string
|
|
displayName: string
|
|
role: MemberRole
|
|
canViewDocuments: boolean
|
|
canCreateDocuments: boolean
|
|
canEditDocuments: boolean
|
|
canDeleteDocuments: boolean
|
|
}
|
|
|
|
export interface DocumentNode {
|
|
id: string
|
|
parentId: string | null
|
|
title: string
|
|
type: DocumentType
|
|
createdAt: string
|
|
createdBy: string
|
|
updatedAt: string
|
|
updatedBy: string | null
|
|
children: DocumentNode[]
|
|
}
|
|
|
|
export interface DocumentItem {
|
|
id: string
|
|
projectId: string
|
|
parentId: string | null
|
|
title: string
|
|
content: string | null
|
|
type: DocumentType
|
|
createdBy: string
|
|
createdAt: string
|
|
updatedBy: string | null
|
|
updatedAt: string
|
|
}
|
|
|
|
export interface Task {
|
|
id: string
|
|
projectId: string
|
|
title: string
|
|
description: string | null
|
|
status: TaskStatus
|
|
priority: TaskPriority
|
|
assigneeId: string | null
|
|
assigneeName: string | null
|
|
dueDate: string | null
|
|
createdAt: string
|
|
updatedAt: string
|
|
}
|
|
|
|
export interface UserRoleDetail {
|
|
userId: string
|
|
username: string
|
|
displayName: string
|
|
assignedRoles: Role[]
|
|
unassignedRoles: Role[]
|
|
}
|
|
|
|
export interface TaskCounts {
|
|
[status: string]: number
|
|
}
|