export interface Organization { id: string name: string slug: string timezone: string industry: string owner: string plan: 'free' | 'pro' | 'business' plan_employee_limit: number plan_history_months: number stripe_customer_id: string stripe_subscription_id: string stripe_subscription_status: string trial_ends_at: string created: string updated: string } export interface PBEmployee { id: string org_id: string name: string email: string employee_number: string roles: string[] skills: string[] employment_type: string weekly_hours_target: number max_weekly_hours: number available_periods: string[] unavailable_dates: string[] notes: string active: boolean created: string updated: string } export interface PBConstraint { id: string org_id: string label: string source_text: string constraint_json: import('./constraint').ConstraintJSON scope: string scope_ref: string category: string hard: boolean weight: number active: boolean source: string template_id: string created: string updated: string } export interface PBScheduleRun { id: string org_id: string name: string period_start: string period_end: string framework_snapshot: unknown constraints_snapshot: unknown employees_snapshot: unknown status: 'pending' | 'solving' | 'solved' | 'infeasible' | 'error' solver_duration_ms: number objective_value: number infeasibility_hints: unknown result: unknown created_by: string created: string updated: string } export interface LegalTemplate { id: string region: string law_name: string label: string description: string constraint_json: import('./constraint').ConstraintJSON category: string mandatory: boolean sort_order: number } export interface ShiftFramework { id: string org_id: string periods: import('./schedule').Period[] shifts: import('./schedule').Shift[] scheduling_horizon_days: number created: string updated: string }