# Design Specifications

This document shows all table databases as well as the logic of the Jframework project.

## Table Structure

We group the tables by the following categories:

* [System Definitions](https://jframework.gitbook.io/developers/references/design-specifications/system-definitions): Tables that define the system data.
* [System Configurations](https://jframework.gitbook.io/developers/references/design-specifications/system-configurations): Tables that store the system, brand, and user configurations/settings.
* [Soft Deletion](https://jframework.gitbook.io/developers/references/design-specifications/soft-deletion): Tables that store soft-deleted records (i.e., Brand, User, Device).
* [Role-Based Access Control](https://jframework.gitbook.io/developers/references/design-specifications/role-based-access-control): Tables that store role-based access control data.
* [Plans & Pricing](https://jframework.gitbook.io/developers/references/design-specifications/plans-and-pricing): Tables that store plan and pricing data (i.e., Package, Price, Coupon, License, etc.).
* [Payment-Related](https://jframework.gitbook.io/developers/references/design-specifications/payment-related): Tables that store payment-related data (i.e., Payment, PaymentMethod, PaymentHistory, etc.).
* [Point-Related](https://jframework.gitbook.io/developers/references/design-specifications/point-related): Tables that store point-related data (i.e., Point, PointHistory, PointEvent, etc.).
* [Tracking-Related](https://jframework.gitbook.io/developers/references/design-specifications/tracking-related): Tables that store tracking-related data (i.e., TrackingActivity, TrackingEvent, etc.).
* [Relationships](https://jframework.gitbook.io/developers/references/design-specifications/relationships): Tables that store relationship tables (i.e., CouponUser, RolePermission, UserRole, etc.).

<details>

<summary>Progress</summary>

* [ ] System Definitions
  * [ ] Country
  * [ ] State
  * [ ] City
  * [ ] Time Zone
  * [ ] Currency
  * [ ] Language
* [ ] System Configurations
  * [ ] Configuration
  * [ ] External Login Provider
  * [ ] Payment Provider
  * [ ] BlackList
  * [ ] CDN
  * [ ] Address
* [ ] Soft Deletion
  * [ ] Brand
    * [ ] Brand Email
    * [ ] Brand Link
    * [ ] Brand Profile
    * [ ] Brand Setting
  * [ ] User
    * [ ] User Profile
    * [ ] User Setting
  * [ ] Device
    * [ ] Device Profile
* [x] Role-Based Access Control
  * [ ] Role
  * [ ] Permission
* [x] Plans & Pricing
  * [x] Feature
  * [x] License
  * [x] Subscription Type
  * [x] Package
  * [x] Coupon
  * [x] Price
* [x] Payment-Related
  * [x] Payment
  * [x] Payment Method
  * [x] Payment History
  * [x] Wallet
* [x] Point-Related
  * [x] Point
  * [x] Point Event
  * [x] Point History
* [ ] Tracking-Related
  * [ ] Tracking Activity
  * [ ] Tracking Event
  * [ ] Tracking Email
  * [ ] Tracking Email Pattern
  * [ ] Tracking Email Read
  * [ ] Helpdesk
  * [ ] Helpdesk Feedback
* [ ] Relationships
  * [ ] Coupon User
  * [ ] External Login Provider - User
  * [ ] Package Feature
  * [ ] Role Permission

</details>
