import type { Department } from '../departments/types' import type { Role } from '../roles/types' import type { Timetable } from '../timetable/types' export type UserStatus = 'online' | 'offline' | 'away' export type UserPreferences = { audioSpeed?: number isShowTagsChat?: boolean } export type User = { id: string name: string email: string phoneNumber: string | null branch: string | null isSuperAdmin: boolean isClientUser: boolean active: boolean language: string isFirstLogin: boolean status: UserStatus clientsStatus: Record | null offlineAt: string | null isActiveInternalChat: boolean passwordExpiresAt: string | null otpAuthActive: boolean | null preferences: UserPreferences archivedAt: string | null accountId: string timetableId: string | null createdAt: string updatedAt: string deletedAt: string | null // relationships timetable?: Timetable | null roles?: Role[] departments?: Department[] } export type UserRelationships = 'timetable' | 'roles' | 'departments' export type CreateUserPayload = { name: string email: string password: string passwordConfirmation: string phoneNumber?: string branch?: string isClientUser?: boolean roles?: string[] departments?: string[] services?: string[] scheduleId?: string } export type UpdateUserPayload = { name?: string email?: string phoneNumber?: string | null branch?: string | null isClientUser?: boolean roles?: string[] departments?: string[] services?: string[] timetableId?: string | null preferences?: UserPreferences language?: string archivedAt?: string | null }