feat: add Staff, Subscription, ClinicServices, SmsWallet pages (TASK-10,11,13,14)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
hamed
2026-06-14 22:23:30 +03:30
co-authored by Claude Sonnet 4.6
parent 7ea3523830
commit ed18c260ca
7 changed files with 1125 additions and 0 deletions
+98
View File
@@ -308,3 +308,101 @@ export interface Specialty {
name: string;
slug?: string;
}
export interface ClinicStaff {
uuid: string;
full_name: string;
phone: string | null;
job_title: string | null;
address: string | null;
national_code: string | null;
active: boolean;
created_at: number;
}
export interface SubscriptionPlan {
uuid: string;
name: string;
level: number;
max_secretaries: number;
features: Record<string, boolean>;
periods: SubscriptionPeriod[];
}
export interface SubscriptionPeriod {
uuid: string;
label: string;
duration_months: number;
price_rials: number;
is_trial: boolean;
}
export interface MySubscription {
plan: { name: string; level: number; features: Record<string, boolean> };
period?: { label: string; duration_months: number };
is_trial: boolean;
starts_at?: number;
expires_at?: number | null;
used_trial: boolean;
days_remaining?: number;
}
export interface ServiceSection {
uuid: string;
name: string;
active: boolean;
}
export interface ServiceItem {
uuid: string;
name: string;
price_rials: number;
staff: { uuid: string; full_name: string } | null;
active: boolean;
}
export interface SmsWalletBalance {
balance_rials: number;
sms_price_rials: number;
estimated_sms_count: number;
}
export interface SmsWalletLog {
uuid: string;
type: 'credit' | 'debit';
amount_rials: number;
description: string;
created_at: number;
}
export interface SmsSettings {
reminder_enabled: boolean;
reminder_hours_before: number;
post_visit_enabled: boolean;
post_visit_text: string | null;
}
export interface PatientRecord {
uuid: string;
entity_type: string;
entity_id: number;
user: { uuid: string; fullName: string; phone: string };
created_at: number;
}
export interface PatientSession {
uuid: string;
record_uuid: string;
appointment_uuid: string | null;
insurance_base_id: number | null;
insurance_supplementary_id: number | null;
visit_price_rials: number;
base_insurance_discount_percent: string;
supplementary_discount_percent: string;
services_total_rials: number;
final_price_rials: number;
payment_method: string;
notes: string | null;
created_at: number;
updated_at: number;
}