@procxo/shared 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -2
- package/src/config/index.ts +5 -0
- package/src/config/ormconfig.factory.ts +102 -0
- package/src/config/typeorm.config.ts +22 -0
- package/src/core/constant/index.ts +1 -0
- package/src/core/constant/notification-preference.ts +113 -0
- package/src/core/json/core-data/currency.json +8 -0
- package/{dist → src}/core/json/core-data/department.json +38 -38
- package/{dist → src}/core/json/core-data/permission.json +898 -898
- package/src/core/json/core-data/role.json +30 -0
- package/src/core/json/core-data/user.json +12 -0
- package/src/core/json/geographic-data/cities.json +54693 -0
- package/src/core/json/geographic-data/countries.json +31 -0
- package/src/database/entities/activity-logs.entity.ts +31 -0
- package/src/database/entities/address.entity.ts +31 -0
- package/src/database/entities/alert.entity.ts +139 -0
- package/src/database/entities/approval-condition.entity.ts +48 -0
- package/src/database/entities/approval-hierarchy-role.entity.ts +24 -0
- package/src/database/entities/approval-hierarchy-user.entity.ts +24 -0
- package/src/database/entities/approval-hierarchy.entity.ts +59 -0
- package/src/database/entities/approval-journey.entity.ts +75 -0
- package/src/database/entities/approval-level-escalation-user.entity.ts +23 -0
- package/src/database/entities/approval-level-escalation.entity.ts +45 -0
- package/src/database/entities/approval-level-user.entity.ts +25 -0
- package/src/database/entities/approval-level.entity.ts +51 -0
- package/src/database/entities/base.entity.ts +31 -0
- package/src/database/entities/chat.entity.ts +36 -0
- package/src/database/entities/city.entity.ts +25 -0
- package/src/database/entities/client.entity.ts +91 -0
- package/src/database/entities/contact.entity.ts +27 -0
- package/src/database/entities/country.entity.ts +69 -0
- package/src/database/entities/credit-note.entity.ts +88 -0
- package/src/database/entities/currency.entity.ts +21 -0
- package/src/database/entities/department.entity.ts +21 -0
- package/src/database/entities/entitlement.entity.ts +64 -0
- package/src/database/entities/expense.entity.ts +141 -0
- package/src/database/entities/file.entity.ts +22 -0
- package/src/database/entities/fixed-invoice-item.entity.ts +29 -0
- package/src/database/entities/group.entity.ts +21 -0
- package/src/database/entities/gst.entity.ts +32 -0
- package/src/database/entities/holiday.entity.ts +51 -0
- package/{dist/database/entities/index.d.ts → src/database/entities/index.ts} +79 -78
- package/src/database/entities/invoice-template-footer.entity.ts +70 -0
- package/src/database/entities/invoice-template-header.entity.ts +34 -0
- package/src/database/entities/invoice-template-table.entity.ts +83 -0
- package/src/database/entities/invoice-template.entity.ts +119 -0
- package/src/database/entities/invoice.entity.ts +139 -0
- package/src/database/entities/invoice_item.entity.ts +69 -0
- package/src/database/entities/leave-balance.entity.ts +118 -0
- package/src/database/entities/leave-request.entity.ts +155 -0
- package/src/database/entities/leave-type.entity.ts +37 -0
- package/src/database/entities/matter-tag.entity.ts +21 -0
- package/src/database/entities/matter-task-view-filter.entity.ts +21 -0
- package/src/database/entities/matter-team-member.entity.ts +30 -0
- package/src/database/entities/matter.entity.ts +156 -0
- package/src/database/entities/payment.entity.ts +72 -0
- package/src/database/entities/permission.entity.ts +27 -0
- package/src/database/entities/quickbooks-connection.entity.ts +35 -0
- package/src/database/entities/quickbooks-sync-log.entity.ts +79 -0
- package/src/database/entities/role-permission.entity.ts +30 -0
- package/src/database/entities/role-shift.entity.ts +43 -0
- package/src/database/entities/role.entity.ts +30 -0
- package/src/database/entities/sequence-generator.entity.ts +40 -0
- package/src/database/entities/shift.entity.ts +72 -0
- package/src/database/entities/sub-task-tag.entity.ts +22 -0
- package/src/database/entities/subtask-user.entity.ts +21 -0
- package/src/database/entities/subtask.entity.ts +125 -0
- package/src/database/entities/summary-task-status.entity.ts +15 -0
- package/src/database/entities/superset.entity.ts +38 -0
- package/src/database/entities/tag.entity.ts +19 -0
- package/src/database/entities/task-comment.entity.ts +41 -0
- package/src/database/entities/task-milestone.entity.ts +14 -0
- package/src/database/entities/task-remainder.entity.ts +29 -0
- package/src/database/entities/task-tag.entity.ts +22 -0
- package/src/database/entities/task-type.entity.ts +14 -0
- package/src/database/entities/task-user.entity.ts +21 -0
- package/src/database/entities/task.entity.ts +176 -0
- package/src/database/entities/template-task.entity.ts +25 -0
- package/src/database/entities/template.entity.ts +28 -0
- package/src/database/entities/timesheet-comment.entity.ts +45 -0
- package/src/database/entities/timesheet-event.entity.ts +256 -0
- package/src/database/entities/timesheet-summary.entity.ts +101 -0
- package/src/database/entities/timesheet.entity.ts +76 -0
- package/src/database/entities/transfer-ownership.entity.ts +39 -0
- package/src/database/entities/upload-log.entity.ts +78 -0
- package/src/database/entities/user-notification-channel.entity.ts +43 -0
- package/src/database/entities/user-notification-preference.entity.ts +50 -0
- package/src/database/entities/user-role.entity.ts +25 -0
- package/src/database/entities/user-session-history.entity.ts +45 -0
- package/src/database/entities/user-shift.entity.ts +109 -0
- package/src/database/entities/user.entity.ts +198 -0
- package/src/database/index.ts +1 -0
- package/{dist/database/migrations/1770706648232-initialMigration.js → src/database/migrations/1770706648232-initialMigration.ts} +9 -9
- package/src/database/seeder/base.seed.ts +104 -0
- package/src/database/seeder/config/seeder.config.ts +26 -0
- package/src/database/seeder/errors/seeder.error.ts +20 -0
- package/src/database/seeder/seed-runner.ts +200 -0
- package/src/database/seeder/seeds/city.seed.ts +70 -0
- package/src/database/seeder/seeds/country.seed.ts +58 -0
- package/src/database/seeder/seeds/currency.seed.ts +52 -0
- package/src/database/seeder/seeds/department.seed.ts +47 -0
- package/src/database/seeder/seeds/permission.seed.ts +54 -0
- package/src/database/seeder/seeds/role-permission.seed.ts +58 -0
- package/src/database/seeder/seeds/role.seed.ts +52 -0
- package/src/database/seeder/seeds/user-role.seed.ts +72 -0
- package/src/database/seeder/seeds/user.seed.ts +87 -0
- package/{dist/index.d.ts → src/index.ts} +5 -1
- package/src/scripts/create-schema.ts +94 -0
- package/dist/config/index.d.ts +0 -2
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -7
- package/dist/config/index.js.map +0 -1
- package/dist/config/ormconfig.factory.d.ts +0 -10
- package/dist/config/ormconfig.factory.d.ts.map +0 -1
- package/dist/config/ormconfig.factory.js +0 -47
- package/dist/config/ormconfig.factory.js.map +0 -1
- package/dist/config/typeorm.config.d.ts +0 -4
- package/dist/config/typeorm.config.d.ts.map +0 -1
- package/dist/config/typeorm.config.js +0 -22
- package/dist/config/typeorm.config.js.map +0 -1
- package/dist/core/constant/index.d.ts +0 -2
- package/dist/core/constant/index.d.ts.map +0 -1
- package/dist/core/constant/index.js +0 -18
- package/dist/core/constant/index.js.map +0 -1
- package/dist/core/constant/notification-preference.d.ts +0 -29
- package/dist/core/constant/notification-preference.d.ts.map +0 -1
- package/dist/core/constant/notification-preference.js +0 -81
- package/dist/core/constant/notification-preference.js.map +0 -1
- package/dist/core/json/core-data/currency.json +0 -8
- package/dist/core/json/core-data/role.json +0 -30
- package/dist/core/json/core-data/user.json +0 -12
- package/dist/core/json/geographic-data/cities.json +0 -54693
- package/dist/core/json/geographic-data/countries.json +0 -31
- package/dist/database/entities/activity-logs.entity.d.ts +0 -11
- package/dist/database/entities/activity-logs.entity.d.ts.map +0 -1
- package/dist/database/entities/activity-logs.entity.js +0 -56
- package/dist/database/entities/activity-logs.entity.js.map +0 -1
- package/dist/database/entities/address.entity.d.ts +0 -13
- package/dist/database/entities/address.entity.d.ts.map +0 -1
- package/dist/database/entities/address.entity.js +0 -63
- package/dist/database/entities/address.entity.js.map +0 -1
- package/dist/database/entities/alert.entity.d.ts +0 -37
- package/dist/database/entities/alert.entity.d.ts.map +0 -1
- package/dist/database/entities/alert.entity.js +0 -171
- package/dist/database/entities/alert.entity.js.map +0 -1
- package/dist/database/entities/approval-condition.entity.d.ts +0 -16
- package/dist/database/entities/approval-condition.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-condition.entity.js +0 -66
- package/dist/database/entities/approval-condition.entity.js.map +0 -1
- package/dist/database/entities/approval-hierarchy-role.entity.d.ts +0 -10
- package/dist/database/entities/approval-hierarchy-role.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-hierarchy-role.entity.js +0 -47
- package/dist/database/entities/approval-hierarchy-role.entity.js.map +0 -1
- package/dist/database/entities/approval-hierarchy-user.entity.d.ts +0 -10
- package/dist/database/entities/approval-hierarchy-user.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-hierarchy-user.entity.js +0 -47
- package/dist/database/entities/approval-hierarchy-user.entity.js.map +0 -1
- package/dist/database/entities/approval-hierarchy.entity.d.ts +0 -22
- package/dist/database/entities/approval-hierarchy.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-hierarchy.entity.js +0 -80
- package/dist/database/entities/approval-hierarchy.entity.js.map +0 -1
- package/dist/database/entities/approval-journey.entity.d.ts +0 -32
- package/dist/database/entities/approval-journey.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-journey.entity.js +0 -125
- package/dist/database/entities/approval-journey.entity.js.map +0 -1
- package/dist/database/entities/approval-level-escalation-user.entity.d.ts +0 -10
- package/dist/database/entities/approval-level-escalation-user.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-level-escalation-user.entity.js +0 -47
- package/dist/database/entities/approval-level-escalation-user.entity.js.map +0 -1
- package/dist/database/entities/approval-level-escalation.entity.d.ts +0 -14
- package/dist/database/entities/approval-level-escalation.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-level-escalation.entity.js +0 -65
- package/dist/database/entities/approval-level-escalation.entity.js.map +0 -1
- package/dist/database/entities/approval-level-user.entity.d.ts +0 -10
- package/dist/database/entities/approval-level-user.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-level-user.entity.js +0 -49
- package/dist/database/entities/approval-level-user.entity.js.map +0 -1
- package/dist/database/entities/approval-level.entity.d.ts +0 -17
- package/dist/database/entities/approval-level.entity.d.ts.map +0 -1
- package/dist/database/entities/approval-level.entity.js +0 -76
- package/dist/database/entities/approval-level.entity.js.map +0 -1
- package/dist/database/entities/base.entity.d.ts +0 -12
- package/dist/database/entities/base.entity.d.ts.map +0 -1
- package/dist/database/entities/base.entity.js +0 -63
- package/dist/database/entities/base.entity.js.map +0 -1
- package/dist/database/entities/chat.entity.d.ts +0 -13
- package/dist/database/entities/chat.entity.d.ts.map +0 -1
- package/dist/database/entities/chat.entity.js +0 -67
- package/dist/database/entities/chat.entity.js.map +0 -1
- package/dist/database/entities/city.entity.d.ts +0 -11
- package/dist/database/entities/city.entity.d.ts.map +0 -1
- package/dist/database/entities/city.entity.js +0 -53
- package/dist/database/entities/city.entity.js.map +0 -1
- package/dist/database/entities/client.entity.d.ts +0 -40
- package/dist/database/entities/client.entity.d.ts.map +0 -1
- package/dist/database/entities/client.entity.js +0 -146
- package/dist/database/entities/client.entity.js.map +0 -1
- package/dist/database/entities/contact.entity.d.ts +0 -12
- package/dist/database/entities/contact.entity.d.ts.map +0 -1
- package/dist/database/entities/contact.entity.js +0 -57
- package/dist/database/entities/contact.entity.js.map +0 -1
- package/dist/database/entities/country.entity.d.ts +0 -26
- package/dist/database/entities/country.entity.d.ts.map +0 -1
- package/dist/database/entities/country.entity.js +0 -127
- package/dist/database/entities/country.entity.js.map +0 -1
- package/dist/database/entities/credit-note.entity.d.ts +0 -35
- package/dist/database/entities/credit-note.entity.d.ts.map +0 -1
- package/dist/database/entities/credit-note.entity.js +0 -144
- package/dist/database/entities/credit-note.entity.js.map +0 -1
- package/dist/database/entities/currency.entity.d.ts +0 -10
- package/dist/database/entities/currency.entity.d.ts.map +0 -1
- package/dist/database/entities/currency.entity.js +0 -47
- package/dist/database/entities/currency.entity.js.map +0 -1
- package/dist/database/entities/department.entity.d.ts +0 -10
- package/dist/database/entities/department.entity.d.ts.map +0 -1
- package/dist/database/entities/department.entity.js +0 -47
- package/dist/database/entities/department.entity.js.map +0 -1
- package/dist/database/entities/entitlement.entity.d.ts +0 -24
- package/dist/database/entities/entitlement.entity.d.ts.map +0 -1
- package/dist/database/entities/entitlement.entity.js +0 -106
- package/dist/database/entities/entitlement.entity.js.map +0 -1
- package/dist/database/entities/expense.entity.d.ts +0 -47
- package/dist/database/entities/expense.entity.d.ts.map +0 -1
- package/dist/database/entities/expense.entity.js +0 -221
- package/dist/database/entities/expense.entity.js.map +0 -1
- package/dist/database/entities/file.entity.d.ts +0 -9
- package/dist/database/entities/file.entity.d.ts.map +0 -1
- package/dist/database/entities/file.entity.js +0 -46
- package/dist/database/entities/file.entity.js.map +0 -1
- package/dist/database/entities/fixed-invoice-item.entity.d.ts +0 -9
- package/dist/database/entities/fixed-invoice-item.entity.d.ts.map +0 -1
- package/dist/database/entities/fixed-invoice-item.entity.js +0 -52
- package/dist/database/entities/fixed-invoice-item.entity.js.map +0 -1
- package/dist/database/entities/group.entity.d.ts +0 -9
- package/dist/database/entities/group.entity.d.ts.map +0 -1
- package/dist/database/entities/group.entity.js +0 -45
- package/dist/database/entities/group.entity.js.map +0 -1
- package/dist/database/entities/gst.entity.d.ts +0 -6
- package/dist/database/entities/gst.entity.d.ts.map +0 -1
- package/dist/database/entities/gst.entity.js +0 -44
- package/dist/database/entities/gst.entity.js.map +0 -1
- package/dist/database/entities/holiday.entity.d.ts +0 -14
- package/dist/database/entities/holiday.entity.d.ts.map +0 -1
- package/dist/database/entities/holiday.entity.js +0 -79
- package/dist/database/entities/holiday.entity.js.map +0 -1
- package/dist/database/entities/index.d.ts.map +0 -1
- package/dist/database/entities/index.js +0 -94
- package/dist/database/entities/index.js.map +0 -1
- package/dist/database/entities/invoice-template-footer.entity.d.ts +0 -24
- package/dist/database/entities/invoice-template-footer.entity.d.ts.map +0 -1
- package/dist/database/entities/invoice-template-footer.entity.js +0 -118
- package/dist/database/entities/invoice-template-footer.entity.js.map +0 -1
- package/dist/database/entities/invoice-template-header.entity.d.ts +0 -14
- package/dist/database/entities/invoice-template-header.entity.d.ts.map +0 -1
- package/dist/database/entities/invoice-template-header.entity.js +0 -68
- package/dist/database/entities/invoice-template-header.entity.js.map +0 -1
- package/dist/database/entities/invoice-template-table.entity.d.ts +0 -35
- package/dist/database/entities/invoice-template-table.entity.d.ts.map +0 -1
- package/dist/database/entities/invoice-template-table.entity.js +0 -143
- package/dist/database/entities/invoice-template-table.entity.js.map +0 -1
- package/dist/database/entities/invoice-template.entity.d.ts +0 -39
- package/dist/database/entities/invoice-template.entity.d.ts.map +0 -1
- package/dist/database/entities/invoice-template.entity.js +0 -157
- package/dist/database/entities/invoice-template.entity.js.map +0 -1
- package/dist/database/entities/invoice.entity.d.ts +0 -46
- package/dist/database/entities/invoice.entity.d.ts.map +0 -1
- package/dist/database/entities/invoice.entity.js +0 -212
- package/dist/database/entities/invoice.entity.js.map +0 -1
- package/dist/database/entities/invoice_item.entity.d.ts +0 -22
- package/dist/database/entities/invoice_item.entity.d.ts.map +0 -1
- package/dist/database/entities/invoice_item.entity.js +0 -89
- package/dist/database/entities/invoice_item.entity.js.map +0 -1
- package/dist/database/entities/leave-balance.entity.d.ts +0 -38
- package/dist/database/entities/leave-balance.entity.d.ts.map +0 -1
- package/dist/database/entities/leave-balance.entity.js +0 -166
- package/dist/database/entities/leave-balance.entity.js.map +0 -1
- package/dist/database/entities/leave-request.entity.d.ts +0 -64
- package/dist/database/entities/leave-request.entity.d.ts.map +0 -1
- package/dist/database/entities/leave-request.entity.js +0 -219
- package/dist/database/entities/leave-request.entity.js.map +0 -1
- package/dist/database/entities/leave-type.entity.d.ts +0 -15
- package/dist/database/entities/leave-type.entity.d.ts.map +0 -1
- package/dist/database/entities/leave-type.entity.js +0 -72
- package/dist/database/entities/leave-type.entity.js.map +0 -1
- package/dist/database/entities/matter-tag.entity.d.ts +0 -10
- package/dist/database/entities/matter-tag.entity.d.ts.map +0 -1
- package/dist/database/entities/matter-tag.entity.js +0 -45
- package/dist/database/entities/matter-tag.entity.js.map +0 -1
- package/dist/database/entities/matter-task-view-filter.entity.d.ts +0 -11
- package/dist/database/entities/matter-task-view-filter.entity.d.ts.map +0 -1
- package/dist/database/entities/matter-task-view-filter.entity.js +0 -42
- package/dist/database/entities/matter-task-view-filter.entity.js.map +0 -1
- package/dist/database/entities/matter-team-member.entity.d.ts +0 -11
- package/dist/database/entities/matter-team-member.entity.d.ts.map +0 -1
- package/dist/database/entities/matter-team-member.entity.js +0 -56
- package/dist/database/entities/matter-team-member.entity.js.map +0 -1
- package/dist/database/entities/matter.entity.d.ts +0 -62
- package/dist/database/entities/matter.entity.d.ts.map +0 -1
- package/dist/database/entities/matter.entity.js +0 -249
- package/dist/database/entities/matter.entity.js.map +0 -1
- package/dist/database/entities/payment.entity.d.ts +0 -26
- package/dist/database/entities/payment.entity.d.ts.map +0 -1
- package/dist/database/entities/payment.entity.js +0 -127
- package/dist/database/entities/payment.entity.js.map +0 -1
- package/dist/database/entities/permission.entity.d.ts +0 -11
- package/dist/database/entities/permission.entity.d.ts.map +0 -1
- package/dist/database/entities/permission.entity.js +0 -52
- package/dist/database/entities/permission.entity.js.map +0 -1
- package/dist/database/entities/quickbooks-connection.entity.d.ts +0 -14
- package/dist/database/entities/quickbooks-connection.entity.d.ts.map +0 -1
- package/dist/database/entities/quickbooks-connection.entity.js +0 -71
- package/dist/database/entities/quickbooks-connection.entity.js.map +0 -1
- package/dist/database/entities/quickbooks-sync-log.entity.d.ts +0 -34
- package/dist/database/entities/quickbooks-sync-log.entity.d.ts.map +0 -1
- package/dist/database/entities/quickbooks-sync-log.entity.js +0 -116
- package/dist/database/entities/quickbooks-sync-log.entity.js.map +0 -1
- package/dist/database/entities/role-permission.entity.d.ts +0 -10
- package/dist/database/entities/role-permission.entity.d.ts.map +0 -1
- package/dist/database/entities/role-permission.entity.js +0 -49
- package/dist/database/entities/role-permission.entity.js.map +0 -1
- package/dist/database/entities/role-shift.entity.d.ts +0 -8
- package/dist/database/entities/role-shift.entity.d.ts.map +0 -1
- package/dist/database/entities/role-shift.entity.js +0 -48
- package/dist/database/entities/role-shift.entity.js.map +0 -1
- package/dist/database/entities/role.entity.d.ts +0 -13
- package/dist/database/entities/role.entity.d.ts.map +0 -1
- package/dist/database/entities/role.entity.js +0 -58
- package/dist/database/entities/role.entity.js.map +0 -1
- package/dist/database/entities/sequence-generator.entity.d.ts +0 -8
- package/dist/database/entities/sequence-generator.entity.d.ts.map +0 -1
- package/dist/database/entities/sequence-generator.entity.js +0 -64
- package/dist/database/entities/sequence-generator.entity.js.map +0 -1
- package/dist/database/entities/shift.entity.d.ts +0 -18
- package/dist/database/entities/shift.entity.d.ts.map +0 -1
- package/dist/database/entities/shift.entity.js +0 -110
- package/dist/database/entities/shift.entity.js.map +0 -1
- package/dist/database/entities/sub-task-tag.entity.d.ts +0 -10
- package/dist/database/entities/sub-task-tag.entity.d.ts.map +0 -1
- package/dist/database/entities/sub-task-tag.entity.js +0 -45
- package/dist/database/entities/sub-task-tag.entity.js.map +0 -1
- package/dist/database/entities/subtask-user.entity.d.ts +0 -10
- package/dist/database/entities/subtask-user.entity.d.ts.map +0 -1
- package/dist/database/entities/subtask-user.entity.js +0 -45
- package/dist/database/entities/subtask-user.entity.js.map +0 -1
- package/dist/database/entities/subtask.entity.d.ts +0 -47
- package/dist/database/entities/subtask.entity.d.ts.map +0 -1
- package/dist/database/entities/subtask.entity.js +0 -185
- package/dist/database/entities/subtask.entity.js.map +0 -1
- package/dist/database/entities/summary-task-status.entity.d.ts +0 -7
- package/dist/database/entities/summary-task-status.entity.d.ts.map +0 -1
- package/dist/database/entities/summary-task-status.entity.js +0 -37
- package/dist/database/entities/summary-task-status.entity.js.map +0 -1
- package/dist/database/entities/superset.entity.d.ts +0 -15
- package/dist/database/entities/superset.entity.d.ts.map +0 -1
- package/dist/database/entities/superset.entity.js +0 -73
- package/dist/database/entities/superset.entity.js.map +0 -1
- package/dist/database/entities/tag.entity.d.ts +0 -10
- package/dist/database/entities/tag.entity.d.ts.map +0 -1
- package/dist/database/entities/tag.entity.js +0 -43
- package/dist/database/entities/tag.entity.js.map +0 -1
- package/dist/database/entities/task-comment.entity.d.ts +0 -15
- package/dist/database/entities/task-comment.entity.d.ts.map +0 -1
- package/dist/database/entities/task-comment.entity.js +0 -67
- package/dist/database/entities/task-comment.entity.js.map +0 -1
- package/dist/database/entities/task-milestone.entity.d.ts +0 -7
- package/dist/database/entities/task-milestone.entity.d.ts.map +0 -1
- package/dist/database/entities/task-milestone.entity.js +0 -36
- package/dist/database/entities/task-milestone.entity.js.map +0 -1
- package/dist/database/entities/task-remainder.entity.d.ts +0 -12
- package/dist/database/entities/task-remainder.entity.d.ts.map +0 -1
- package/dist/database/entities/task-remainder.entity.js +0 -57
- package/dist/database/entities/task-remainder.entity.js.map +0 -1
- package/dist/database/entities/task-tag.entity.d.ts +0 -10
- package/dist/database/entities/task-tag.entity.d.ts.map +0 -1
- package/dist/database/entities/task-tag.entity.js +0 -45
- package/dist/database/entities/task-tag.entity.js.map +0 -1
- package/dist/database/entities/task-type.entity.d.ts +0 -7
- package/dist/database/entities/task-type.entity.d.ts.map +0 -1
- package/dist/database/entities/task-type.entity.js +0 -36
- package/dist/database/entities/task-type.entity.js.map +0 -1
- package/dist/database/entities/task-user.entity.d.ts +0 -10
- package/dist/database/entities/task-user.entity.d.ts.map +0 -1
- package/dist/database/entities/task-user.entity.js +0 -45
- package/dist/database/entities/task-user.entity.js.map +0 -1
- package/dist/database/entities/task.entity.d.ts +0 -53
- package/dist/database/entities/task.entity.d.ts.map +0 -1
- package/dist/database/entities/task.entity.js +0 -259
- package/dist/database/entities/task.entity.js.map +0 -1
- package/dist/database/entities/template-task.entity.d.ts +0 -11
- package/dist/database/entities/template-task.entity.d.ts.map +0 -1
- package/dist/database/entities/template-task.entity.js +0 -53
- package/dist/database/entities/template-task.entity.js.map +0 -1
- package/dist/database/entities/template.entity.d.ts +0 -13
- package/dist/database/entities/template.entity.d.ts.map +0 -1
- package/dist/database/entities/template.entity.js +0 -58
- package/dist/database/entities/template.entity.js.map +0 -1
- package/dist/database/entities/timesheet-comment.entity.d.ts +0 -11
- package/dist/database/entities/timesheet-comment.entity.d.ts.map +0 -1
- package/dist/database/entities/timesheet-comment.entity.js +0 -65
- package/dist/database/entities/timesheet-comment.entity.js.map +0 -1
- package/dist/database/entities/timesheet-event.entity.d.ts +0 -48
- package/dist/database/entities/timesheet-event.entity.d.ts.map +0 -1
- package/dist/database/entities/timesheet-event.entity.js +0 -328
- package/dist/database/entities/timesheet-event.entity.js.map +0 -1
- package/dist/database/entities/timesheet-summary.entity.d.ts +0 -27
- package/dist/database/entities/timesheet-summary.entity.d.ts.map +0 -1
- package/dist/database/entities/timesheet-summary.entity.js +0 -161
- package/dist/database/entities/timesheet-summary.entity.js.map +0 -1
- package/dist/database/entities/timesheet.entity.d.ts +0 -32
- package/dist/database/entities/timesheet.entity.d.ts.map +0 -1
- package/dist/database/entities/timesheet.entity.js +0 -112
- package/dist/database/entities/timesheet.entity.js.map +0 -1
- package/dist/database/entities/transfer-ownership.entity.d.ts +0 -15
- package/dist/database/entities/transfer-ownership.entity.d.ts.map +0 -1
- package/dist/database/entities/transfer-ownership.entity.js +0 -75
- package/dist/database/entities/transfer-ownership.entity.js.map +0 -1
- package/dist/database/entities/upload-log.entity.d.ts +0 -31
- package/dist/database/entities/upload-log.entity.d.ts.map +0 -1
- package/dist/database/entities/upload-log.entity.js +0 -111
- package/dist/database/entities/upload-log.entity.js.map +0 -1
- package/dist/database/entities/user-notification-channel.entity.d.ts +0 -8
- package/dist/database/entities/user-notification-channel.entity.d.ts.map +0 -1
- package/dist/database/entities/user-notification-channel.entity.js +0 -63
- package/dist/database/entities/user-notification-channel.entity.js.map +0 -1
- package/dist/database/entities/user-notification-preference.entity.d.ts +0 -10
- package/dist/database/entities/user-notification-preference.entity.d.ts.map +0 -1
- package/dist/database/entities/user-notification-preference.entity.js +0 -72
- package/dist/database/entities/user-notification-preference.entity.js.map +0 -1
- package/dist/database/entities/user-role.entity.d.ts +0 -10
- package/dist/database/entities/user-role.entity.d.ts.map +0 -1
- package/dist/database/entities/user-role.entity.js +0 -45
- package/dist/database/entities/user-role.entity.js.map +0 -1
- package/dist/database/entities/user-session-history.entity.d.ts +0 -16
- package/dist/database/entities/user-session-history.entity.d.ts.map +0 -1
- package/dist/database/entities/user-session-history.entity.js +0 -78
- package/dist/database/entities/user-session-history.entity.js.map +0 -1
- package/dist/database/entities/user-shift.entity.d.ts +0 -24
- package/dist/database/entities/user-shift.entity.d.ts.map +0 -1
- package/dist/database/entities/user-shift.entity.js +0 -153
- package/dist/database/entities/user-shift.entity.js.map +0 -1
- package/dist/database/entities/user.entity.d.ts +0 -74
- package/dist/database/entities/user.entity.d.ts.map +0 -1
- package/dist/database/entities/user.entity.js +0 -280
- package/dist/database/entities/user.entity.js.map +0 -1
- package/dist/database/index.d.ts +0 -2
- package/dist/database/index.d.ts.map +0 -1
- package/dist/database/index.js +0 -18
- package/dist/database/index.js.map +0 -1
- package/dist/database/migrations/1770706648232-initialMigration.d.ts +0 -7
- package/dist/database/migrations/1770706648232-initialMigration.d.ts.map +0 -1
- package/dist/database/migrations/1770706648232-initialMigration.js.map +0 -1
- package/dist/database/seeder/base.seed.d.ts +0 -19
- package/dist/database/seeder/base.seed.d.ts.map +0 -1
- package/dist/database/seeder/base.seed.js +0 -83
- package/dist/database/seeder/base.seed.js.map +0 -1
- package/dist/database/seeder/config/seeder.config.d.ts +0 -7
- package/dist/database/seeder/config/seeder.config.d.ts.map +0 -1
- package/dist/database/seeder/config/seeder.config.js +0 -21
- package/dist/database/seeder/config/seeder.config.js.map +0 -1
- package/dist/database/seeder/errors/seeder.error.d.ts +0 -11
- package/dist/database/seeder/errors/seeder.error.d.ts.map +0 -1
- package/dist/database/seeder/errors/seeder.error.js +0 -27
- package/dist/database/seeder/errors/seeder.error.js.map +0 -1
- package/dist/database/seeder/seed-runner.d.ts +0 -2
- package/dist/database/seeder/seed-runner.d.ts.map +0 -1
- package/dist/database/seeder/seed-runner.js +0 -157
- package/dist/database/seeder/seed-runner.js.map +0 -1
- package/dist/database/seeder/seeds/city.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/city.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/city.seed.js +0 -62
- package/dist/database/seeder/seeds/city.seed.js.map +0 -1
- package/dist/database/seeder/seeds/country.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/country.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/country.seed.js +0 -54
- package/dist/database/seeder/seeds/country.seed.js.map +0 -1
- package/dist/database/seeder/seeds/currency.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/currency.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/currency.seed.js +0 -50
- package/dist/database/seeder/seeds/currency.seed.js.map +0 -1
- package/dist/database/seeder/seeds/department.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/department.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/department.seed.js +0 -48
- package/dist/database/seeder/seeds/department.seed.js.map +0 -1
- package/dist/database/seeder/seeds/permission.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/permission.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/permission.seed.js +0 -54
- package/dist/database/seeder/seeds/permission.seed.js.map +0 -1
- package/dist/database/seeder/seeds/role-permission.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/role-permission.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/role-permission.seed.js +0 -47
- package/dist/database/seeder/seeds/role-permission.seed.js.map +0 -1
- package/dist/database/seeder/seeds/role.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/role.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/role.seed.js +0 -52
- package/dist/database/seeder/seeds/role.seed.js.map +0 -1
- package/dist/database/seeder/seeds/user-role.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/user-role.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/user-role.seed.js +0 -66
- package/dist/database/seeder/seeds/user-role.seed.js.map +0 -1
- package/dist/database/seeder/seeds/user.seed.d.ts +0 -8
- package/dist/database/seeder/seeds/user.seed.d.ts.map +0 -1
- package/dist/database/seeder/seeds/user.seed.js +0 -110
- package/dist/database/seeder/seeds/user.seed.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/scripts/create-schema.d.ts +0 -2
- package/dist/scripts/create-schema.d.ts.map +0 -1
- package/dist/scripts/create-schema.js +0 -77
- package/dist/scripts/create-schema.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { BaseSeeder } from '../base.seed';
|
|
3
|
+
import { Country } from '../../entities/country.entity';
|
|
4
|
+
import countryData from '../../../core/json/geographic-data/countries.json';
|
|
5
|
+
|
|
6
|
+
export class CountrySeeder extends BaseSeeder {
|
|
7
|
+
readonly seederName = 'CountrySeeder';
|
|
8
|
+
|
|
9
|
+
constructor(dataSource: DataSource) {
|
|
10
|
+
super(dataSource);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async run(): Promise<void> {
|
|
14
|
+
this.log('Seeding countries...');
|
|
15
|
+
|
|
16
|
+
await this.executeInTransaction(async () => {
|
|
17
|
+
const repo = this.dataSource.getRepository(Country);
|
|
18
|
+
|
|
19
|
+
const existingCount = await repo.count();
|
|
20
|
+
if (existingCount > 0) {
|
|
21
|
+
this.log(
|
|
22
|
+
`Countries already exist (${existingCount} records). Skipping.`,
|
|
23
|
+
);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const countries = countryData as any[];
|
|
28
|
+
|
|
29
|
+
for (const country of countries) {
|
|
30
|
+
const entity = repo.create({
|
|
31
|
+
name: country.name,
|
|
32
|
+
iso3: country.iso3,
|
|
33
|
+
iso2: country.iso2,
|
|
34
|
+
numeric_code: country.numeric_code,
|
|
35
|
+
phonecode: country.phonecode,
|
|
36
|
+
capital: country.capital,
|
|
37
|
+
currency: country.currency,
|
|
38
|
+
currency_name: country.currency_name,
|
|
39
|
+
currency_symbol: country.currency_symbol,
|
|
40
|
+
tld: country.tld,
|
|
41
|
+
native: country.native,
|
|
42
|
+
region: country.region,
|
|
43
|
+
nationality: country.nationality,
|
|
44
|
+
latitude: country.latitude,
|
|
45
|
+
longitude: country.longitude,
|
|
46
|
+
emoji: country.emoji,
|
|
47
|
+
emojiU: country.emojiU,
|
|
48
|
+
timezones: country.timezones,
|
|
49
|
+
});
|
|
50
|
+
await repo.save(entity);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
this.log(`Inserted ${countries.length} countries.`);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
this.logSuccess('Countries seeded.');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { BaseSeeder } from '../base.seed';
|
|
3
|
+
import { Currency } from '../../entities/currency.entity';
|
|
4
|
+
import currencyData from '../../../core/json/core-data/currency.json';
|
|
5
|
+
|
|
6
|
+
export class CurrencySeeder extends BaseSeeder {
|
|
7
|
+
readonly seederName = 'CurrencySeeder';
|
|
8
|
+
|
|
9
|
+
constructor(dataSource: DataSource) {
|
|
10
|
+
super(dataSource);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async run(): Promise<void> {
|
|
14
|
+
this.log('Seeding currencies...');
|
|
15
|
+
|
|
16
|
+
let created = 0;
|
|
17
|
+
let updated = 0;
|
|
18
|
+
|
|
19
|
+
await this.executeInTransaction(async () => {
|
|
20
|
+
const repo = this.dataSource.getRepository(Currency);
|
|
21
|
+
|
|
22
|
+
for (const curr of currencyData as any[]) {
|
|
23
|
+
const existing = await repo.findOne({
|
|
24
|
+
where: { code: curr.code },
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
if (existing) {
|
|
28
|
+
await repo.update(existing.id, {
|
|
29
|
+
name: curr.name,
|
|
30
|
+
code: curr.code,
|
|
31
|
+
symbol: curr.symbol,
|
|
32
|
+
isActive: curr.isActive,
|
|
33
|
+
});
|
|
34
|
+
updated++;
|
|
35
|
+
} else {
|
|
36
|
+
const entity = repo.create({
|
|
37
|
+
name: curr.name,
|
|
38
|
+
code: curr.code,
|
|
39
|
+
symbol: curr.symbol,
|
|
40
|
+
isActive: curr.isActive,
|
|
41
|
+
});
|
|
42
|
+
await repo.save(entity);
|
|
43
|
+
created++;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
this.logSuccess(
|
|
49
|
+
`Currencies seeded (created: ${created}, updated: ${updated}).`,
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { BaseSeeder } from '../base.seed';
|
|
3
|
+
import { Department } from '../../entities/department.entity';
|
|
4
|
+
import departmentData from '../../../core/json/core-data/department.json';
|
|
5
|
+
|
|
6
|
+
export class DepartmentSeeder extends BaseSeeder {
|
|
7
|
+
readonly seederName = 'DepartmentSeeder';
|
|
8
|
+
|
|
9
|
+
constructor(dataSource: DataSource) {
|
|
10
|
+
super(dataSource);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async run(): Promise<void> {
|
|
14
|
+
this.log('Seeding departments...');
|
|
15
|
+
|
|
16
|
+
await this.executeInTransaction(async () => {
|
|
17
|
+
const repo = this.dataSource.getRepository(Department);
|
|
18
|
+
|
|
19
|
+
for (const dept of departmentData as any[]) {
|
|
20
|
+
const existing = await repo.findOne({
|
|
21
|
+
where: { departmentSlug: dept.departmentSlug },
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
if (existing) {
|
|
25
|
+
await repo.update(existing.id, {
|
|
26
|
+
departmentName: dept.departmentName,
|
|
27
|
+
departmentDescription: dept.departmentDescription,
|
|
28
|
+
departmentSlug: dept.departmentSlug,
|
|
29
|
+
isActive: dept.isActive,
|
|
30
|
+
});
|
|
31
|
+
this.log(`Updated department: ${dept.departmentSlug}`);
|
|
32
|
+
} else {
|
|
33
|
+
const entity = repo.create({
|
|
34
|
+
departmentName: dept.departmentName,
|
|
35
|
+
departmentDescription: dept.departmentDescription,
|
|
36
|
+
departmentSlug: dept.departmentSlug,
|
|
37
|
+
isActive: dept.isActive,
|
|
38
|
+
});
|
|
39
|
+
await repo.save(entity);
|
|
40
|
+
this.log(`Created department: ${dept.departmentSlug}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
this.logSuccess(`Departments seeded (${(departmentData as any[]).length} records).`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { BaseSeeder } from '../base.seed';
|
|
3
|
+
import { Permission } from '../../entities/permission.entity';
|
|
4
|
+
import permissionData from '../../../core/json/core-data/permission.json';
|
|
5
|
+
|
|
6
|
+
export class PermissionSeeder extends BaseSeeder {
|
|
7
|
+
readonly seederName = 'PermissionSeeder';
|
|
8
|
+
|
|
9
|
+
constructor(dataSource: DataSource) {
|
|
10
|
+
super(dataSource);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async run(): Promise<void> {
|
|
14
|
+
this.log('Seeding permissions...');
|
|
15
|
+
|
|
16
|
+
let created = 0;
|
|
17
|
+
let updated = 0;
|
|
18
|
+
|
|
19
|
+
await this.executeInTransaction(async () => {
|
|
20
|
+
const repo = this.dataSource.getRepository(Permission);
|
|
21
|
+
|
|
22
|
+
for (const perm of permissionData as any[]) {
|
|
23
|
+
const existing = await repo.findOne({
|
|
24
|
+
where: { permissionSlug: perm.slug },
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
if (existing) {
|
|
28
|
+
await repo.update(existing.id, {
|
|
29
|
+
permissionName: perm.permissions_name,
|
|
30
|
+
permissionSlug: perm.slug,
|
|
31
|
+
permissionDescription: perm.description,
|
|
32
|
+
moduleName: perm.model,
|
|
33
|
+
isActive: perm.is_active,
|
|
34
|
+
createdBy: perm.created_by ?? null,
|
|
35
|
+
});
|
|
36
|
+
updated++;
|
|
37
|
+
} else {
|
|
38
|
+
const entity = repo.create({
|
|
39
|
+
permissionName: perm.permissions_name,
|
|
40
|
+
permissionSlug: perm.slug,
|
|
41
|
+
permissionDescription: perm.description,
|
|
42
|
+
moduleName: perm.model,
|
|
43
|
+
isActive: perm.is_active,
|
|
44
|
+
createdBy: perm.created_by ?? null,
|
|
45
|
+
});
|
|
46
|
+
await repo.save(entity);
|
|
47
|
+
created++;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
this.logSuccess(`Permissions seeded (created: ${created}, updated: ${updated}).`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { BaseSeeder } from '../base.seed';
|
|
3
|
+
import { Role } from '../../entities/role.entity';
|
|
4
|
+
import { Permission } from '../../entities/permission.entity';
|
|
5
|
+
import { RolePermission } from '../../entities/role-permission.entity';
|
|
6
|
+
|
|
7
|
+
export class RolePermissionSeeder extends BaseSeeder {
|
|
8
|
+
readonly seederName = 'RolePermissionSeeder';
|
|
9
|
+
|
|
10
|
+
constructor(dataSource: DataSource) {
|
|
11
|
+
super(dataSource);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async run(): Promise<void> {
|
|
15
|
+
this.log('Seeding role-permission mappings...');
|
|
16
|
+
|
|
17
|
+
await this.executeInTransaction(async () => {
|
|
18
|
+
const roleRepo = this.dataSource.getRepository(Role);
|
|
19
|
+
const permissionRepo = this.dataSource.getRepository(Permission);
|
|
20
|
+
const rpRepo = this.dataSource.getRepository(RolePermission);
|
|
21
|
+
|
|
22
|
+
const allPermissions = await permissionRepo.find({
|
|
23
|
+
where: { isActive: true },
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
if (allPermissions.length === 0) {
|
|
27
|
+
this.log('No active permissions found. Skipping.');
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Assign all permissions to Super Admin and Partner roles
|
|
32
|
+
const rolesToSeed = ['Super Admin', 'Partner'];
|
|
33
|
+
|
|
34
|
+
for (const roleName of rolesToSeed) {
|
|
35
|
+
const role = await roleRepo.findOne({ where: { roleName } });
|
|
36
|
+
if (!role) {
|
|
37
|
+
this.log(`Role "${roleName}" not found. Skipping.`);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Delete existing mappings for this role
|
|
42
|
+
await rpRepo.delete({ role_id: role.id });
|
|
43
|
+
this.log(`Cleared existing mappings for "${roleName}".`);
|
|
44
|
+
|
|
45
|
+
// Create new mappings
|
|
46
|
+
const mappings = allPermissions.map((perm) => ({
|
|
47
|
+
role_id: role.id,
|
|
48
|
+
permission_id: perm.id,
|
|
49
|
+
}));
|
|
50
|
+
|
|
51
|
+
await rpRepo.save(mappings);
|
|
52
|
+
this.log(`Assigned ${mappings.length} permissions to "${roleName}".`);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
this.logSuccess('Role-permission mappings seeded.');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { BaseSeeder } from '../base.seed';
|
|
3
|
+
import { Role } from '../../entities/role.entity';
|
|
4
|
+
import roleData from '../../../core/json/core-data/role.json';
|
|
5
|
+
|
|
6
|
+
export class RoleSeeder extends BaseSeeder {
|
|
7
|
+
readonly seederName = 'RoleSeeder';
|
|
8
|
+
|
|
9
|
+
constructor(dataSource: DataSource) {
|
|
10
|
+
super(dataSource);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async run(): Promise<void> {
|
|
14
|
+
this.log('Seeding roles...');
|
|
15
|
+
|
|
16
|
+
let created = 0;
|
|
17
|
+
let updated = 0;
|
|
18
|
+
|
|
19
|
+
await this.executeInTransaction(async () => {
|
|
20
|
+
const repo = this.dataSource.getRepository(Role);
|
|
21
|
+
|
|
22
|
+
for (const role of roleData as any[]) {
|
|
23
|
+
const existing = await repo.findOne({
|
|
24
|
+
where: { roleName: role.roleName },
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
if (existing) {
|
|
28
|
+
await repo.update(existing.id, {
|
|
29
|
+
roleName: role.roleName,
|
|
30
|
+
roleSlug: role.roleSlug,
|
|
31
|
+
roleDescription: role.roleDescription,
|
|
32
|
+
isMainRoleSlug: role.isMainRoleSlug,
|
|
33
|
+
isActive: role.isActive,
|
|
34
|
+
});
|
|
35
|
+
updated++;
|
|
36
|
+
} else {
|
|
37
|
+
const entity = repo.create({
|
|
38
|
+
roleName: role.roleName,
|
|
39
|
+
roleSlug: role.roleSlug,
|
|
40
|
+
roleDescription: role.roleDescription,
|
|
41
|
+
isMainRoleSlug: role.isMainRoleSlug,
|
|
42
|
+
isActive: role.isActive,
|
|
43
|
+
});
|
|
44
|
+
await repo.save(entity);
|
|
45
|
+
created++;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
this.logSuccess(`Roles seeded (created: ${created}, updated: ${updated}).`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { BaseSeeder } from '../base.seed';
|
|
3
|
+
import { User } from '../../entities/user.entity';
|
|
4
|
+
import { Role } from '../../entities/role.entity';
|
|
5
|
+
import { UserRole } from '../../entities/user-role.entity';
|
|
6
|
+
import userData from '../../../core/json/core-data/user.json';
|
|
7
|
+
|
|
8
|
+
export class UserRoleSeeder extends BaseSeeder {
|
|
9
|
+
readonly seederName = 'UserRoleSeeder';
|
|
10
|
+
|
|
11
|
+
constructor(dataSource: DataSource) {
|
|
12
|
+
super(dataSource);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async run(): Promise<void> {
|
|
16
|
+
this.log('Seeding user-role mappings...');
|
|
17
|
+
|
|
18
|
+
let created = 0;
|
|
19
|
+
let skipped = 0;
|
|
20
|
+
|
|
21
|
+
await this.executeInTransaction(async () => {
|
|
22
|
+
const userRepo = this.dataSource.getRepository(User);
|
|
23
|
+
const roleRepo = this.dataSource.getRepository(Role);
|
|
24
|
+
const urRepo = this.dataSource.getRepository(UserRole);
|
|
25
|
+
|
|
26
|
+
for (const u of userData as any[]) {
|
|
27
|
+
const user = await userRepo.findOne({
|
|
28
|
+
where: { email: u.email },
|
|
29
|
+
select: ['id', 'email'],
|
|
30
|
+
});
|
|
31
|
+
if (!user) {
|
|
32
|
+
this.log(`User "${u.email}" not found. Skipping.`);
|
|
33
|
+
skipped++;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const role = await roleRepo.findOne({
|
|
38
|
+
where: { roleName: u.roleName },
|
|
39
|
+
select: ['id', 'roleName'],
|
|
40
|
+
});
|
|
41
|
+
if (!role) {
|
|
42
|
+
this.log(`Role "${u.roleName}" not found. Skipping.`);
|
|
43
|
+
skipped++;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const existing = await urRepo.findOne({
|
|
48
|
+
where: { user_id: user.id, role_id: role.id },
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
if (!existing) {
|
|
52
|
+
const entity = urRepo.create({
|
|
53
|
+
user_id: user.id,
|
|
54
|
+
role_id: role.id,
|
|
55
|
+
});
|
|
56
|
+
await urRepo.save(entity);
|
|
57
|
+
created++;
|
|
58
|
+
this.log(`Linked user ${user.email} → role ${role.roleName}`);
|
|
59
|
+
} else {
|
|
60
|
+
skipped++;
|
|
61
|
+
this.log(
|
|
62
|
+
`User-role already exists: ${user.email} → ${role.roleName}`,
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
this.logSuccess(
|
|
69
|
+
`User-role mappings seeded (created: ${created}, skipped: ${skipped}).`,
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import * as crypto from 'crypto';
|
|
3
|
+
import { BaseSeeder } from '../base.seed';
|
|
4
|
+
import { User } from '../../entities/user.entity';
|
|
5
|
+
import { Department } from '../../entities/department.entity';
|
|
6
|
+
import userData from '../../../core/json/core-data/user.json';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Simple password hashing using Node.js crypto (no bcrypt dependency needed in shared-lib).
|
|
10
|
+
* Consuming microservices should use bcrypt for production authentication.
|
|
11
|
+
*/
|
|
12
|
+
function hashPassword(password: string): string {
|
|
13
|
+
const salt = crypto.randomBytes(16).toString('hex');
|
|
14
|
+
const hash = crypto
|
|
15
|
+
.pbkdf2Sync(password, salt, 10000, 64, 'sha512')
|
|
16
|
+
.toString('hex');
|
|
17
|
+
return `${salt}:${hash}`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export class UserSeeder extends BaseSeeder {
|
|
21
|
+
readonly seederName = 'UserSeeder';
|
|
22
|
+
|
|
23
|
+
constructor(dataSource: DataSource) {
|
|
24
|
+
super(dataSource);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async run(): Promise<void> {
|
|
28
|
+
this.log('Seeding users...');
|
|
29
|
+
|
|
30
|
+
let created = 0;
|
|
31
|
+
let updated = 0;
|
|
32
|
+
|
|
33
|
+
await this.executeInTransaction(async () => {
|
|
34
|
+
const userRepo = this.dataSource.getRepository(User);
|
|
35
|
+
const deptRepo = this.dataSource.getRepository(Department);
|
|
36
|
+
|
|
37
|
+
for (const u of userData as any[]) {
|
|
38
|
+
const existing = await userRepo.findOne({
|
|
39
|
+
where: { email: u.email },
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Resolve department
|
|
43
|
+
let departmentId: number | undefined = undefined;
|
|
44
|
+
if (u.departmentName) {
|
|
45
|
+
const dept = await deptRepo.findOne({
|
|
46
|
+
where: { departmentName: u.departmentName },
|
|
47
|
+
});
|
|
48
|
+
departmentId = dept ? dept.id : undefined;
|
|
49
|
+
if (!dept) {
|
|
50
|
+
this.log(
|
|
51
|
+
`Department "${u.departmentName}" not found for user "${u.email}".`,
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const hashedPassword = hashPassword(u.password);
|
|
57
|
+
|
|
58
|
+
if (existing) {
|
|
59
|
+
await userRepo.update(existing.id, {
|
|
60
|
+
name: u.name,
|
|
61
|
+
email: u.email,
|
|
62
|
+
password: hashedPassword,
|
|
63
|
+
isActive: u.isActive,
|
|
64
|
+
phoneNumber: u.phoneNumber,
|
|
65
|
+
countryCode: u.countryCode ?? undefined,
|
|
66
|
+
departmentId,
|
|
67
|
+
});
|
|
68
|
+
updated++;
|
|
69
|
+
} else {
|
|
70
|
+
const entity = userRepo.create({
|
|
71
|
+
name: u.name,
|
|
72
|
+
email: u.email,
|
|
73
|
+
password: hashedPassword,
|
|
74
|
+
isActive: u.isActive,
|
|
75
|
+
phoneNumber: u.phoneNumber,
|
|
76
|
+
countryCode: u.countryCode ?? undefined,
|
|
77
|
+
departmentId,
|
|
78
|
+
});
|
|
79
|
+
await userRepo.save(entity);
|
|
80
|
+
created++;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
this.logSuccess(`Users seeded (created: ${created}, updated: ${updated}).`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
// Config
|
|
1
2
|
export { createOrmConfig, getAllSharedEntities } from './config';
|
|
2
3
|
export type { OrmConfigOptions } from './config';
|
|
4
|
+
|
|
5
|
+
// All entities
|
|
3
6
|
export * from './database';
|
|
7
|
+
|
|
8
|
+
// Constants
|
|
4
9
|
export * from './core/constant';
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { config } from 'dotenv';
|
|
2
|
+
import { Client } from 'pg';
|
|
3
|
+
|
|
4
|
+
config(); // Load .env
|
|
5
|
+
|
|
6
|
+
const env = process.env.NODE_ENV || 'development';
|
|
7
|
+
|
|
8
|
+
// Schemas that need to exist before migrations run
|
|
9
|
+
const REQUIRED_SCHEMAS = ['user', 'core', 'timesheet', 'notification', 'public'];
|
|
10
|
+
|
|
11
|
+
// ─── Schema creation ──────────────────────────────────────────
|
|
12
|
+
|
|
13
|
+
async function createSchemas(): Promise<void> {
|
|
14
|
+
const client = new Client({
|
|
15
|
+
host: process.env.DB_HOST ?? 'localhost',
|
|
16
|
+
port: parseInt(process.env.DB_PORT ?? '5432'),
|
|
17
|
+
user: process.env.DB_USERNAME ?? 'postgres',
|
|
18
|
+
password: process.env.DB_PASSWORD ?? 'postgres',
|
|
19
|
+
database: process.env.DB_NAME ?? 'IVM',
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
try {
|
|
23
|
+
await client.connect();
|
|
24
|
+
console.log(' 🔍 Checking database schemas...');
|
|
25
|
+
|
|
26
|
+
for (const schema of REQUIRED_SCHEMAS) {
|
|
27
|
+
// Check if schema exists
|
|
28
|
+
const result = await client.query(
|
|
29
|
+
`SELECT schema_name FROM information_schema.schemata WHERE schema_name = $1`,
|
|
30
|
+
[schema]
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
if (result.rows.length === 0) {
|
|
34
|
+
// Schema doesn't exist, create it
|
|
35
|
+
await client.query(`CREATE SCHEMA IF NOT EXISTS "${schema}"`);
|
|
36
|
+
console.log(` ✅ Created schema "${schema}"`);
|
|
37
|
+
} else {
|
|
38
|
+
console.log(` ✓ Schema "${schema}" already exists`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
} catch (error) {
|
|
42
|
+
console.error(' ❌ Error checking/creating schemas:', error);
|
|
43
|
+
throw error;
|
|
44
|
+
} finally {
|
|
45
|
+
await client.end();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// ─── Main execution ────────────────────────────────────────────
|
|
50
|
+
|
|
51
|
+
async function run(): Promise<void> {
|
|
52
|
+
const startTime = Date.now();
|
|
53
|
+
|
|
54
|
+
console.log('');
|
|
55
|
+
console.log('╔══════════════════════════════════════════════════╗');
|
|
56
|
+
console.log('║ 🗄️ CREATE DATABASE SCHEMAS ║');
|
|
57
|
+
console.log('╠══════════════════════════════════════════════════╣');
|
|
58
|
+
console.log(`║ Environment : ${env.padEnd(34)}║`);
|
|
59
|
+
console.log(`║ Database : ${(process.env.DB_NAME ?? 'IVM').padEnd(34)}║`);
|
|
60
|
+
console.log(`║ Host : ${(process.env.DB_HOST ?? 'localhost').padEnd(34)}║`);
|
|
61
|
+
console.log(`║ Schemas : ${REQUIRED_SCHEMAS.join(', ').padEnd(34)}║`);
|
|
62
|
+
console.log('╚══════════════════════════════════════════════════╝');
|
|
63
|
+
console.log('');
|
|
64
|
+
|
|
65
|
+
try {
|
|
66
|
+
await createSchemas();
|
|
67
|
+
|
|
68
|
+
const totalTime = ((Date.now() - startTime) / 1000).toFixed(2);
|
|
69
|
+
console.log('');
|
|
70
|
+
console.log('╔══════════════════════════════════════════════════╗');
|
|
71
|
+
console.log('║ ✅ SCHEMA CREATION COMPLETE ║');
|
|
72
|
+
console.log('╠══════════════════════════════════════════════════╣');
|
|
73
|
+
console.log(`║ Status : Completed successfully`.padEnd(51) + '║');
|
|
74
|
+
console.log(`║ Time : ${totalTime}s`.padEnd(51) + '║');
|
|
75
|
+
console.log('╚══════════════════════════════════════════════════╝');
|
|
76
|
+
console.log('');
|
|
77
|
+
} catch (error: any) {
|
|
78
|
+
console.error('');
|
|
79
|
+
console.error('╔══════════════════════════════════════════════════╗');
|
|
80
|
+
console.error('║ ❌ SCHEMA CREATION FAILED ║');
|
|
81
|
+
console.error('╠══════════════════════════════════════════════════╣');
|
|
82
|
+
console.error(`║ Error: ${(error.message || 'Unknown error').padEnd(42)}║`);
|
|
83
|
+
console.error('╚══════════════════════════════════════════════════╝');
|
|
84
|
+
console.error('');
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ─── Execute ──────────────────────────────────────────────────
|
|
90
|
+
|
|
91
|
+
run().catch((err) => {
|
|
92
|
+
console.error('❌ Fatal error:', err);
|
|
93
|
+
process.exit(1);
|
|
94
|
+
});
|
package/dist/config/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC"}
|
package/dist/config/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAllSharedEntities = exports.createOrmConfig = void 0;
|
|
4
|
-
var ormconfig_factory_1 = require("./ormconfig.factory");
|
|
5
|
-
Object.defineProperty(exports, "createOrmConfig", { enumerable: true, get: function () { return ormconfig_factory_1.createOrmConfig; } });
|
|
6
|
-
Object.defineProperty(exports, "getAllSharedEntities", { enumerable: true, get: function () { return ormconfig_factory_1.getAllSharedEntities; } });
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,yDAI6B;AAH3B,oHAAA,eAAe,OAAA;AACf,yHAAA,oBAAoB,OAAA"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
|
|
2
|
-
export interface OrmConfigOptions {
|
|
3
|
-
schema: string;
|
|
4
|
-
additionalEntities?: Function[];
|
|
5
|
-
synchronize?: boolean;
|
|
6
|
-
logging?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare function getAllSharedEntities(): Function[];
|
|
9
|
-
export declare function createOrmConfig(options: OrmConfigOptions): TypeOrmModuleOptions;
|
|
10
|
-
//# sourceMappingURL=ormconfig.factory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ormconfig.factory.d.ts","sourceRoot":"","sources":["../../src/config/ormconfig.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAwBvD,MAAM,WAAW,gBAAgB;IAE/B,MAAM,EAAE,MAAM,CAAC;IAEf,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEhC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD,wBAAgB,oBAAoB,IAAI,QAAQ,EAAE,CA2BjD;AAcD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,oBAAoB,CAsB/E"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAllSharedEntities = getAllSharedEntities;
|
|
4
|
-
exports.createOrmConfig = createOrmConfig;
|
|
5
|
-
const entities_1 = require("../database/entities");
|
|
6
|
-
function getAllSharedEntities() {
|
|
7
|
-
return [
|
|
8
|
-
entities_1.User, entities_1.Role, entities_1.Permission, entities_1.RolePermission, entities_1.UserRole, entities_1.Department, entities_1.FileData,
|
|
9
|
-
entities_1.Chat, entities_1.Entitlement, entities_1.LeaveType, entities_1.LeaveBalance, entities_1.LeaveRequest, entities_1.Gst, entities_1.UploadLog,
|
|
10
|
-
entities_1.OwnershipTransfer, entities_1.UserSessionHistory,
|
|
11
|
-
entities_1.ApprovalHierarchy, entities_1.ApprovalHierarchyRole, entities_1.ApprovalHierarchyUser,
|
|
12
|
-
entities_1.ApprovalLevel, entities_1.ApprovalLevelUser, entities_1.ApprovalLevelEscalation,
|
|
13
|
-
entities_1.ApprovalLevelEscalationUser, entities_1.ApprovalCondition, entities_1.ApprovalJourney,
|
|
14
|
-
entities_1.Currency, entities_1.Country, entities_1.City, entities_1.Client, entities_1.Contact, entities_1.Address,
|
|
15
|
-
entities_1.Matter, entities_1.MatterTag, entities_1.MatterTeamMember, entities_1.MatterTaskViewFilter,
|
|
16
|
-
entities_1.Task, entities_1.TaskType, entities_1.TaskUser, entities_1.TaskTag, entities_1.TaskComment, entities_1.TaskMilestone, entities_1.TaskReminder,
|
|
17
|
-
entities_1.SubTask, entities_1.SubTaskUser, entities_1.SubTaskTag, entities_1.Tag,
|
|
18
|
-
entities_1.Template, entities_1.TemplateTask,
|
|
19
|
-
entities_1.Invoice, entities_1.InvoiceItem, entities_1.UserInvoiceTemplateEntity,
|
|
20
|
-
entities_1.UserInvoiceTemplateHeaderEntity, entities_1.UserInvoiceTemplateTableEntity,
|
|
21
|
-
entities_1.UserInvoiceTemplateFooterEntity, entities_1.FixedInvoiceItem,
|
|
22
|
-
entities_1.Payment, entities_1.CreditNoteEntity, entities_1.Expense, entities_1.Group, entities_1.Superset,
|
|
23
|
-
entities_1.QuickBooksConnection, entities_1.QuickBooksSyncLog,
|
|
24
|
-
entities_1.ActivityLog, entities_1.TaskStatus, entities_1.TimesheetSummary, entities_1.SequenceGenerator,
|
|
25
|
-
entities_1.Timesheet, entities_1.TimesheetEvent, entities_1.TimesheetComment,
|
|
26
|
-
entities_1.Shift, entities_1.RoleShift, entities_1.UserShift, entities_1.Holiday,
|
|
27
|
-
entities_1.Alert, entities_1.UserNotificationPreference, entities_1.UserNotificationChannel,
|
|
28
|
-
];
|
|
29
|
-
}
|
|
30
|
-
function createOrmConfig(options) {
|
|
31
|
-
const { schema, additionalEntities = [], synchronize = false, logging, } = options;
|
|
32
|
-
return {
|
|
33
|
-
type: 'postgres',
|
|
34
|
-
host: process.env.DB_HOST ?? 'localhost',
|
|
35
|
-
port: parseInt(process.env.DB_PORT ?? '5432', 10),
|
|
36
|
-
username: process.env.DB_USERNAME ?? 'postgres',
|
|
37
|
-
password: process.env.DB_PASSWORD ?? 'postgres',
|
|
38
|
-
database: process.env.DB_NAME ?? 'IVM',
|
|
39
|
-
entities: [...getAllSharedEntities(), ...additionalEntities],
|
|
40
|
-
schema,
|
|
41
|
-
synchronize,
|
|
42
|
-
logging: logging ?? process.env.NODE_ENV === 'development',
|
|
43
|
-
retryAttempts: 3,
|
|
44
|
-
retryDelay: 3000,
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=ormconfig.factory.js.map
|