# payment_hold

## Description

<details>
<summary><strong>Table Definition</strong></summary>

```sql
CREATE TABLE `payment_hold` (
  `payment_hold_id` mediumint unsigned NOT NULL AUTO_INCREMENT,
  `account_id` mediumint unsigned NOT NULL,
  `is_on_hold` tinyint(1) NOT NULL,
  `start_date` date NOT NULL,
  `reason` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `created_by` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `created_at` datetime NOT NULL,
  `last_modified_by` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `last_modified` datetime NOT NULL,
  PRIMARY KEY (`payment_hold_id`),
  UNIQUE KEY `uidx_account_id` (`account_id`),
  CONSTRAINT `fk_account_payment_hold` FOREIGN KEY (`account_id`) REFERENCES `account` (`account_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=[Redacted by tbls] DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
```

</details>

## Columns

| Name             | Type               | Default | Nullable | Extra Definition | Children                                        | Parents               | Comment |
| ---------------- | ------------------ | ------- | -------- | ---------------- | ----------------------------------------------- | --------------------- | ------- |
| account_id       | mediumint unsigned |         | false    |                  |                                                 | [account](account.md) |         |
| created_at       | datetime           |         | false    |                  |                                                 |                       |         |
| created_by       | varchar(255)       |         | false    |                  |                                                 |                       |         |
| is_on_hold       | tinyint(1)         |         | false    |                  |                                                 |                       |         |
| last_modified    | datetime           |         | false    |                  |                                                 |                       |         |
| last_modified_by | varchar(255)       |         | false    |                  |                                                 |                       |         |
| payment_hold_id  | mediumint unsigned |         | false    | auto_increment   | [payment_hold_history](payment_hold_history.md) |                       |         |
| reason           | varchar(255)       |         | false    |                  |                                                 |                       |         |
| start_date       | date               |         | false    |                  |                                                 |                       |         |

## Constraints

| Name                    | Type        | Definition                                               |
| ----------------------- | ----------- | -------------------------------------------------------- |
| PRIMARY                 | PRIMARY KEY | PRIMARY KEY (payment_hold_id)                            |
| fk_account_payment_hold | FOREIGN KEY | FOREIGN KEY (account_id) REFERENCES account (account_id) |
| uidx_account_id         | UNIQUE      | UNIQUE KEY uidx_account_id (account_id)                  |

## Indexes

| Name            | Definition                                          |
| --------------- | --------------------------------------------------- |
| PRIMARY         | PRIMARY KEY (payment_hold_id) USING BTREE           |
| uidx_account_id | UNIQUE KEY uidx_account_id (account_id) USING BTREE |

## Triggers

| Name                      | Definition                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| after_update_payment_hold | CREATE TRIGGER after_update_payment_hold AFTER UPDATE ON payment_hold<br />FOR EACH ROW<br />BEGIN<br />    INSERT INTO `payment_hold_history`(<br />        `payment_hold_id`,<br />        `account_id`,<br />        `is_on_hold`,<br />        `start_date`,<br />        `end_date`,<br />        `reason`,<br />        `created_by`,<br />        `created_at`,<br />        `last_modified_by`,<br />        `last_modified`<br />    ) VALUES (<br />        old.payment_hold_id,<br />        old.account_id,<br />        old.is_on_hold,<br />        old.start_date,<br />        new.start_date,<br />        old.reason,<br />        old.created_by,<br />        old.created_at,<br />        old.last_modified_by,<br />        old.last_modified<br />    );<br />END |

## Relations

![er](payment_hold.svg)

---

> Generated by [tbls](https://github.com/k1LoW/tbls)
