# Sub Dictionary: `tbl_UserData`

## Table Info

| Property | Value |
|----------|-------|
| Table | `tbl_UserData` |
| Database | quitsure |
| Connection | `mysql` |
| Engine | InnoDB |
| Type | TABLE |
| Category | User |
| Laravel Model | `UserData` (app/Models/UserData.php) |

## Columns

| # | Column | Type | Nullable | Default | Key | Extra | Description |
|---|--------|------|----------|---------|-----|-------|-------------|
| 1 | `iUserId` | `int` | NO | - | PRI | - | Integer: User Id (likely FK) |
| 2 | `vGender` | `varchar(10)` | YES | NULL | MUL | - | Varchar: Gender |
| 3 | `vAge` | `varchar(10)` | YES | NULL | MUL | - | Varchar: Age |
| 4 | `setHealthIssues` | `varchar(500)` | YES | NULL | - | - | Set/Comma-separated: Health Issues |
| 5 | `vQuitDecision` | `varchar(100)` | YES | NULL | - | - | Varchar: Quit Decision |
| 6 | `setQuittingReasons` | `varchar(500)` | YES | NULL | - | - | Set/Comma-separated: Quitting Reasons |
| 7 | `vPastQuitAttempts` | `varchar(100)` | YES | NULL | - | - | Varchar: Past Quit Attempts |
| 8 | `setPastQuitTechniques` | `varchar(1000)` | YES | NULL | - | - | Set/Comma-separated: Past Quit Techniques |
| 9 | `setPastRelapseReasons` | `varchar(500)` | YES | NULL | - | - | Set/Comma-separated: Past Relapse Reasons |
| 10 | `setSmokingDeceptions` | `varchar(500)` | YES | NULL | - | - | Set/Comma-separated: Smoking Deceptions |
| 11 | `setQuittingConcerns` | `varchar(1000)` | YES | NULL | - | - | Set/Comma-separated: Quitting Concerns |
| 12 | `setProgramCommit` | `varchar(500)` | YES | NULL | - | - | Set/Comma-separated: Program Commit |
| 13 | `vHeardAboutUs` | `varchar(500)` | YES | NULL | - | - | Varchar: Heard About Us |
| 14 | `iResistGoingToPlaces` | `int unsigned` | YES | NULL | - | - | Integer: Resist Going To Places |
| 15 | `iSmokeWhenSick` | `int unsigned` | YES | NULL | - | - | Integer: Smoke When Sick |
| 16 | `vTimeAfterWake` | `varchar(255)` | YES | NULL | - | - | Varchar: Time After Wake |
| 17 | `vFaveCigarette` | `varchar(255)` | YES | NULL | - | - | Varchar: Fave Cigarette |
| 18 | `iHideSmoking` | `int unsigned` | YES | NULL | - | - | Integer: Hide Smoking |
| 19 | `iAddictionScore` | `int unsigned` | YES | NULL | - | - | Integer: Addiction Score |
| 20 | `iPersonalityTypeId` | `int unsigned` | YES | NULL | - | - | Integer: Personality Type Id (likely FK) |
| 21 | `vGoal` | `varchar(255)` | YES | NULL | - | - | Varchar: Goal |
| 22 | `vColdTurkey` | `varchar(255)` | YES | NULL | - | - | Varchar: Cold Turkey |
| 23 | `iGuilt` | `int` | YES | NULL | - | - | Integer: Guilt |
| 24 | `setHesitations` | `varchar(500)` | YES | NULL | - | - | Set/Comma-separated: Hesitations |
| 25 | `vExtendedLastUrl` | `varchar(500)` | YES | NULL | - | - | Varchar: Extended Last Url |
| 26 | `vOnBoardLang` | `varchar(50)` | YES | NULL | - | - | Varchar: On Board Lang |
| 27 | `vOnBoardPlatform` | `varchar(100)` | YES | NULL | MUL | - | Varchar: On Board Platform |
| 28 | `vRelationship` | `varchar(50)` | YES | NULL | - | - | Varchar: Relationship |
| 29 | `vEnvironment` | `varchar(50)` | YES | NULL | - | - | Varchar: Environment |
| 30 | `vRegret` | `varchar(100)` | YES | NULL | - | - | Varchar: Regret |
| 31 | `setSmokingTriggers` | `varchar(500)` | YES | NULL | - | - | Set/Comma-separated: Smoking Triggers |
| 32 | `vInterferes` | `varchar(100)` | YES | NULL | - | - | Varchar: Interferes |
| 33 | `vEscape` | `varchar(100)` | YES | NULL | - | - | Varchar: Escape |
| 34 | `vSeek` | `varchar(100)` | YES | NULL | - | - | Varchar: Seek |
| 35 | `vExceed` | `varchar(100)` | YES | NULL | - | - | Varchar: Exceed |

## Indexes

| Name | Columns | Unique | Type |
|------|---------|--------|------|
| `idx_onboard_platform` | `vOnBoardPlatform` | NO | BTREE |
| `idx_tbl_UserData_vAge` | `vAge` | NO | BTREE |
| `idx_tbl_UserData_vGender` | `vGender` | NO | BTREE |
| `iUserId_UNIQUE` | `iUserId` | YES | BTREE |
| `PRIMARY` | `iUserId` | YES | BTREE |

## Foreign Keys

### Formal Foreign Keys

| Constraint | Column | References |
|-----------|--------|------------|
| `iUserId` | `iUserId` | `tbl_Users`.`iUserID` |


## Laravel Eloquent Relationships

| Method | Type | Related Model | Foreign Key |
|--------|------|--------------|-------------|
| `user()` | belongsTo | `User` | `iUserID` |
| `userProfile()` | hasOne | `UserProfile` | `iUserID` |
| `userProgram()` | belongsTo | `UserProgram` | `iUserID` |
| `userConfig()` | belongsTo | `UserConfig` | `iUserID` |
