# PROPHECY Google Sheets schema

`setupProphecySheets()` creates these tabs with the header row.

## Users
| Column | Purpose |
|---|---|
| UserID | Unique account ID |
| FullName | User display name |
| PhoneNumber | Registration and login identifier |
| PasswordHash | Server-side SHA-256 password hash with script secret |
| Role | USER or ADMIN |
| AccountStatus | PENDING, ACTIVE, or DISABLED |
| CreatedAt | Registration timestamp |
| ActivatedAt | Admin activation timestamp |
| LastLoginAt | Last successful login timestamp |

## CodeRequests
`RequestID`, `UserID`, `FullName`, `PhoneNumber`, `RequestMessage`, `RequestStatus`, `CreatedAt`, `HandledAt`, `HandledBy`

## SportsCodes
`CodeID`, `RecipientUserID`, `CodeText`, `Bookmaker`, `AdminNote`, `CreatedAt`, `SentBy`, `DeliveryType`, `Status`

`RecipientUserID` is a specific UserID for private delivery or `ALL` for broadcast.

## Notifications
`NotificationID`, `Title`, `Message`, `Target`, `CreatedAt`, `CreatedBy`, `Status`

`Target` is a UserID, `ALL`, or `ADMIN`.

## AuditLog
`AuditID`, `ActorUserID`, `ActorPhone`, `Action`, `TargetID`, `Details`, `CreatedAt`
