# contract_mechanical_deduction

## Description

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

```sql
CREATE TABLE `contract_mechanical_deduction` (
  `contract_mechanical_deduction_id` mediumint unsigned NOT NULL AUTO_INCREMENT,
  `contract_id` mediumint unsigned NOT NULL,
  `territory` enum('USA','CAN','ROW') COLLATE utf8mb4_general_ci NOT NULL,
  `mechanical_type` set('digital','physical','ringtone') COLLATE utf8mb4_general_ci NOT NULL,
  `admin_type` enum('both','business','customer') COLLATE utf8mb4_general_ci NOT NULL,
  `admin_fee` decimal(5,2) DEFAULT NULL,
  `created_by` varchar(180) COLLATE utf8mb4_general_ci NOT NULL,
  `created_at` datetime NOT NULL,
  `last_modified_by` varchar(180) COLLATE utf8mb4_general_ci NOT NULL,
  `last_modified` datetime NOT NULL,
  `deleted_by` varchar(180) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `deleted_at` datetime DEFAULT NULL,
  PRIMARY KEY (`contract_mechanical_deduction_id`),
  UNIQUE KEY `unique_contract_mech_deduction` (`contract_id`,`territory`,`deleted_at`),
  CONSTRAINT `fk_contract_mechanical_deduction_contract` FOREIGN KEY (`contract_id`) REFERENCES `contract` (`contract_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 |
| -------------------------------- | ------------------------------------ | ------- | -------- | ---------------- | --------------------------------------------------------------------------------- | ----------------------- | ------- |
| admin_fee                        | decimal(5,2)                         |         | true     |                  |                                                                                   |                         |         |
| admin_type                       | enum('both','business','customer')   |         | false    |                  |                                                                                   |                         |         |
| contract_id                      | mediumint unsigned                   |         | false    |                  |                                                                                   | [contract](contract.md) |         |
| contract_mechanical_deduction_id | mediumint unsigned                   |         | false    | auto_increment   | [contract_mechanical_deduction_history](contract_mechanical_deduction_history.md) |                         |         |
| created_at                       | datetime                             |         | false    |                  |                                                                                   |                         |         |
| created_by                       | varchar(180)                         |         | false    |                  |                                                                                   |                         |         |
| deleted_at                       | datetime                             |         | true     |                  |                                                                                   |                         |         |
| deleted_by                       | varchar(180)                         |         | true     |                  |                                                                                   |                         |         |
| last_modified                    | datetime                             |         | false    |                  |                                                                                   |                         |         |
| last_modified_by                 | varchar(180)                         |         | false    |                  |                                                                                   |                         |         |
| mechanical_type                  | set('digital','physical','ringtone') |         | false    |                  |                                                                                   |                         |         |
| territory                        | enum('USA','CAN','ROW')              |         | false    |                  |                                                                                   |                         |         |

## Constraints

| Name                                      | Type        | Definition                                                                     |
| ----------------------------------------- | ----------- | ------------------------------------------------------------------------------ |
| PRIMARY                                   | PRIMARY KEY | PRIMARY KEY (contract_mechanical_deduction_id)                                 |
| fk_contract_mechanical_deduction_contract | FOREIGN KEY | FOREIGN KEY (contract_id) REFERENCES contract (contract_id)                    |
| unique_contract_mech_deduction            | UNIQUE      | UNIQUE KEY unique_contract_mech_deduction (contract_id, territory, deleted_at) |

## Indexes

| Name                           | Definition                                                                                 |
| ------------------------------ | ------------------------------------------------------------------------------------------ |
| PRIMARY                        | PRIMARY KEY (contract_mechanical_deduction_id) USING BTREE                                 |
| unique_contract_mech_deduction | UNIQUE KEY unique_contract_mech_deduction (contract_id, territory, deleted_at) USING BTREE |

## Triggers

| Name                                       | Definition                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| after_update_contract_mechanical_deduction | CREATE TRIGGER after_update_contract_mechanical_deduction AFTER UPDATE ON contract_mechanical_deduction<br />FOR EACH ROW<br />BEGIN<br />    INSERT INTO<br />        `contract_mechanical_deduction_history`<br />        (<br />            `contract_mechanical_deduction_id`,<br />            `contract_id`,<br />            `territory`,<br />            `mechanical_type`,<br />            `admin_type`,<br />            `admin_fee`,<br />            `created_by`,<br />            `created_at`,<br />            `last_modified_by`,<br />            `last_modified`,<br />            `deleted_by`,<br />            `deleted_at`<br />        )<br />    VALUES<br />        (<br />             old.contract_mechanical_deduction_id,<br />             old.contract_id,<br />             old.territory,<br />             old.mechanical_type,<br />             old.admin_type,<br />             old.admin_fee,<br />             old.created_by,<br />             old.created_at,<br />             old.last_modified_by,<br />             old.last_modified,<br />             old.deleted_by,<br />             old.deleted_at<br />        ); END |

## Relations

![er](contract_mechanical_deduction.svg)

---

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