# contract_lifecycle

## Description

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

```sql
CREATE TABLE `contract_lifecycle` (
  `contract_lifecycle_id` mediumint unsigned NOT NULL AUTO_INCREMENT,
  `contract_id` mediumint unsigned NOT NULL,
  `contract_lifecycle_schedule_id` mediumint unsigned NOT NULL,
  `lifecycle_status` enum('init','active','to_be_terminated','terminated','in_collection_period','inactive') COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'init',
  `lifecycle_term_start` date NOT NULL,
  `lifecycle_term_end` date DEFAULT NULL,
  `renewal_effective` date DEFAULT NULL,
  `termination_notice_deadline` date DEFAULT NULL,
  `termination_notice_received` date DEFAULT NULL,
  `termination_effective` date DEFAULT NULL,
  `collection_start` date DEFAULT NULL,
  `collection_end` date DEFAULT NULL,
  `last_renewed` datetime 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_lifecycle_id`),
  KEY `fk_contract_lifecycle_contract` (`contract_id`),
  KEY `fk_contract_lifecycle_contract_lifecycle_schedule` (`contract_lifecycle_schedule_id`),
  CONSTRAINT `fk_contract_lifecycle_contract` FOREIGN KEY (`contract_id`) REFERENCES `contract` (`contract_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `fk_contract_lifecycle_contract_lifecycle_schedule` FOREIGN KEY (`contract_lifecycle_schedule_id`) REFERENCES `contract_lifecycle_schedule` (`contract_lifecycle_schedule_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 |
| ------------------------------ | --------------------------------------------------------------------------------------- | ------- | -------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ------- |
| collection_end                 | date                                                                                    |         | true     |                  |                                                                                                                                     |                                                               |         |
| collection_start               | date                                                                                    |         | true     |                  |                                                                                                                                     |                                                               |         |
| contract_id                    | mediumint unsigned                                                                      |         | false    |                  |                                                                                                                                     | [contract](contract.md)                                       |         |
| contract_lifecycle_id          | mediumint unsigned                                                                      |         | false    | auto_increment   | [contract_lifecycle_bkup_20251015](contract_lifecycle_bkup_20251015.md) [contract_lifecycle_history](contract_lifecycle_history.md) |                                                               |         |
| contract_lifecycle_schedule_id | mediumint unsigned                                                                      |         | false    |                  |                                                                                                                                     | [contract_lifecycle_schedule](contract_lifecycle_schedule.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    |                  |                                                                                                                                     |                                                               |         |
| last_renewed                   | datetime                                                                                |         | true     |                  |                                                                                                                                     |                                                               |         |
| lifecycle_status               | enum('init','active','to_be_terminated','terminated','in_collection_period','inactive') | init    | false    |                  |                                                                                                                                     |                                                               |         |
| lifecycle_term_end             | date                                                                                    |         | true     |                  |                                                                                                                                     |                                                               |         |
| lifecycle_term_start           | date                                                                                    |         | false    |                  |                                                                                                                                     |                                                               |         |
| renewal_effective              | date                                                                                    |         | true     |                  |                                                                                                                                     |                                                               |         |
| termination_effective          | date                                                                                    |         | true     |                  |                                                                                                                                     |                                                               |         |
| termination_notice_deadline    | date                                                                                    |         | true     |                  |                                                                                                                                     |                                                               |         |
| termination_notice_received    | date                                                                                    |         | true     |                  |                                                                                                                                     |                                                               |         |

## Constraints

| Name                                              | Type        | Definition                                                                                                           |
| ------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------- |
| PRIMARY                                           | PRIMARY KEY | PRIMARY KEY (contract_lifecycle_id)                                                                                  |
| fk_contract_lifecycle_contract                    | FOREIGN KEY | FOREIGN KEY (contract_id) REFERENCES contract (contract_id)                                                          |
| fk_contract_lifecycle_contract_lifecycle_schedule | FOREIGN KEY | FOREIGN KEY (contract_lifecycle_schedule_id) REFERENCES contract_lifecycle_schedule (contract_lifecycle_schedule_id) |

## Indexes

| Name                                              | Definition                                                                                         |
| ------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| PRIMARY                                           | PRIMARY KEY (contract_lifecycle_id) USING BTREE                                                    |
| fk_contract_lifecycle_contract                    | KEY fk_contract_lifecycle_contract (contract_id) USING BTREE                                       |
| fk_contract_lifecycle_contract_lifecycle_schedule | KEY fk_contract_lifecycle_contract_lifecycle_schedule (contract_lifecycle_schedule_id) USING BTREE |

## Triggers

| Name                            | Definition                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| after_update_contract_lifecycle | CREATE TRIGGER after_update_contract_lifecycle AFTER UPDATE ON contract_lifecycle<br />FOR EACH ROW<br />BEGIN<br />    INSERT INTO `contract_lifecycle_history` (<br />        `contract_lifecycle_id`,<br />        `contract_id`,<br />        `contract_lifecycle_schedule_id`,<br />        `lifecycle_status`,<br />        `lifecycle_term_start`,<br />        `lifecycle_term_end`,<br />        `renewal_effective`,<br />        `termination_notice_deadline`,<br />        `termination_notice_received`,<br />        `termination_effective`,<br />        `collection_start`,<br />        `collection_end`,<br />        `created_by`,<br />        `created_at`,<br />        `last_modified_by`,<br />        `last_modified`,<br />        `deleted_by`,<br />        `deleted_at`<br />    ) VALUES (<br />        old.contract_lifecycle_id,<br />        old.contract_id,<br />        old.contract_lifecycle_schedule_id,<br />        old.lifecycle_status,<br />        old.lifecycle_term_start,<br />        old.lifecycle_term_end,<br />        old.renewal_effective,<br />        old.termination_notice_deadline,<br />        old.termination_notice_received,<br />        old.termination_effective,<br />        old.collection_start,<br />        old.collection_end,<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 />    );<br />END |

## Relations

![er](contract_lifecycle.svg)

---

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