| export enum ItemType { | |
| PassFail = 'PASS_FAIL', | |
| Text = 'TEXT', | |
| Number = 'NUMBER', | |
| Dropdown = 'DROPDOWN', | |
| MultipleChoice = 'MULTIPLE_CHOICE', | |
| Date = 'DATE' | |
| } | |
| export interface ChecklistItem { | |
| id: string; | |
| label: string; | |
| description?: string; | |
| type: ItemType; | |
| options?: string[]; | |
| required: boolean; | |
| } | |
| export interface ChecklistSection { | |
| id: string; | |
| title: string; | |
| items: ChecklistItem[]; | |
| } | |
| export interface Checklist { | |
| id: string; | |
| name: string; | |
| version: string; | |
| sections: ChecklistSection[]; | |
| createdAt: number; | |
| lastModified: number; | |
| } | |
| export interface AuditResponse { | |
| itemId: string; | |
| itemLabel: string; | |
| value: any; | |
| comment?: string; | |
| photos: string[]; | |
| } | |
| export interface Audit { | |
| id: string; | |
| checklistId: string; | |
| checklistName: string; | |
| inspectorName: string; | |
| status: 'IN_PROGRESS' | 'COMPLETED' | 'SENT'; | |
| startedAt: number; | |
| completedAt?: number; | |
| responses: AuditResponse[]; | |
| webhookUrl?: string; | |
| sheetId?: string; | |
| } | |
| export interface AppSettings { | |
| id?: string; | |
| webhookUrl: string; | |
| sheetId: string; | |
| inspectorName: string; | |
| autoSync?: boolean; | |
| onboardingComplete?: boolean; | |
| } | |