@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,69 @@
|
|
|
1
|
+
// ivm-api-core/src/modules/invoice/entities/invoice-item.entity.ts
|
|
2
|
+
import { Entity, Column, ManyToOne, JoinColumn, Index } from 'typeorm';
|
|
3
|
+
import { BaseEntity } from './base.entity';
|
|
4
|
+
import { Invoice } from './invoice.entity';
|
|
5
|
+
import { CreditNoteEntity } from './credit-note.entity';
|
|
6
|
+
|
|
7
|
+
export enum InvoiceItemType {
|
|
8
|
+
TASK = 'task',
|
|
9
|
+
EXPENSE = 'expense',
|
|
10
|
+
SUMMARY = 'summary',
|
|
11
|
+
TIMESHEET_EVENT = 'timesheet_event',
|
|
12
|
+
FIXED_ITEM = 'fixed_item',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@Entity({ name: 'invoice_items', schema: 'core' })
|
|
16
|
+
@Index('idx_invoice_items_invoice_id', ['invoiceId'])
|
|
17
|
+
@Index('idx_invoice_items_item', ['itemType', 'itemId'])
|
|
18
|
+
export class InvoiceItem extends BaseEntity {
|
|
19
|
+
@Column({ name: 'invoice_id' })
|
|
20
|
+
invoiceId: number;
|
|
21
|
+
|
|
22
|
+
@Column({
|
|
23
|
+
name: 'item_type',
|
|
24
|
+
type: 'enum',
|
|
25
|
+
enum: InvoiceItemType
|
|
26
|
+
})
|
|
27
|
+
itemType: InvoiceItemType;
|
|
28
|
+
|
|
29
|
+
@Column({ name: 'item_id' })
|
|
30
|
+
itemId: number;
|
|
31
|
+
|
|
32
|
+
@Column({
|
|
33
|
+
type: 'decimal',
|
|
34
|
+
precision: 10,
|
|
35
|
+
scale: 2,
|
|
36
|
+
name: 'amount'
|
|
37
|
+
})
|
|
38
|
+
amount: number;
|
|
39
|
+
|
|
40
|
+
@Column({ type: 'decimal', name: 'credit_amount', nullable: true })
|
|
41
|
+
credit_amount: number | null;
|
|
42
|
+
|
|
43
|
+
@Column({ type: 'decimal', name: 'balance_amount', nullable: true })
|
|
44
|
+
balance_amount: number | null;
|
|
45
|
+
|
|
46
|
+
@Column({ type: 'int', name: 'credit_note_id', nullable: true })
|
|
47
|
+
credit_note_id: number | null;
|
|
48
|
+
|
|
49
|
+
@ManyToOne(() => CreditNoteEntity, (creditNote) => creditNote.invoiceItems)
|
|
50
|
+
@JoinColumn({ name: 'credit_note_id' })
|
|
51
|
+
creditNote: CreditNoteEntity;
|
|
52
|
+
|
|
53
|
+
// Relationships
|
|
54
|
+
@ManyToOne(() => Invoice, { onDelete: 'CASCADE' })
|
|
55
|
+
@JoinColumn({ name: 'invoice_id' })
|
|
56
|
+
invoice: Invoice;
|
|
57
|
+
|
|
58
|
+
// @ManyToOne(() => Task, { nullable: true, onDelete: 'CASCADE' })
|
|
59
|
+
// @JoinColumn({ name: 'item_id' })
|
|
60
|
+
// task?: Task;
|
|
61
|
+
|
|
62
|
+
// @ManyToOne(() => Expense, { nullable: true, onDelete: 'CASCADE' })
|
|
63
|
+
// @JoinColumn({ name: 'item_id' })
|
|
64
|
+
// expense?: Expense;
|
|
65
|
+
|
|
66
|
+
// @ManyToOne(() => TimesheetSummary, { nullable: true, onDelete: 'CASCADE' })
|
|
67
|
+
// @JoinColumn({ name: 'item_id' })
|
|
68
|
+
// summary?: TimesheetSummary;
|
|
69
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { Entity, Column, ManyToOne, JoinColumn, Index } from 'typeorm';
|
|
2
|
+
import { BaseEntity } from './base.entity';
|
|
3
|
+
import { User } from './user.entity';
|
|
4
|
+
import { LeaveType } from './leave-type.entity';
|
|
5
|
+
import { Entitlement } from './entitlement.entity';
|
|
6
|
+
|
|
7
|
+
export enum CreditFrequency {
|
|
8
|
+
MONTHLY = 'monthly',
|
|
9
|
+
QUARTERLY = 'quarterly',
|
|
10
|
+
HALF_YEARLY = 'half_yearly',
|
|
11
|
+
YEARLY = 'yearly',
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@Entity({ name: 'leave_balances', schema: 'user' })
|
|
15
|
+
@Index(['userId', 'leaveTypeId', 'entitlementId'], { unique: true })
|
|
16
|
+
export class LeaveBalance extends BaseEntity {
|
|
17
|
+
|
|
18
|
+
@Column({ name: 'user_id' })
|
|
19
|
+
userId: number;
|
|
20
|
+
|
|
21
|
+
@Column({ name: 'leave_type_id' })
|
|
22
|
+
leaveTypeId: number;
|
|
23
|
+
|
|
24
|
+
@Column({ name: 'entitlement_id' })
|
|
25
|
+
entitlementId: number;
|
|
26
|
+
|
|
27
|
+
@Column({ name: 'total_entitled', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
|
28
|
+
totalEntitled: number;
|
|
29
|
+
|
|
30
|
+
@Column({ name: 'balance', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
|
31
|
+
balance: number;
|
|
32
|
+
|
|
33
|
+
@Column({ name: 'used_balance', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
|
34
|
+
usedBalance: number;
|
|
35
|
+
|
|
36
|
+
@Column({ name: 'pending_balance', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
|
37
|
+
pendingBalance: number;
|
|
38
|
+
|
|
39
|
+
@Column({ name: 'carried_forward', type: 'decimal', precision: 10, scale: 2, default: 0 })
|
|
40
|
+
carriedForward: number;
|
|
41
|
+
|
|
42
|
+
@Column({ name: 'accrual_rate', type: 'decimal', precision: 10, scale: 4 })
|
|
43
|
+
accrualRate: number; // entitlements/12 for monthly accrual
|
|
44
|
+
|
|
45
|
+
@Column({ name: 'credit_frequency', type: 'enum', enum: CreditFrequency, default: CreditFrequency.MONTHLY })
|
|
46
|
+
creditFrequency: CreditFrequency;
|
|
47
|
+
|
|
48
|
+
@Column({ name: 'last_credited_date', type: 'date', nullable: true })
|
|
49
|
+
lastCreditedDate: Date;
|
|
50
|
+
|
|
51
|
+
@Column({ name: 'next_credit_date', type: 'date' })
|
|
52
|
+
nextCreditDate: Date;
|
|
53
|
+
|
|
54
|
+
@Column({ name: 'policy_start_date', type: 'date' })
|
|
55
|
+
policyStartDate: Date;
|
|
56
|
+
|
|
57
|
+
@Column({ name: 'policy_end_date', type: 'date' })
|
|
58
|
+
policyEndDate: Date;
|
|
59
|
+
|
|
60
|
+
@Column({ name: 'is_active', default: true })
|
|
61
|
+
isActive: boolean;
|
|
62
|
+
|
|
63
|
+
@Column({ name: 'cron_enabled', default: true })
|
|
64
|
+
cronEnabled: boolean;
|
|
65
|
+
|
|
66
|
+
@Column({ name: 'last_cron_run', type: 'timestamp', nullable: true })
|
|
67
|
+
lastCronRun: Date;
|
|
68
|
+
|
|
69
|
+
// Relationships
|
|
70
|
+
@ManyToOne(() => User, user => user.id)
|
|
71
|
+
@JoinColumn({ name: 'user_id' })
|
|
72
|
+
user: User;
|
|
73
|
+
|
|
74
|
+
@ManyToOne(() => LeaveType, leaveType => leaveType.id)
|
|
75
|
+
@JoinColumn({ name: 'leave_type_id' })
|
|
76
|
+
leaveType: LeaveType;
|
|
77
|
+
|
|
78
|
+
@ManyToOne(() => Entitlement, entitlement => entitlement.id)
|
|
79
|
+
@JoinColumn({ name: 'entitlement_id' })
|
|
80
|
+
entitlement: Entitlement;
|
|
81
|
+
|
|
82
|
+
// Helper methods
|
|
83
|
+
calculateAvailableBalance(): number {
|
|
84
|
+
return this.balance - this.usedBalance - this.pendingBalance;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
canTakeLeave(requestedDays: number): boolean {
|
|
88
|
+
return this.calculateAvailableBalance() >= requestedDays;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
creditLeave(amount: number): void {
|
|
92
|
+
this.balance = Number((Number(this.balance) + Number(amount)).toFixed(2));
|
|
93
|
+
this.lastCreditedDate = new Date();
|
|
94
|
+
this.calculateNextCreditDate();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
debitLeave(amount: number): void {
|
|
98
|
+
this.usedBalance += amount;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
private calculateNextCreditDate(): void {
|
|
102
|
+
const currentDate = new Date();
|
|
103
|
+
switch (this.creditFrequency) {
|
|
104
|
+
case CreditFrequency.MONTHLY:
|
|
105
|
+
this.nextCreditDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 1);
|
|
106
|
+
break;
|
|
107
|
+
case CreditFrequency.QUARTERLY:
|
|
108
|
+
this.nextCreditDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 3, 1);
|
|
109
|
+
break;
|
|
110
|
+
case CreditFrequency.HALF_YEARLY:
|
|
111
|
+
this.nextCreditDate = new Date(currentDate.getFullYear(), currentDate.getMonth() + 6, 1);
|
|
112
|
+
break;
|
|
113
|
+
case CreditFrequency.YEARLY:
|
|
114
|
+
this.nextCreditDate = new Date(currentDate.getFullYear() + 1, currentDate.getMonth(), 1);
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { Entity, Column, ManyToOne, JoinColumn } from 'typeorm';
|
|
2
|
+
import { User } from './user.entity';
|
|
3
|
+
import { LeaveType } from './leave-type.entity';
|
|
4
|
+
import { LeaveBalance } from './leave-balance.entity';
|
|
5
|
+
import { BaseEntity } from './base.entity';
|
|
6
|
+
|
|
7
|
+
export enum LeaveRequestStatus {
|
|
8
|
+
PENDING = 'pending',
|
|
9
|
+
APPROVED = 'approved',
|
|
10
|
+
REJECTED = 'rejected',
|
|
11
|
+
CANCELLED = 'cancelled',
|
|
12
|
+
CANCELATION_REQUESTED = 'cancelation_requested',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum DaysType {
|
|
16
|
+
FULL_DAY = 'full_day',
|
|
17
|
+
FIRST_HALF = 'first_half',
|
|
18
|
+
SECOND_HALF = 'second_half',
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export enum HalfDayPosition {
|
|
22
|
+
START_DATE = 'start_date',
|
|
23
|
+
END_DATE = 'end_date',
|
|
24
|
+
NONE = 'none',
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export enum ApprovalFlowType {
|
|
28
|
+
REPORTING_MANAGER_BASED = 'REPORTING_MANAGER_BASED',
|
|
29
|
+
HIERARCHY_BASED='HIERARCHY_BASED'
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@Entity({ name: 'leave_requests', schema: 'user' })
|
|
33
|
+
export class LeaveRequest extends BaseEntity {
|
|
34
|
+
|
|
35
|
+
@Column({ name: 'user_id' })
|
|
36
|
+
userId: number;
|
|
37
|
+
|
|
38
|
+
@Column({ name: 'leave_type_id' })
|
|
39
|
+
leaveTypeId: number;
|
|
40
|
+
|
|
41
|
+
@Column({ name: 'leave_balance_id', nullable: true })
|
|
42
|
+
leaveBalanceId: number;
|
|
43
|
+
|
|
44
|
+
@Column({ type: 'date', name: 'start_date' })
|
|
45
|
+
startDate: Date;
|
|
46
|
+
|
|
47
|
+
@Column({ type: 'date', name: 'end_date' })
|
|
48
|
+
endDate: Date;
|
|
49
|
+
|
|
50
|
+
@Column({ type: 'enum', enum: DaysType, name: 'start_date_type', default: DaysType.FULL_DAY })
|
|
51
|
+
startDateType: DaysType;
|
|
52
|
+
|
|
53
|
+
@Column({ type: 'enum', enum: DaysType, name: 'end_date_type', default: DaysType.FULL_DAY })
|
|
54
|
+
endDateType: DaysType;
|
|
55
|
+
|
|
56
|
+
@Column({ type: 'decimal', precision: 10, scale: 2, name: 'total_days' })
|
|
57
|
+
totalDays: number;
|
|
58
|
+
|
|
59
|
+
@Column({ type: 'enum', enum: DaysType, name: 'days_type', default: DaysType.FULL_DAY })
|
|
60
|
+
daysType: DaysType;
|
|
61
|
+
|
|
62
|
+
@Column({ type: 'varchar', length: 500, name: 'reason', nullable: true })
|
|
63
|
+
reason: string;
|
|
64
|
+
|
|
65
|
+
@Column({ type: 'varchar', length: 500, name: 'cancel_reason', nullable: true })
|
|
66
|
+
cancelReason: string;
|
|
67
|
+
|
|
68
|
+
@Column({ type: 'enum', enum: LeaveRequestStatus, name: 'status', default: LeaveRequestStatus.PENDING })
|
|
69
|
+
status: LeaveRequestStatus;
|
|
70
|
+
|
|
71
|
+
@Column({ name: 'approver_id', nullable: true })
|
|
72
|
+
approverId: number;
|
|
73
|
+
|
|
74
|
+
@Column({ type: 'varchar', length: 500, name: 'remarks', nullable: true })
|
|
75
|
+
remarks: string;
|
|
76
|
+
|
|
77
|
+
@Column({ name: 'attachment_url', nullable: true })
|
|
78
|
+
attachmentUrl: string;
|
|
79
|
+
|
|
80
|
+
@Column({ name: 'attachment_preview_url', nullable: true })
|
|
81
|
+
attachmentPreviewUrl: string;
|
|
82
|
+
|
|
83
|
+
@Column({ type: 'varchar', length: 500, name: 'reject_reason', nullable: true })
|
|
84
|
+
rejectReason: string;
|
|
85
|
+
|
|
86
|
+
@Column({ type: 'timestamp', name: 'applied_at', default: () => 'CURRENT_TIMESTAMP' })
|
|
87
|
+
appliedAt: Date;
|
|
88
|
+
|
|
89
|
+
@Column({ type: 'timestamp', name: 'approved_at', nullable: true })
|
|
90
|
+
approvedAt: Date;
|
|
91
|
+
|
|
92
|
+
@Column({ type: 'timestamp', name: 'cancelled_at', nullable: true })
|
|
93
|
+
cancelledAt: Date;
|
|
94
|
+
|
|
95
|
+
@Column({ type: 'timestamp', name: 'cancelation_requested_at', nullable: true })
|
|
96
|
+
cancelationRequestedAt: Date;
|
|
97
|
+
|
|
98
|
+
@Column({ type: 'timestamp', name: 'rejected_at', nullable: true })
|
|
99
|
+
rejectedAt: Date;
|
|
100
|
+
|
|
101
|
+
@Column({ type: 'boolean', name: 'is_balance_debited', default: false })
|
|
102
|
+
isBalanceDebited: boolean;
|
|
103
|
+
|
|
104
|
+
@Column({ type: 'enum', enum: HalfDayPosition, name: 'half_day_position', default: HalfDayPosition.NONE })
|
|
105
|
+
halfDayPosition: HalfDayPosition;
|
|
106
|
+
|
|
107
|
+
@Column({ type: 'enum', enum: ApprovalFlowType, name: 'approval_flow_type', nullable: true })
|
|
108
|
+
approvalFlowType: ApprovalFlowType | null;
|
|
109
|
+
|
|
110
|
+
// Relationships
|
|
111
|
+
@ManyToOne(() => User)
|
|
112
|
+
@JoinColumn({ name: 'user_id' })
|
|
113
|
+
user: User;
|
|
114
|
+
|
|
115
|
+
@ManyToOne(() => LeaveType, leaveType => leaveType.leaveRequests)
|
|
116
|
+
@JoinColumn({ name: 'leave_type_id' })
|
|
117
|
+
leaveType: LeaveType;
|
|
118
|
+
|
|
119
|
+
@ManyToOne(() => LeaveBalance)
|
|
120
|
+
@JoinColumn({ name: 'leave_balance_id' })
|
|
121
|
+
leaveBalance: LeaveBalance;
|
|
122
|
+
|
|
123
|
+
@ManyToOne(() => User)
|
|
124
|
+
@JoinColumn({ name: 'approver_id' })
|
|
125
|
+
approver: User;
|
|
126
|
+
|
|
127
|
+
// Helper methods
|
|
128
|
+
isPending(): boolean {
|
|
129
|
+
return this.status === LeaveRequestStatus.PENDING;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
isApproved(): boolean {
|
|
133
|
+
return this.status === LeaveRequestStatus.APPROVED;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
isRejected(): boolean {
|
|
137
|
+
return this.status === LeaveRequestStatus.REJECTED;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
isCancelled(): boolean {
|
|
141
|
+
return this.status === LeaveRequestStatus.CANCELLED;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
canBeApproved(): boolean {
|
|
145
|
+
return this.status === LeaveRequestStatus.PENDING;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
canBeRejected(): boolean {
|
|
149
|
+
return this.status === LeaveRequestStatus.PENDING;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
canBeCancelled(): boolean {
|
|
153
|
+
return this.status === LeaveRequestStatus.PENDING || this.status === LeaveRequestStatus.APPROVED;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Entity, Column, OneToMany } from 'typeorm';
|
|
2
|
+
import { LeaveRequest } from './leave-request.entity';
|
|
3
|
+
import { BaseEntity } from './base.entity';
|
|
4
|
+
|
|
5
|
+
@Entity({ name: 'leave_types', schema: 'user' })
|
|
6
|
+
export class LeaveType extends BaseEntity{
|
|
7
|
+
|
|
8
|
+
@Column({ unique: true, name: 'name', nullable: true })
|
|
9
|
+
name: string;
|
|
10
|
+
|
|
11
|
+
@Column({ name: 'leave_type_slug', nullable: true })
|
|
12
|
+
leaveTypeSlug: string;
|
|
13
|
+
|
|
14
|
+
@Column({ unique: true, name: 'code', nullable: true })
|
|
15
|
+
code: string;
|
|
16
|
+
|
|
17
|
+
@Column({ name: 'description', nullable: true })
|
|
18
|
+
description: string;
|
|
19
|
+
|
|
20
|
+
@Column({ default: true, name: 'is_active', nullable: true })
|
|
21
|
+
isActive: boolean;
|
|
22
|
+
|
|
23
|
+
@Column({ type: 'boolean', name: 'is_entitlement_situational', default: false, nullable: true })
|
|
24
|
+
isEntitlementSituational: boolean;
|
|
25
|
+
|
|
26
|
+
@Column({ type: 'varchar', length: 20, name: 'entitlement_frequency', nullable:true })
|
|
27
|
+
entitlementFrequency: string|null;
|
|
28
|
+
|
|
29
|
+
@Column({ type: 'int', name: 'no_of_leaves', nullable: true })
|
|
30
|
+
noOfLeaves: number;
|
|
31
|
+
|
|
32
|
+
@Column({ type: 'boolean', name: 'allow_carry_forward', default: false, nullable: true })
|
|
33
|
+
allowCarryForward: boolean;
|
|
34
|
+
|
|
35
|
+
@OneToMany(() => LeaveRequest, leaveRequest => leaveRequest.leaveType)
|
|
36
|
+
leaveRequests: LeaveRequest[];
|
|
37
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Entity, Column, ManyToOne, JoinColumn } from 'typeorm';
|
|
2
|
+
import { Matter } from './matter.entity';
|
|
3
|
+
import { BaseEntity } from './base.entity';
|
|
4
|
+
import { Tag } from './tag.entity';
|
|
5
|
+
|
|
6
|
+
@Entity({ name: 'matters_tags', schema: 'core' })
|
|
7
|
+
export class MatterTag extends BaseEntity {
|
|
8
|
+
@Column({ name: 'matterId' })
|
|
9
|
+
matterId: number;
|
|
10
|
+
|
|
11
|
+
@Column({ name: 'tagId' })
|
|
12
|
+
tagId: number;
|
|
13
|
+
|
|
14
|
+
@ManyToOne(() => Matter, matter => matter.mattersLabel)
|
|
15
|
+
@JoinColumn({ name: 'matterId' })
|
|
16
|
+
matter: Matter;
|
|
17
|
+
|
|
18
|
+
@ManyToOne(() => Tag, tag => tag.mattersLabel)
|
|
19
|
+
@JoinColumn({ name: 'tagId' })
|
|
20
|
+
tag: Tag;
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Entity, Column, Index } from 'typeorm';
|
|
2
|
+
import { BaseEntity } from './base.entity';
|
|
3
|
+
|
|
4
|
+
export enum VIEW_TYPE{
|
|
5
|
+
KANBAN_VIEW = 'kanban_view',
|
|
6
|
+
LIST_VIEW = 'list_view',
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@Entity({ name: 'matter_task_view_filters', schema: 'core' })
|
|
10
|
+
@Index(['userId'], { unique: true })
|
|
11
|
+
export class MatterTaskViewFilter extends BaseEntity {
|
|
12
|
+
@Column({ name: 'user_id' })
|
|
13
|
+
userId: number;
|
|
14
|
+
|
|
15
|
+
@Column({ name: 'view_type', length: 100, nullable: false })
|
|
16
|
+
viewType: VIEW_TYPE;
|
|
17
|
+
|
|
18
|
+
@Column({ name: 'filters', type: 'jsonb', nullable: true })
|
|
19
|
+
filters: any;
|
|
20
|
+
}
|
|
21
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Entity, Column, ManyToOne, JoinColumn } from 'typeorm';
|
|
2
|
+
import { Matter } from './matter.entity';
|
|
3
|
+
import { BaseEntity } from './base.entity';
|
|
4
|
+
import { User } from './user.entity';
|
|
5
|
+
|
|
6
|
+
@Entity({ name: 'matter_team_members', schema: 'core' })
|
|
7
|
+
export class MatterTeamMember extends BaseEntity{
|
|
8
|
+
@Column({ name: 'matter_id' })
|
|
9
|
+
matterId: number;
|
|
10
|
+
|
|
11
|
+
@Column({ name: 'user_id' })
|
|
12
|
+
userId: number;
|
|
13
|
+
|
|
14
|
+
@Column({
|
|
15
|
+
name: 'hourly_rate',
|
|
16
|
+
type: 'numeric',
|
|
17
|
+
precision: 10,
|
|
18
|
+
scale: 2,
|
|
19
|
+
nullable: true,
|
|
20
|
+
})
|
|
21
|
+
hourlyRate: number | null;
|
|
22
|
+
|
|
23
|
+
@ManyToOne(() => Matter, matter => matter.teamMembers)
|
|
24
|
+
@JoinColumn({ name: 'matter_id' })
|
|
25
|
+
matter: Matter;
|
|
26
|
+
|
|
27
|
+
@ManyToOne(() => User, user => user.teamMembers)
|
|
28
|
+
@JoinColumn({ name: 'user_id' })
|
|
29
|
+
user: User;
|
|
30
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { Entity, Column, ManyToOne, OneToMany, JoinColumn } from 'typeorm';
|
|
2
|
+
import { BaseEntity } from './base.entity';
|
|
3
|
+
import { Client } from './client.entity';
|
|
4
|
+
import { Task } from './task.entity';
|
|
5
|
+
import { MatterTeamMember } from './matter-team-member.entity';
|
|
6
|
+
import { MatterTag } from './matter-tag.entity';
|
|
7
|
+
import { Template } from './template.entity';
|
|
8
|
+
import { Invoice } from './invoice.entity';
|
|
9
|
+
import { User } from './user.entity';
|
|
10
|
+
import { TimesheetEvent } from './timesheet-event.entity';
|
|
11
|
+
import { Expense } from './expense.entity';
|
|
12
|
+
import { Currency } from './currency.entity';
|
|
13
|
+
|
|
14
|
+
export enum ApprovalStatus {
|
|
15
|
+
PENDING_APPROVAL = 'pending_approval',
|
|
16
|
+
APPROVED = 'approved',
|
|
17
|
+
REJECTED = 'rejected',
|
|
18
|
+
AUTO_REJECTED = 'auto_rejected',
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export enum OvertimeFeeType {
|
|
22
|
+
HOURLY_RATE = 'hourly_rate',
|
|
23
|
+
FIXED_RATE = 'fixed_rate',
|
|
24
|
+
}
|
|
25
|
+
@Entity({ name: 'matters', schema: 'core' })
|
|
26
|
+
export class Matter extends BaseEntity {
|
|
27
|
+
@Column({ name: 'client_id' })
|
|
28
|
+
clientId: number;
|
|
29
|
+
|
|
30
|
+
@Column({ length: 200 })
|
|
31
|
+
title: string;
|
|
32
|
+
|
|
33
|
+
@Column('text', { array: true, name: 'billing_mode' })
|
|
34
|
+
billingMode: string[];
|
|
35
|
+
|
|
36
|
+
@Column({ type: 'decimal', precision: 10, scale: 2, name: 'standard_fee' })
|
|
37
|
+
standardFee: number;
|
|
38
|
+
|
|
39
|
+
@Column({ name: 'overtime_fee_type', nullable: true })
|
|
40
|
+
overtimeFeeType: OvertimeFeeType;
|
|
41
|
+
|
|
42
|
+
@Column({
|
|
43
|
+
type: 'decimal',
|
|
44
|
+
precision: 10,
|
|
45
|
+
scale: 2,
|
|
46
|
+
name: 'overtime_fixed_rate',
|
|
47
|
+
nullable: true,
|
|
48
|
+
})
|
|
49
|
+
overtimeFixedRate: number;
|
|
50
|
+
|
|
51
|
+
@Column({
|
|
52
|
+
type: 'decimal',
|
|
53
|
+
precision: 10,
|
|
54
|
+
scale: 2,
|
|
55
|
+
name: 'overtime_hourly_rate',
|
|
56
|
+
nullable: true,
|
|
57
|
+
})
|
|
58
|
+
overtimeHourlyRate: number;
|
|
59
|
+
|
|
60
|
+
@Column({ type: 'timestamp', name: 'startDate', nullable: true })
|
|
61
|
+
startDate: Date;
|
|
62
|
+
|
|
63
|
+
@Column({ type: 'timestamp', name: 'dueDate', nullable: true })
|
|
64
|
+
dueDate: Date;
|
|
65
|
+
|
|
66
|
+
@Column({ name: 'departmentId', nullable: true })
|
|
67
|
+
departmentId: number;
|
|
68
|
+
|
|
69
|
+
@Column({ name: 'userId', nullable: true })
|
|
70
|
+
userId: number;
|
|
71
|
+
|
|
72
|
+
@ManyToOne(() => User)
|
|
73
|
+
@JoinColumn({ name: 'userId' })
|
|
74
|
+
user: User;
|
|
75
|
+
|
|
76
|
+
@Column({ type: 'text', nullable: true })
|
|
77
|
+
notes: string;
|
|
78
|
+
|
|
79
|
+
@Column({ name: 'created_for', nullable: true })
|
|
80
|
+
createdFor: number;
|
|
81
|
+
|
|
82
|
+
@Column({ name: 'templateId', nullable: true })
|
|
83
|
+
templateId: number | null;
|
|
84
|
+
|
|
85
|
+
@Column({ name: 'fileId', nullable: true })
|
|
86
|
+
fileId: number;
|
|
87
|
+
|
|
88
|
+
@Column({ length: 20, nullable: true })
|
|
89
|
+
status: string;
|
|
90
|
+
|
|
91
|
+
@Column({ length: 20, nullable: true })
|
|
92
|
+
reason_for_matter: string;
|
|
93
|
+
|
|
94
|
+
@Column({ name: 'approval_status', nullable: true, enum: ApprovalStatus })
|
|
95
|
+
approvalStatus: ApprovalStatus;
|
|
96
|
+
|
|
97
|
+
@Column({ name: 'reject_reason', nullable: true })
|
|
98
|
+
rejectReason: string;
|
|
99
|
+
|
|
100
|
+
@Column({ length: 10, nullable: true })
|
|
101
|
+
priority: string;
|
|
102
|
+
|
|
103
|
+
@Column({ length: 10, nullable: true })
|
|
104
|
+
riskLevel: string;
|
|
105
|
+
|
|
106
|
+
@Column({ name: 'elId', nullable: true })
|
|
107
|
+
elId: number;
|
|
108
|
+
|
|
109
|
+
@Column({ name: 'signatureId', nullable: true })
|
|
110
|
+
signatureId: number;
|
|
111
|
+
|
|
112
|
+
@Column({ nullable: true })
|
|
113
|
+
progress: number;
|
|
114
|
+
|
|
115
|
+
@Column({ type: 'jsonb', nullable: true })
|
|
116
|
+
flowaceData: any;
|
|
117
|
+
|
|
118
|
+
@Column({ name: 'currency_id', nullable: true })
|
|
119
|
+
currencyId: number | null;
|
|
120
|
+
|
|
121
|
+
@Column({ name: 'is_archived', default: false })
|
|
122
|
+
isArchived: boolean;
|
|
123
|
+
|
|
124
|
+
@ManyToOne(() => Client)
|
|
125
|
+
@JoinColumn({ name: 'client_id' })
|
|
126
|
+
client: Client;
|
|
127
|
+
|
|
128
|
+
@Column({ name: 'partnerId', nullable: true })
|
|
129
|
+
partnerId: number;
|
|
130
|
+
|
|
131
|
+
@ManyToOne(() => Template)
|
|
132
|
+
@JoinColumn({ name: 'templateId' })
|
|
133
|
+
template: Template;
|
|
134
|
+
|
|
135
|
+
@OneToMany(() => MatterTeamMember, (teamMember) => teamMember.matter)
|
|
136
|
+
teamMembers: MatterTeamMember[];
|
|
137
|
+
|
|
138
|
+
@OneToMany(() => Task, (task) => task.matter)
|
|
139
|
+
tasks: Task[];
|
|
140
|
+
|
|
141
|
+
@OneToMany(() => MatterTag, (matterTag) => matterTag.matter)
|
|
142
|
+
mattersLabel: MatterTag[];
|
|
143
|
+
|
|
144
|
+
@OneToMany(() => Expense, (expense) => expense.matter)
|
|
145
|
+
expenses: Expense[];
|
|
146
|
+
|
|
147
|
+
@OneToMany(() => Invoice, (invoice) => invoice.matter)
|
|
148
|
+
invoices: Invoice[];
|
|
149
|
+
|
|
150
|
+
@ManyToOne(() => Currency, (currency) => currency.matters)
|
|
151
|
+
@JoinColumn({ name: 'currency_id' })
|
|
152
|
+
currency: Currency;
|
|
153
|
+
|
|
154
|
+
@OneToMany(() => TimesheetEvent, (timesheetEvent) => timesheetEvent.matter)
|
|
155
|
+
timesheetEvents: TimesheetEvent[];
|
|
156
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Entity, Column, ManyToOne, JoinColumn, Check } from 'typeorm';
|
|
2
|
+
import { BaseEntity } from './base.entity';
|
|
3
|
+
import { Invoice } from './invoice.entity';
|
|
4
|
+
import { User } from './user.entity';
|
|
5
|
+
|
|
6
|
+
@Entity({ name: 'payments', schema: 'core'})
|
|
7
|
+
@Check(`payment_mode IN ('Bank Transfer', 'Card', 'Cash', 'Cheque')`)
|
|
8
|
+
@Check(`payment_status IN ('Partially Paid', 'Full Payment', 'Overdue', 'Cancelled', 'Refunded')`)
|
|
9
|
+
export class Payment extends BaseEntity {
|
|
10
|
+
@Column({ name: 'invoice_id', type: 'integer' })
|
|
11
|
+
invoiceId: number;
|
|
12
|
+
|
|
13
|
+
@Column({ name: 'amount', type: 'decimal', precision: 10, scale: 2, nullable: true })
|
|
14
|
+
amount: number;
|
|
15
|
+
|
|
16
|
+
@Column({ name: 'payment_date', type: 'timestamp' })
|
|
17
|
+
paymentDate: Date;
|
|
18
|
+
|
|
19
|
+
@Column({ name: 'confirmed_by', type: 'integer', nullable: true })
|
|
20
|
+
confirmedBy: number;
|
|
21
|
+
|
|
22
|
+
@Column({ name: 'transaction_reference_number', type: 'varchar', length: 255, nullable: true })
|
|
23
|
+
transactionReferenceNumber: string;
|
|
24
|
+
|
|
25
|
+
@Column({ name: 'account_holder_name', type: 'varchar', length: 255, nullable: true })
|
|
26
|
+
accountHolderName: string;
|
|
27
|
+
|
|
28
|
+
@Column({ name: 'account_number', type: 'varchar', length: 255, nullable: true })
|
|
29
|
+
accountNumber: string;
|
|
30
|
+
|
|
31
|
+
@Column({ name: 'received_amount', type: 'decimal', precision: 10, scale: 2, nullable: true })
|
|
32
|
+
receivedAmount: number;
|
|
33
|
+
|
|
34
|
+
@Column({ name: 'is_tds_applicable', type: 'boolean', default: false })
|
|
35
|
+
isTdsApplicable: boolean;
|
|
36
|
+
|
|
37
|
+
@Column({ name: 'tds_amount', type: 'decimal', precision: 10, scale: 2, nullable: true })
|
|
38
|
+
tdsAmount: number;
|
|
39
|
+
|
|
40
|
+
@Column({ name: 'tds_percentage', type: 'decimal', precision: 10, scale: 2, nullable: true })
|
|
41
|
+
tdsPercentage: number;
|
|
42
|
+
|
|
43
|
+
@Column({ name: 'total_payment_recorded', type: 'decimal', precision: 10, scale: 2, nullable: true })
|
|
44
|
+
totalPaymentRecorded: number;
|
|
45
|
+
|
|
46
|
+
@Column({ name: 'payment_mode', type: 'varchar', length: 50 })
|
|
47
|
+
paymentMode: 'Bank Transfer' | 'Card' | 'Cash' | 'Cheque';
|
|
48
|
+
|
|
49
|
+
@Column({ name: 'payment_status', type: 'varchar', length: 50 })
|
|
50
|
+
paymentStatus: 'Partially Paid' | 'Full Payment' | 'Overdue' | 'Cancelled' | 'Refunded';
|
|
51
|
+
|
|
52
|
+
@Column({ name: 'invoice_no', type: 'varchar', nullable: true })
|
|
53
|
+
invoiceNo: string;
|
|
54
|
+
|
|
55
|
+
// QuickBooks Integration Fields
|
|
56
|
+
@Column({ type: 'varchar', length: 255, nullable: true, name: 'quickbooks_id' })
|
|
57
|
+
quickbooksId: string;
|
|
58
|
+
|
|
59
|
+
@Column({ type: 'varchar', length: 50, nullable: true, name: 'quickbooks_sync_token' })
|
|
60
|
+
quickbooksSyncToken: string;
|
|
61
|
+
|
|
62
|
+
@Column({ type: 'timestamp', nullable: true, name: 'last_synced_at' })
|
|
63
|
+
lastSyncedAt: Date;
|
|
64
|
+
|
|
65
|
+
@ManyToOne(() => User, { onDelete: 'SET NULL', onUpdate: 'CASCADE' })
|
|
66
|
+
@JoinColumn({ name: 'confirmed_by' })
|
|
67
|
+
user: User;
|
|
68
|
+
|
|
69
|
+
@ManyToOne(() => Invoice, { onDelete: 'CASCADE', onUpdate: 'CASCADE' })
|
|
70
|
+
@JoinColumn({ name: 'invoice_id' })
|
|
71
|
+
invoice: Invoice;
|
|
72
|
+
}
|