This commit is contained in:
michael committed 2026-09-23 11:09:10 +00:00
1 parent 9be6c6e36a
commit fa6db04370
16 files changed
+1123 -118

No files matched your search

+33 -2
View File
@@ -1,5 +1,5 @@
export type WorkType = "support" | "consulting";
export type BillingStatus = "billed" | "non_billable" | null;
export type BillingStatus = "billable" | "billed" | "non_billable" | null;
export type PeriodType = "month" | "day";
export type TicketDetailPeriodType = PeriodType | "all";
export type UserRole = "admin" | "user";
@@ -13,6 +13,10 @@ export type AuthUser = {
zammad_user_id: string | null;
has_zammad_api_token: boolean;
zammad_email_session_webhook_enabled: boolean;
session_billing_prompt_enabled: boolean;
zammad_session_note_default_enabled: boolean;
zammad_time_unit_rounding_enabled: boolean;
zammad_time_unit_rounding_minutes: number;
};
export type DashboardWidgetType = "dayControl" | "today" | "month" | "openRatings" | "projectBudgets" | "todos" | "teamspace" | "favorites" | "divider" | "statistic" | "notes";
@@ -63,6 +67,22 @@ export type AdminUser = AuthUser & {
updated_at: string;
};
export type ZammadSessionArticleQueueItem = {
id: string;
session_id: string;
ticket_id: string;
ticket_number: string;
zammad_ticket_id: string | null;
activity: string;
time_unit: number;
attempt_count: number;
last_error: string | null;
last_attempt_at: string | null;
created_at: string;
started_at: string;
rounded_minutes: number;
};
export type Organization = {
id: string;
zammad_id: string;
@@ -231,10 +251,12 @@ export type TicketSummary = {
session_count: number;
total_minutes: number;
crm_billed_minutes: number;
billable_minutes: number;
non_billable_minutes: number;
open_minutes: number;
open_count: number;
ticket_open_count: number;
billable_count: number;
billed_count: number;
non_billable_count: number;
recurring_session_count: number;
@@ -277,6 +299,7 @@ export type PeriodOverview = {
sessions: number;
minutes: number;
crmBilledMinutes: number;
billableMinutes: number;
nonBillableMinutes: number;
openMinutes: number;
openSessions: number;
@@ -324,7 +347,7 @@ export type TicketPeriod = {
closedAt: string | null;
filters?: {
month: string;
status: "all" | "open" | "billed" | "non_billable";
status: "all" | "open" | "billable" | "billed" | "non_billable";
source: "all" | "manual" | "recurring";
};
availableMonths?: TicketAvailableMonth[];
@@ -361,9 +384,11 @@ export type StatisticsDailyBucket = {
sessions: number;
total_minutes: number;
billed_minutes: number;
billable_minutes: number;
non_billable_minutes: number;
open_minutes: number;
billed_sessions: number;
billable_sessions: number;
non_billable_sessions: number;
open_sessions: number;
crm_billed_minutes: number;
@@ -377,9 +402,11 @@ export type StatisticsGroup = {
sessions: number;
total_minutes: number;
billed_minutes: number;
billable_minutes: number;
non_billable_minutes: number;
open_minutes: number;
billed_sessions: number;
billable_sessions: number;
non_billable_sessions: number;
open_sessions: number;
crm_billed_minutes: number;
@@ -395,9 +422,11 @@ export type StatisticsTicket = {
sessions: number;
total_minutes: number;
billed_minutes: number;
billable_minutes: number;
non_billable_minutes: number;
open_minutes: number;
billed_sessions: number;
billable_sessions: number;
non_billable_sessions: number;
open_sessions: number;
crm_billed_minutes: number;
@@ -448,9 +477,11 @@ export type StatisticsOverview = {
sessions: number;
minutes: number;
billedMinutes: number;
billableMinutes: number;
nonBillableMinutes: number;
openMinutes: number;
billedSessions: number;
billableSessions: number;
nonBillableSessions: number;
openSessions: number;
recurringMinutes: number;