# Sub Dictionary: `tbl_{X}Exercises`

> Pattern template - applies to **17 tables** (programs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
> Representative table: `tbl_1Exercises` (program 1)

## Table Info

| Property | Value |
|----------|-------|
| Pattern | `tbl_{X}Exercises` |
| Database | quitsure |
| Connection | `mysql` |
| Engine | InnoDB |
| Laravel Model | `Exercise` (app/Models/Exercise.php) |
| Table Resolution | `Exercise::forProgram($programId)` |

### Actual Tables

| Program | Table Name |
|---------|------------|
| 1 | `tbl_1Exercises` |
| 2 | `tbl_2Exercises` |
| 3 | `tbl_3Exercises` |
| 4 | `tbl_4Exercises` |
| 5 | `tbl_5Exercises` |
| 6 | `tbl_6Exercises` |
| 7 | `tbl_7Exercises` |
| 8 | `tbl_8Exercises` |
| 9 | `tbl_9Exercises` |
| 10 | `tbl_10Exercises` |
| 11 | `tbl_11Exercises` |
| 12 | `tbl_12Exercises` |
| 13 | `tbl_13Exercises` |
| 14 | `tbl_14Exercises` |
| 15 | `tbl_15Exercises` |
| 16 | `tbl_16Exercises` |
| 17 | `tbl_17Exercises` |

## Columns

| # | Column | Type | Nullable | Default | Key | Extra | Description |
|---|--------|------|----------|---------|-----|-------|-------------|
| 1 | `iExerciseID` | `int unsigned` | NO | - | PRI | auto_increment | Integer: Exercise ID (likely FK) |
| 2 | `iDayID` | `int unsigned` | YES | NULL | MUL | - | Integer: Day ID (likely FK) |
| 3 | `vTitle` | `varchar(100)` | YES | NULL | - | - | Varchar: Title |
| 4 | `vBackgroundImg` | `varchar(150)` | YES | NULL | - | - | Varchar: Background Img |
| 5 | `vAVContentLink` | `varchar(150)` | YES | NULL | - | - | Varchar: AV Content Link |
| 6 | `tDescription` | `mediumtext` | YES | NULL | - | - | Text: Description |
| 7 | `iCount` | `int unsigned` | YES | NULL | - | - | Integer: Count |
| 8 | `iImgWidth` | `smallint unsigned` | YES | NULL | - | - | Integer: Img Width |
| 9 | `iImgHeight` | `smallint unsigned` | YES | NULL | - | - | Integer: Img Height |
| 10 | `bActive` | `tinyint(1)` | YES | NULL | - | - | Boolean/Flag: Active |
| 11 | `bDeleted` | `tinyint(1)` | YES | NULL | MUL | - | Boolean/Flag: Deleted |
| 12 | `dDateCreated` | `datetime` | YES | `CURRENT_TIMESTAMP` | - | DEFAULT_GENERATED | Datetime: Date Created |
| 13 | `dDateUpdated` | `datetime` | YES | NULL | - | - | Datetime: Date Updated |
| 14 | `bFree` | `tinyint(1)` | YES | `0` | - | - | Boolean/Flag: Free |
| 15 | `iNum` | `int unsigned` | NO | `1` | - | - | Integer: Num |
| 16 | `iABTest` | `int unsigned` | NO | `0` | - | - | Integer: AB Test |
| 17 | `bStoreRating` | `int unsigned` | NO | `0` | - | - | Boolean/Flag: Store Rating |
| 18 | `bOptional` | `tinyint(1)` | NO | `0` | - | - | Boolean/Flag: Optional |
| 19 | `bTool` | `tinyint(1)` | NO | `0` | - | - | Boolean/Flag: Tool |
| 20 | `bOnlyTool` | `tinyint(1)` | NO | `0` | - | - | Boolean/Flag: Only Tool |

## Indexes

| Name | Columns | Unique | Type |
|------|---------|--------|------|
| `idx_tbl_Exercises_bDeleted` | `bDeleted` | NO | BTREE |
| `idx_tbl_Exercises_iDayID` | `iDayID` | NO | BTREE |
| `idx_tbl_Exercises_iExerciseID` | `iExerciseID` | NO | BTREE |
| `PRIMARY` | `iExerciseID` | YES | BTREE |

## Foreign Keys

### Formal Foreign Keys

None defined.

### Implicit Relationships (from column naming)

| Column | Likely References |
|--------|------------------|
| `iDayID` | `tbl_{X}Days.iDayID (program-specific)` |

## Laravel Eloquent Relationships

| Method | Type | Related Model | Foreign Key |
|--------|------|--------------|-------------|
| `day()` | belongsTo | `Day` | `iDayID` |
| `userExercise()` | hasOne | `UserExercise` | `iExerciseID` |
