# Sub Dictionary: `tbl_Users`

## Table Info

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

## Columns

| # | Column | Type | Nullable | Default | Key | Extra | Description |
|---|--------|------|----------|---------|-----|-------|-------------|
| 1 | `iUserID` | `int` | NO | - | PRI | auto_increment | Integer: User ID (likely FK) |
| 2 | `vEUserID` | `varchar(16)` | NO | - | UNI | - | Varchar: E User ID |
| 3 | `vMobile_old` | `varchar(50)` | YES | NULL | - | - | Varchar: Mobile_old |
| 4 | `vEmail_old` | `varchar(500)` | YES | NULL | - | - | Varchar: Email_old |
| 5 | `vAccessToken_old` | `varchar(200)` | YES | NULL | MUL | - | Varchar: Access Token_old |
| 6 | `iActiveDayID` | `int unsigned` | YES | NULL | MUL | - | Integer: Active Day ID (likely FK) |
| 7 | `bActive` | `tinyint(1)` | YES | NULL | MUL | - | Boolean/Flag: Active |
| 8 | `bDeleted` | `tinyint(1)` | YES | NULL | MUL | - | Boolean/Flag: Deleted |
| 9 | `dLastLogin` | `datetime(6)` | YES | NULL | MUL | - | Datetime: Last Login |
| 10 | `SmokingStatus` | `varchar(20)` | YES | `Smoker` | MUL | - |  |
| 11 | `iProgramID` | `int unsigned` | YES | `0` | MUL | - | Integer: Program ID (likely FK) |
| 12 | `SocialId` | `varchar(500)` | YES | NULL | MUL | - |  |
| 13 | `dDateCreated` | `datetime` | YES | `CURRENT_TIMESTAMP` | MUL | DEFAULT_GENERATED | Datetime: Date Created |
| 14 | `vDeviceType` | `varchar(50)` | YES | NULL | MUL | - | Varchar: Device Type |
| 15 | `vUDID` | `varchar(500)` | YES | NULL | MUL | - | Varchar: UDID |
| 16 | `iPartnerId` | `int unsigned` | YES | NULL | MUL | - | Integer: Partner Id (likely FK) |
| 17 | `vPartnerUserId` | `varchar(100)` | YES | NULL | - | - | Varchar: Partner User Id |
| 18 | `bTestUser` | `tinyint` | NO | `0` | MUL | - | Boolean/Flag: Test User |
| 19 | `dDeactiveTime` | `datetime` | YES | NULL | - | - | Datetime: Deactive Time |
| 20 | `vHashedEmail` | `char(64)` | YES | NULL | MUL | - | Varchar: Hashed Email |
| 21 | `vHashedMobile` | `char(64)` | YES | NULL | MUL | - | Varchar: Hashed Mobile |
| 22 | `vHashedToken` | `char(64)` | YES | NULL | - | - | Varchar: Hashed Token |

## Indexes

| Name | Columns | Unique | Type |
|------|---------|--------|------|
| `idx_tbl_Users_bActive` | `bActive` | NO | BTREE |
| `idx_tbl_Users_bActive_vUDID` | `bActive`, `vUDID` | NO | BTREE |
| `idx_tbl_Users_bDeleted` | `bDeleted` | NO | BTREE |
| `idx_tbl_Users_bTestUser` | `bTestUser` | NO | BTREE |
| `idx_tbl_users_dDateCreated` | `dDateCreated` | NO | BTREE |
| `idx_tbl_Users_dLastLogin` | `dLastLogin` | NO | BTREE |
| `idx_tbl_Users_iActiveDayID` | `iActiveDayID` | NO | BTREE |
| `idx_tbl_Users_iPartnerId` | `iPartnerId` | NO | BTREE |
| `idx_tbl_Users_iProgramID` | `iProgramID` | NO | BTREE |
| `idx_tbl_Users_iUserID` | `iUserID` | NO | BTREE |
| `idx_tbl_Users_iUserID_bActive` | `iUserID`, `bActive` | NO | BTREE |
| `idx_tbl_Users_SmokingStatus` | `SmokingStatus` | NO | BTREE |
| `idx_tbl_users_SocialId` | `SocialId` | NO | BTREE |
| `idx_tbl_Users_vAccessToken` | `vAccessToken_old` | NO | BTREE |
| `idx_tbl_users_vDeviceType` | `vDeviceType` | NO | BTREE |
| `idx_tbl_Users_vHashedEmail` | `vHashedEmail` | NO | BTREE |
| `idx_tbl_Users_vHashedEmail_bDeleted` | `vHashedEmail`, `bDeleted` | NO | BTREE |
| `idx_tbl_Users_vHashedMobile` | `vHashedMobile` | NO | BTREE |
| `idx_tbl_users_vUDID` | `vUDID` | NO | BTREE |
| `PRIMARY` | `iUserID` | YES | BTREE |
| `vEUserID` | `vEUserID` | YES | BTREE |

## Foreign Keys

### Formal Foreign Keys

None defined.

### Implicit Relationships (from column naming)

| Column | Likely References |
|--------|------------------|
| `iProgramID` | `tbl_Programs.iProgramID` |
| `iPartnerId` | `tbl_Partners.iPartnerId` |

## Laravel Eloquent Relationships

| Method | Type | Related Model | Foreign Key |
|--------|------|--------------|-------------|
| `userInfo()` | hasOne | `UserInfo` | `iUserID` |
| `program()` | belongsTo | `Program` | `iProgramID` |
| `userConfig()` | belongsTo | `UserConfig` | `iUserID` |
| `userProfile()` | belongsTo | `UserProfile` | `iUserID` |
| `userProgram()` | hasOne | `UserProgram` | `iUserID` |
| `userData()` | hasOne | `UserData` | `iUserId` |
| `userAngel()` | hasOne | `UserAngel` | `iUserId` |
| `totalCigTracked()` | hasOne | `TotalCigTracked` | `iUserId` |
| `userSubScreen()` | belongsTo | `UserSubScreen` | `iUserID` |
| `userSource()` | belongsTo | `UserSource` | `iUserId` |
| `userAppActivity()` | hasOne | `UserAppActivity` | `iUserId` |
