Data Models¶
ER diagrams and table definitions for every NeoCore schema. All schemas live in PostgreSQL at 103.216.94.145:5443 / neocoredb.
Schema naming convention: {service-name}_db-linux (e.g. customer-service_db-linux)
customer-service_db-linux¶
13 tables — customer master, KYC, address, contact, nominee, joint account, occupation, security, block list, death marking, customer type
erDiagram
customer_master {
bigint id PK
varchar cust_id UK
varchar first_name
varchar last_name
date date_of_birth
varchar gender
varchar cust_type
varchar status
timestamp created_at
timestamp updated_at
}
customer_kyc {
bigint id PK
varchar cust_id FK
varchar id_type
varchar id_number UK
varchar kyc_status
date kyc_date
}
customer_address {
bigint id PK
varchar cust_id FK
varchar address_type
varchar address_line1
varchar address_line2
varchar city
varchar state
varchar pincode
varchar country
}
customer_contact {
bigint id PK
varchar cust_id FK
varchar mobile_number UK
varchar email
varchar landline
}
customer_nominee {
bigint id PK
varchar cust_id FK
varchar nominee_name
date nominee_dob
varchar relationship
numeric percentage
varchar guardian_name
}
customer_occupation {
bigint id PK
varchar cust_id FK
varchar occupation_type
varchar employer_name
numeric annual_income
}
customer_security {
bigint id PK
varchar cust_id FK
varchar security_question
varchar security_answer_hash
boolean is_watchlisted
boolean is_blacklisted
}
customer_block_list {
bigint id PK
varchar cust_id FK
varchar reason
timestamp blocked_at
varchar blocked_by
}
customer_death_marking {
bigint id PK
varchar cust_id FK
date death_date
varchar death_certificate_no
timestamp marked_at
varchar marked_by
}
customer_master ||--o{ customer_kyc : "has"
customer_master ||--o{ customer_address : "has"
customer_master ||--o{ customer_contact : "has"
customer_master ||--o{ customer_nominee : "has"
customer_master ||--o{ customer_occupation : "has"
customer_master ||--|| customer_security : "has"
customer_master ||--o{ customer_block_list : "has"
customer_master ||--o| customer_death_marking : "has"
product-service_db-linux¶
10 tables — deposit scheme, rate slabs, loan product, NPA classification, subsidy, GL account linkage, renewal parameters
erDiagram
deposit_scheme {
bigint id PK
varchar scheme_code UK
varchar scheme_name
varchar scheme_type
numeric min_amount
numeric max_amount
int min_tenure_months
int max_tenure_months
varchar interest_payment_frequency
varchar status
varchar gl_account_head
}
deposit_rate_slab {
bigint id PK
bigint scheme_id FK
int tenure_from_months
int tenure_to_months
numeric rate
numeric senior_rate
}
deposit_renewal_params {
bigint id PK
bigint scheme_id FK
varchar renewal_type
int notice_period_days
boolean auto_renew
numeric premature_penalty_rate
}
deposit_ac_head {
bigint id PK
bigint scheme_id FK
varchar gl_account_head
varchar posting_type
}
loan_product {
bigint id PK
varchar product_code UK
varchar product_name
varchar product_type
numeric min_amount
numeric max_amount
int max_tenure_months
numeric interest_rate
varchar repayment_frequency
varchar status
}
loan_npa_classification {
bigint id PK
bigint loan_product_id FK
varchar classification
int overdue_days_from
int overdue_days_to
numeric provision_rate
}
loan_subsidy {
bigint id PK
bigint loan_product_id FK
varchar scheme_name
numeric subsidy_rate
varchar applicable_category
}
deposit_scheme ||--o{ deposit_rate_slab : "has slabs"
deposit_scheme ||--|| deposit_renewal_params : "has"
deposit_scheme ||--o{ deposit_ac_head : "linked to"
loan_product ||--o{ loan_npa_classification : "classified by"
loan_product ||--o{ loan_subsidy : "eligible for"
deposit-service_db-linux¶
5 tables — term deposit master, sub-account info, joint holders, nominees, authorize, closing
erDiagram
term_deposit {
bigint id PK
varchar deposit_number UK
varchar cust_id
varchar product_code
numeric principal_amount
numeric interest_rate
int tenure_months
date deposit_date
date maturity_date
varchar maturity_instructions
varchar status
varchar branch_code
timestamp created_at
}
deposit_joint_holder {
bigint id PK
varchar deposit_number FK
varchar joint_cust_id
int sequence
}
deposit_nominee {
bigint id PK
varchar deposit_number FK
varchar nominee_name
date nominee_dob
varchar relationship
numeric percentage
}
deposit_authorize {
bigint id PK
varchar deposit_number FK
varchar authorized_by
timestamp authorized_at
varchar status
varchar remarks
}
deposit_closing {
bigint id PK
varchar deposit_number FK
date closing_date
numeric accrued_interest
numeric tds_amount
numeric penalty_amount
numeric net_payout
varchar transaction_ref
varchar status
}
deposit_sub_acinfo {
bigint id PK
varchar deposit_number FK
varchar parent_deposit_number
varchar relationship_type
}
term_deposit ||--o{ deposit_joint_holder : "has"
term_deposit ||--o{ deposit_nominee : "has"
term_deposit ||--|| deposit_authorize : "authorized via"
term_deposit ||--o| deposit_closing : "closed via"
term_deposit ||--o| deposit_sub_acinfo : "linked to"
transaction-service_db-linux¶
8 tables — transaction master, cash, transfer, TransAll (composite), exception, reversal, narration, audit
erDiagram
transaction_master {
bigint id PK
varchar transaction_ref UK
varchar transaction_type
numeric amount
varchar currency
varchar reference_account_id
date transaction_date
varchar narration
varchar status
timestamp created_at
}
transaction_cash {
bigint id PK
varchar transaction_ref FK
varchar denomination_breakup
varchar cash_flow_type
}
transaction_transfer {
bigint id PK
varchar transaction_ref FK
varchar from_account
varchar to_account
varchar transfer_mode
}
transaction_transall {
bigint id PK
varchar batch_ref UK
varchar narration
numeric total_amount
varchar status
}
transaction_transall_entry {
bigint id PK
varchar batch_ref FK
varchar account_head
varchar entry_type
numeric amount
}
transaction_exception {
bigint id PK
varchar transaction_ref FK
varchar exception_reason
varchar approved_by
timestamp approved_at
}
transaction_master ||--o| transaction_cash : "is"
transaction_master ||--o| transaction_transfer : "is"
transaction_master ||--o| transaction_exception : "has"
transaction_transall ||--o{ transaction_transall_entry : "composed of"
generalledger-service_db-linux¶
9 tables — major head, sub head, account head, GL limit, branch-wise GL, posting entry, audit
erDiagram
gl_major_head {
bigint id PK
varchar major_head_code UK
varchar major_head_name
varchar head_type
varchar status
}
gl_sub_head {
bigint id PK
varchar sub_head_code UK
bigint major_head_id FK
varchar sub_head_name
varchar status
}
gl_account_head {
bigint id PK
varchar account_head_code UK
bigint sub_head_id FK
varchar account_head_name
varchar account_type
numeric balance
varchar status
varchar branch_code
}
gl_limit {
bigint id PK
varchar account_head_code FK
numeric debit_limit
numeric credit_limit
date effective_from
}
gl_posting_entry {
bigint id PK
varchar account_head_code FK
varchar entry_type
numeric amount
date value_date
varchar narration
varchar transaction_ref
varchar posted_by
timestamp posted_at
}
gl_major_head ||--o{ gl_sub_head : "has"
gl_sub_head ||--o{ gl_account_head : "has"
gl_account_head ||--o{ gl_limit : "limited by"
gl_account_head ||--o{ gl_posting_entry : "receives"
clearing-service_db-linux¶
1 table — cheque clearing master
erDiagram
clearing_cheque {
bigint id PK
varchar cheque_number UK
varchar micr_code
varchar drawer_account
varchar drawee_bank
numeric amount
date cheque_date
varchar clearing_status
varchar return_reason
timestamp processed_at
}
common_db (localhost:5432)¶
3 tables — shared configuration, lookup codes, system parameters
erDiagram
common_lookup {
bigint id PK
varchar lookup_type
varchar lookup_code UK
varchar lookup_value
int display_order
boolean is_active
}
common_system_param {
bigint id PK
varchar param_key UK
varchar param_value
varchar description
boolean is_editable
}
common_holiday_calendar {
bigint id PK
date holiday_date
varchar holiday_name
varchar branch_code
int year
}
share-service_db-linux¶
2 tables — share configuration, share account
erDiagram
share_config {
bigint id PK
numeric face_value
int max_shares_per_member
numeric admission_fee
date effective_date
}
share_account {
bigint id PK
varchar account_number UK
varchar member_id
int number_of_shares
numeric total_value
varchar status
date opened_date
timestamp created_at
}
share_config ||--o{ share_account : "governs"
system-setup-service_db-linux¶
1 table — branch configuration master
erDiagram
branch_configuration {
bigint id PK
varchar branch_code UK
varchar branch_name
varchar ifsc_code
varchar address
varchar working_days
time opening_time
time closing_time
boolean is_head_office
varchar status
}
Cross-Schema References¶
These are application-level references (not foreign key constraints) that link data across schemas.
| Source Schema | Source Field | Target Schema | Target Field | Usage |
|---|---|---|---|---|
deposit-service_db-linux.term_deposit |
cust_id |
customer-service_db-linux.customer_master |
cust_id |
Customer validation on deposit creation |
deposit-service_db-linux.term_deposit |
product_code |
product-service_db-linux.deposit_scheme |
scheme_code |
Product rate lookup |
deposit-service_db-linux.deposit_closing |
transaction_ref |
transaction-service_db-linux.transaction_master |
transaction_ref |
Closing payout posting |
deposit-service_db-linux.deposit_authorize |
deposit_number |
transaction-service_db-linux.transaction_master |
reference_account_id |
Authorization transaction |
generalledger-service_db-linux.gl_account_head |
account_head_code |
product-service_db-linux.deposit_ac_head |
gl_account_head |
Product → GL head mapping |
generalledger-service_db-linux.gl_account_head |
account_head_code |
product-service_db-linux.loan_product |
(via loan_ac_head) | Loan → GL head mapping |
transaction-service_db-linux.transaction_master |
reference_account_id |
deposit-service_db-linux.term_deposit |
deposit_number |
Deposit transaction reference |
share-service_db-linux.share_account |
member_id |
customer-service_db-linux.customer_master |
cust_id |
Member → Customer linkage |
transaction-service_db-linux.transaction_transall_entry |
account_head |
generalledger-service_db-linux.gl_account_head |
account_head_code |
TransAll GL postings |