192 lines
3.7 KiB
TypeScript
192 lines
3.7 KiB
TypeScript
export type UserRole = 'teacher' | 'para' | 'office' | 'director' | 'superintendent';
|
|
|
|
|
|
export type CampusId = 'tigers' | 'gators' | 'hawks' | 'owls' | 'wildcats' | 'grizzlies';
|
|
|
|
export interface CampusInfo {
|
|
id: CampusId;
|
|
mascot: string;
|
|
fullName: string;
|
|
color: string;
|
|
bgGradient: string;
|
|
borderColor: string;
|
|
textColor: string;
|
|
bgLight: string;
|
|
description: string;
|
|
isOnline?: boolean;
|
|
}
|
|
|
|
export interface User {
|
|
name: string;
|
|
role: UserRole;
|
|
avatar: string;
|
|
campus: string;
|
|
}
|
|
|
|
export interface StaffProfile {
|
|
id: string;
|
|
full_name: string;
|
|
role: UserRole;
|
|
campus: string;
|
|
avatar_url: string | null;
|
|
personality_type?: string | null;
|
|
created_at?: string;
|
|
updated_at?: string;
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface FrameEntry {
|
|
id: string;
|
|
weekOf: string;
|
|
postedDate: string;
|
|
formal: string;
|
|
recognition: string;
|
|
application: string;
|
|
management: string;
|
|
emotional: string;
|
|
author: string;
|
|
}
|
|
|
|
export interface Strategy {
|
|
id: string;
|
|
title: string;
|
|
description: string;
|
|
category: 'visual-support' | 'transition' | 'sensory' | 'communication' | 'behavior' | 'social';
|
|
ageGroup: 'K-2' | '3-5' | '6-8' | 'All';
|
|
zone: 'blue' | 'green' | 'yellow' | 'red';
|
|
image: string;
|
|
isFavorite?: boolean;
|
|
}
|
|
|
|
export interface QuizQuestion {
|
|
id: string;
|
|
question: string;
|
|
options: string[];
|
|
correctIndex: number;
|
|
explanation: string;
|
|
}
|
|
|
|
export interface SafetyQuiz {
|
|
id: string;
|
|
title: string;
|
|
focus: 'physical-management' | 'de-escalation' | 'safety-reminders';
|
|
questions: QuizQuestion[];
|
|
weekOf: string;
|
|
}
|
|
|
|
export interface SignVideoStep {
|
|
step: number;
|
|
instruction: string;
|
|
duration: number; // seconds
|
|
}
|
|
|
|
export interface SignItem {
|
|
id: string;
|
|
word: string;
|
|
category: 'basic-needs' | 'emotional' | 'classroom';
|
|
description: string;
|
|
image: string;
|
|
tip: string;
|
|
videoUrl: string; // YouTube embed URL for the sign demonstration
|
|
gifUrl: string; // Animated GIF URL showing the sign demonstration (always works)
|
|
videoSteps: SignVideoStep[];
|
|
}
|
|
|
|
|
|
|
|
|
|
export interface Event {
|
|
id: string;
|
|
title: string;
|
|
date: string;
|
|
type: 'meeting' | 'drill' | 'event' | 'deadline';
|
|
roles: UserRole[];
|
|
}
|
|
|
|
export interface AttendanceRecord {
|
|
date: string;
|
|
status: 'present' | 'late' | 'absent';
|
|
note?: string;
|
|
}
|
|
|
|
export interface ParentMessage {
|
|
id: string;
|
|
template: string;
|
|
category: 'behavior' | 'event' | 'progress' | 'general';
|
|
lastSent?: string;
|
|
}
|
|
|
|
export type ZoneColor = 'blue' | 'green' | 'yellow' | 'red';
|
|
|
|
export interface ZoneInfo {
|
|
color: ZoneColor;
|
|
name: string;
|
|
description: string;
|
|
behaviors: string[];
|
|
strategies: string[];
|
|
signs: string[];
|
|
bgClass: string;
|
|
textClass: string;
|
|
borderClass: string;
|
|
}
|
|
|
|
export type ModuleId =
|
|
| 'dashboard'
|
|
| 'frame'
|
|
| 'classroom'
|
|
| 'timer'
|
|
| 'qbs'
|
|
| 'ei'
|
|
| 'zones'
|
|
| 'signs'
|
|
| 'attendance'
|
|
| 'parent-comm'
|
|
| 'internal-comm'
|
|
| 'safety'
|
|
| 'handbook'
|
|
| 'director'
|
|
| 'community'
|
|
| 'vocational'
|
|
| 'esa'
|
|
| 'walkthrough';
|
|
|
|
export interface WalkthroughCheckin {
|
|
id: string;
|
|
teacher_name: string;
|
|
classroom: string;
|
|
director_name: string;
|
|
check_in_date: string;
|
|
check_in_time: string;
|
|
attitude_rating: number;
|
|
attitude_comment?: string;
|
|
classroom_management_rating: number;
|
|
classroom_management_comment?: string;
|
|
cleanliness_rating: number;
|
|
cleanliness_comment?: string;
|
|
vibes_rating: number;
|
|
vibes_comment?: string;
|
|
team_dynamics_rating: number;
|
|
team_dynamics_comment?: string;
|
|
emergency_exit_rating: number;
|
|
emergency_exit_comment?: string;
|
|
lesson_plan_rating: number;
|
|
lesson_plan_comment?: string;
|
|
overall_notes?: string;
|
|
created_at?: string;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export interface Module {
|
|
id: ModuleId;
|
|
name: string;
|
|
icon: string;
|
|
roles: UserRole[];
|
|
color: string;
|
|
}
|