tango-api-schema 2.6.26 → 2.6.28
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 +1 -1
- package/schema/billing.model.js +129 -129
- package/schema/estimate.model.js +3 -3
- package/schema/paymentAccount.model.js +60 -60
- package/schema/transaction.model.js +54 -54
package/package.json
CHANGED
package/schema/billing.model.js
CHANGED
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
import mongoose from 'mongoose';
|
|
2
|
-
|
|
3
|
-
const billingSchema = new mongoose.Schema(
|
|
4
|
-
{
|
|
5
|
-
clientId: {
|
|
6
|
-
type: String,
|
|
7
|
-
required: true,
|
|
8
|
-
},
|
|
9
|
-
groupName: {
|
|
10
|
-
type: String,
|
|
11
|
-
default:'Default Group'
|
|
12
|
-
},
|
|
13
|
-
groupTag: {
|
|
14
|
-
type: String,
|
|
15
|
-
enum: ['store','gst'],
|
|
16
|
-
default: 'store'
|
|
17
|
-
},
|
|
18
|
-
registeredCompanyName: {
|
|
19
|
-
type: String,
|
|
20
|
-
},
|
|
21
|
-
gst: {
|
|
22
|
-
type: String,
|
|
23
|
-
},
|
|
24
|
-
addressLineOne: {
|
|
25
|
-
type: String,
|
|
26
|
-
},
|
|
27
|
-
addressLineTwo: {
|
|
28
|
-
type: String,
|
|
29
|
-
},
|
|
30
|
-
city: {
|
|
31
|
-
type: String,
|
|
32
|
-
},
|
|
33
|
-
state: {
|
|
34
|
-
type: String,
|
|
35
|
-
},
|
|
36
|
-
country: {
|
|
37
|
-
type: String,
|
|
38
|
-
},
|
|
39
|
-
pinCode: {
|
|
40
|
-
type: String,
|
|
41
|
-
},
|
|
42
|
-
placeOfSupply: {
|
|
43
|
-
type: String,
|
|
44
|
-
},
|
|
45
|
-
po: {
|
|
46
|
-
type: String,
|
|
47
|
-
},
|
|
48
|
-
stores: {
|
|
49
|
-
type: Array,
|
|
50
|
-
},
|
|
51
|
-
proRata: {
|
|
52
|
-
type: String,
|
|
53
|
-
// 'prorate' = bill for actual working days.
|
|
54
|
-
// 'flat' = bill for the full month regardless of working days.
|
|
55
|
-
// Note: legacy values 'before15' / 'after15' were migrated out via
|
|
56
|
-
// scripts/migrate-billing-prorata-pricing.js. Don't reintroduce them.
|
|
57
|
-
enum: ['prorate','flat'],
|
|
58
|
-
default: 'prorate'
|
|
59
|
-
},
|
|
60
|
-
paymentCategory: {
|
|
61
|
-
type: String,
|
|
62
|
-
enum: ['pre','post'],
|
|
63
|
-
default: 'post'
|
|
64
|
-
},
|
|
65
|
-
currency: {
|
|
66
|
-
type: String,
|
|
67
|
-
enum: ['dollar','inr','singaporedollar','euro'],
|
|
68
|
-
},
|
|
69
|
-
// Drives invoice-generation tax behavior. 'domestic' runs the
|
|
70
|
-
// existing GST/IGST/CGST/SGST logic. 'international' suppresses
|
|
71
|
-
// tax lines entirely (the tax array is left empty so totalAmount
|
|
72
|
-
// equals subtotal). Defaults to 'domestic' so existing records
|
|
73
|
-
// keep their current behavior on read.
|
|
74
|
-
taxCalculationType: {
|
|
75
|
-
type: String,
|
|
76
|
-
enum: ['domestic','international'],
|
|
77
|
-
default: 'domestic'
|
|
78
|
-
},
|
|
79
|
-
isInstallationOneTime: {
|
|
80
|
-
type: Boolean,
|
|
81
|
-
default: false
|
|
82
|
-
},
|
|
83
|
-
installationFee: {
|
|
84
|
-
type: Number,
|
|
85
|
-
},
|
|
86
|
-
paymentCycle: {
|
|
87
|
-
type: String,
|
|
88
|
-
enum: ['monthly','quarter', 'halfYearly', 'yearly'],
|
|
89
|
-
default: 'monthly'
|
|
90
|
-
},
|
|
91
|
-
paymentTerm: {
|
|
92
|
-
type: Number,
|
|
93
|
-
enum: [30, 45, 60, 90],
|
|
94
|
-
default: 30
|
|
95
|
-
},
|
|
96
|
-
generateInvoiceTo: {
|
|
97
|
-
type: Array,
|
|
98
|
-
},
|
|
99
|
-
attachAnnexure: {
|
|
100
|
-
type: Boolean,
|
|
101
|
-
default:false
|
|
102
|
-
},
|
|
103
|
-
isPrimary: {
|
|
104
|
-
type: Boolean
|
|
105
|
-
},
|
|
106
|
-
advanceInvoice: {
|
|
107
|
-
type: Boolean,
|
|
108
|
-
default: false
|
|
109
|
-
},
|
|
110
|
-
products: [
|
|
111
|
-
{
|
|
112
|
-
productName: {
|
|
113
|
-
type: String,
|
|
114
|
-
},
|
|
115
|
-
billingMethod: {
|
|
116
|
-
type: String,
|
|
117
|
-
enum: ['eachStore', 'overallStore'],
|
|
118
|
-
default: 'overallStore'
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
]
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
strict: true,
|
|
125
|
-
versionKey: false,
|
|
126
|
-
timestamps: true,
|
|
127
|
-
},
|
|
128
|
-
);
|
|
129
|
-
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
|
|
3
|
+
const billingSchema = new mongoose.Schema(
|
|
4
|
+
{
|
|
5
|
+
clientId: {
|
|
6
|
+
type: String,
|
|
7
|
+
required: true,
|
|
8
|
+
},
|
|
9
|
+
groupName: {
|
|
10
|
+
type: String,
|
|
11
|
+
default:'Default Group'
|
|
12
|
+
},
|
|
13
|
+
groupTag: {
|
|
14
|
+
type: String,
|
|
15
|
+
enum: ['store','gst'],
|
|
16
|
+
default: 'store'
|
|
17
|
+
},
|
|
18
|
+
registeredCompanyName: {
|
|
19
|
+
type: String,
|
|
20
|
+
},
|
|
21
|
+
gst: {
|
|
22
|
+
type: String,
|
|
23
|
+
},
|
|
24
|
+
addressLineOne: {
|
|
25
|
+
type: String,
|
|
26
|
+
},
|
|
27
|
+
addressLineTwo: {
|
|
28
|
+
type: String,
|
|
29
|
+
},
|
|
30
|
+
city: {
|
|
31
|
+
type: String,
|
|
32
|
+
},
|
|
33
|
+
state: {
|
|
34
|
+
type: String,
|
|
35
|
+
},
|
|
36
|
+
country: {
|
|
37
|
+
type: String,
|
|
38
|
+
},
|
|
39
|
+
pinCode: {
|
|
40
|
+
type: String,
|
|
41
|
+
},
|
|
42
|
+
placeOfSupply: {
|
|
43
|
+
type: String,
|
|
44
|
+
},
|
|
45
|
+
po: {
|
|
46
|
+
type: String,
|
|
47
|
+
},
|
|
48
|
+
stores: {
|
|
49
|
+
type: Array,
|
|
50
|
+
},
|
|
51
|
+
proRata: {
|
|
52
|
+
type: String,
|
|
53
|
+
// 'prorate' = bill for actual working days.
|
|
54
|
+
// 'flat' = bill for the full month regardless of working days.
|
|
55
|
+
// Note: legacy values 'before15' / 'after15' were migrated out via
|
|
56
|
+
// scripts/migrate-billing-prorata-pricing.js. Don't reintroduce them.
|
|
57
|
+
enum: ['prorate','flat'],
|
|
58
|
+
default: 'prorate'
|
|
59
|
+
},
|
|
60
|
+
paymentCategory: {
|
|
61
|
+
type: String,
|
|
62
|
+
enum: ['pre','post'],
|
|
63
|
+
default: 'post'
|
|
64
|
+
},
|
|
65
|
+
currency: {
|
|
66
|
+
type: String,
|
|
67
|
+
enum: ['dollar','inr','singaporedollar','euro','aed'],
|
|
68
|
+
},
|
|
69
|
+
// Drives invoice-generation tax behavior. 'domestic' runs the
|
|
70
|
+
// existing GST/IGST/CGST/SGST logic. 'international' suppresses
|
|
71
|
+
// tax lines entirely (the tax array is left empty so totalAmount
|
|
72
|
+
// equals subtotal). Defaults to 'domestic' so existing records
|
|
73
|
+
// keep their current behavior on read.
|
|
74
|
+
taxCalculationType: {
|
|
75
|
+
type: String,
|
|
76
|
+
enum: ['domestic','international'],
|
|
77
|
+
default: 'domestic'
|
|
78
|
+
},
|
|
79
|
+
isInstallationOneTime: {
|
|
80
|
+
type: Boolean,
|
|
81
|
+
default: false
|
|
82
|
+
},
|
|
83
|
+
installationFee: {
|
|
84
|
+
type: Number,
|
|
85
|
+
},
|
|
86
|
+
paymentCycle: {
|
|
87
|
+
type: String,
|
|
88
|
+
enum: ['monthly','quarter', 'halfYearly', 'yearly'],
|
|
89
|
+
default: 'monthly'
|
|
90
|
+
},
|
|
91
|
+
paymentTerm: {
|
|
92
|
+
type: Number,
|
|
93
|
+
enum: [30, 45, 60, 90],
|
|
94
|
+
default: 30
|
|
95
|
+
},
|
|
96
|
+
generateInvoiceTo: {
|
|
97
|
+
type: Array,
|
|
98
|
+
},
|
|
99
|
+
attachAnnexure: {
|
|
100
|
+
type: Boolean,
|
|
101
|
+
default:false
|
|
102
|
+
},
|
|
103
|
+
isPrimary: {
|
|
104
|
+
type: Boolean
|
|
105
|
+
},
|
|
106
|
+
advanceInvoice: {
|
|
107
|
+
type: Boolean,
|
|
108
|
+
default: false
|
|
109
|
+
},
|
|
110
|
+
products: [
|
|
111
|
+
{
|
|
112
|
+
productName: {
|
|
113
|
+
type: String,
|
|
114
|
+
},
|
|
115
|
+
billingMethod: {
|
|
116
|
+
type: String,
|
|
117
|
+
enum: ['eachStore', 'overallStore'],
|
|
118
|
+
default: 'overallStore'
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
strict: true,
|
|
125
|
+
versionKey: false,
|
|
126
|
+
timestamps: true,
|
|
127
|
+
},
|
|
128
|
+
);
|
|
129
|
+
|
|
130
130
|
export default mongoose.model( 'billing', billingSchema);
|
package/schema/estimate.model.js
CHANGED
|
@@ -53,13 +53,13 @@ const estimateSchema = new mongoose.Schema(
|
|
|
53
53
|
},
|
|
54
54
|
currency: {
|
|
55
55
|
type: String,
|
|
56
|
-
enum: [ 'dollar', 'inr', 'singaporedollar', 'euro' ],
|
|
56
|
+
enum: [ 'dollar', 'inr', 'singaporedollar', 'euro', 'aed' ],
|
|
57
57
|
default: 'inr',
|
|
58
58
|
},
|
|
59
59
|
status: {
|
|
60
60
|
type: String,
|
|
61
|
-
default: '
|
|
62
|
-
enum: [ '
|
|
61
|
+
default: 'pending',
|
|
62
|
+
enum: [ 'pending', 'sent', 'accepted', 'declined', 'expired' ],
|
|
63
63
|
},
|
|
64
64
|
createdDate: {
|
|
65
65
|
type: Date,
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import mongoose from 'mongoose';
|
|
2
|
-
|
|
3
|
-
const paymentAccountSchema = new mongoose.Schema(
|
|
4
|
-
{
|
|
5
|
-
clientId: {
|
|
6
|
-
type: String,
|
|
7
|
-
required: true,
|
|
8
|
-
unique: true,
|
|
9
|
-
},
|
|
10
|
-
customerId:{
|
|
11
|
-
type: String,
|
|
12
|
-
required: true,
|
|
13
|
-
unique: true,
|
|
14
|
-
},
|
|
15
|
-
virtualAccId:{
|
|
16
|
-
type: String,
|
|
17
|
-
required: true,
|
|
18
|
-
unique: true,
|
|
19
|
-
},
|
|
20
|
-
bankAccId:{
|
|
21
|
-
type: String,
|
|
22
|
-
required: true,
|
|
23
|
-
unique: true,
|
|
24
|
-
},
|
|
25
|
-
accountNumber:{
|
|
26
|
-
type: String,
|
|
27
|
-
required: true,
|
|
28
|
-
unique: true,
|
|
29
|
-
},
|
|
30
|
-
paymentType:{
|
|
31
|
-
type: String,
|
|
32
|
-
},
|
|
33
|
-
status:{
|
|
34
|
-
type: String,
|
|
35
|
-
},
|
|
36
|
-
ifsc: {
|
|
37
|
-
type: String,
|
|
38
|
-
},
|
|
39
|
-
swiftCode:{
|
|
40
|
-
type: String,
|
|
41
|
-
},
|
|
42
|
-
branch:{
|
|
43
|
-
type: String,
|
|
44
|
-
},
|
|
45
|
-
credit:{
|
|
46
|
-
type: Number,
|
|
47
|
-
default:0
|
|
48
|
-
},
|
|
49
|
-
currency: {
|
|
50
|
-
type: String,
|
|
51
|
-
enum: [ 'dollar', 'inr', 'singaporedollar', 'euro' ],
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
strict: true,
|
|
56
|
-
versionKey: false,
|
|
57
|
-
timestamps: true,
|
|
58
|
-
},
|
|
59
|
-
);
|
|
60
|
-
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
|
|
3
|
+
const paymentAccountSchema = new mongoose.Schema(
|
|
4
|
+
{
|
|
5
|
+
clientId: {
|
|
6
|
+
type: String,
|
|
7
|
+
required: true,
|
|
8
|
+
unique: true,
|
|
9
|
+
},
|
|
10
|
+
customerId:{
|
|
11
|
+
type: String,
|
|
12
|
+
required: true,
|
|
13
|
+
unique: true,
|
|
14
|
+
},
|
|
15
|
+
virtualAccId:{
|
|
16
|
+
type: String,
|
|
17
|
+
required: true,
|
|
18
|
+
unique: true,
|
|
19
|
+
},
|
|
20
|
+
bankAccId:{
|
|
21
|
+
type: String,
|
|
22
|
+
required: true,
|
|
23
|
+
unique: true,
|
|
24
|
+
},
|
|
25
|
+
accountNumber:{
|
|
26
|
+
type: String,
|
|
27
|
+
required: true,
|
|
28
|
+
unique: true,
|
|
29
|
+
},
|
|
30
|
+
paymentType:{
|
|
31
|
+
type: String,
|
|
32
|
+
},
|
|
33
|
+
status:{
|
|
34
|
+
type: String,
|
|
35
|
+
},
|
|
36
|
+
ifsc: {
|
|
37
|
+
type: String,
|
|
38
|
+
},
|
|
39
|
+
swiftCode:{
|
|
40
|
+
type: String,
|
|
41
|
+
},
|
|
42
|
+
branch:{
|
|
43
|
+
type: String,
|
|
44
|
+
},
|
|
45
|
+
credit:{
|
|
46
|
+
type: Number,
|
|
47
|
+
default:0
|
|
48
|
+
},
|
|
49
|
+
currency: {
|
|
50
|
+
type: String,
|
|
51
|
+
enum: [ 'dollar', 'inr', 'singaporedollar', 'euro', 'aed' ],
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
strict: true,
|
|
56
|
+
versionKey: false,
|
|
57
|
+
timestamps: true,
|
|
58
|
+
},
|
|
59
|
+
);
|
|
60
|
+
|
|
61
61
|
export default mongoose.model( 'paymentAccount', paymentAccountSchema);
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import mongoose from 'mongoose';
|
|
2
|
-
|
|
3
|
-
const transactionSchema = new mongoose.Schema(
|
|
4
|
-
{
|
|
5
|
-
clientId: {
|
|
6
|
-
type: String
|
|
7
|
-
},
|
|
8
|
-
orderId: {
|
|
9
|
-
type: String
|
|
10
|
-
},
|
|
11
|
-
paymentId: {
|
|
12
|
-
type: String
|
|
13
|
-
},
|
|
14
|
-
debtType: {
|
|
15
|
-
type: String,
|
|
16
|
-
enum: [ 'wallet', 'razor' ],
|
|
17
|
-
},
|
|
18
|
-
billingDate: {
|
|
19
|
-
type: Date
|
|
20
|
-
},
|
|
21
|
-
invoice: {
|
|
22
|
-
type: String
|
|
23
|
-
},
|
|
24
|
-
groupName: {
|
|
25
|
-
type: String
|
|
26
|
-
},
|
|
27
|
-
groupId: {
|
|
28
|
-
type: mongoose.Types.ObjectId
|
|
29
|
-
},
|
|
30
|
-
amount: {
|
|
31
|
-
type: Number
|
|
32
|
-
},
|
|
33
|
-
currency: {
|
|
34
|
-
type: String,
|
|
35
|
-
enum: [ 'dollar', 'inr', 'singaporedollar', 'euro' ],
|
|
36
|
-
},
|
|
37
|
-
transactionType: {
|
|
38
|
-
type: String,
|
|
39
|
-
enum: [ 'credit', 'debt' ],
|
|
40
|
-
},
|
|
41
|
-
balanceCredit: {
|
|
42
|
-
type: Number
|
|
43
|
-
},
|
|
44
|
-
balanceCreditCurrency: {
|
|
45
|
-
type: String,
|
|
46
|
-
enum: [ 'dollar', 'inr', 'singaporedollar', 'euro' ],
|
|
47
|
-
},
|
|
48
|
-
}, {
|
|
49
|
-
strict: true,
|
|
50
|
-
versionKey: false,
|
|
51
|
-
timestamps: true,
|
|
52
|
-
}
|
|
53
|
-
)
|
|
54
|
-
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
|
|
3
|
+
const transactionSchema = new mongoose.Schema(
|
|
4
|
+
{
|
|
5
|
+
clientId: {
|
|
6
|
+
type: String
|
|
7
|
+
},
|
|
8
|
+
orderId: {
|
|
9
|
+
type: String
|
|
10
|
+
},
|
|
11
|
+
paymentId: {
|
|
12
|
+
type: String
|
|
13
|
+
},
|
|
14
|
+
debtType: {
|
|
15
|
+
type: String,
|
|
16
|
+
enum: [ 'wallet', 'razor' ],
|
|
17
|
+
},
|
|
18
|
+
billingDate: {
|
|
19
|
+
type: Date
|
|
20
|
+
},
|
|
21
|
+
invoice: {
|
|
22
|
+
type: String
|
|
23
|
+
},
|
|
24
|
+
groupName: {
|
|
25
|
+
type: String
|
|
26
|
+
},
|
|
27
|
+
groupId: {
|
|
28
|
+
type: mongoose.Types.ObjectId
|
|
29
|
+
},
|
|
30
|
+
amount: {
|
|
31
|
+
type: Number
|
|
32
|
+
},
|
|
33
|
+
currency: {
|
|
34
|
+
type: String,
|
|
35
|
+
enum: [ 'dollar', 'inr', 'singaporedollar', 'euro', 'aed' ],
|
|
36
|
+
},
|
|
37
|
+
transactionType: {
|
|
38
|
+
type: String,
|
|
39
|
+
enum: [ 'credit', 'debt' ],
|
|
40
|
+
},
|
|
41
|
+
balanceCredit: {
|
|
42
|
+
type: Number
|
|
43
|
+
},
|
|
44
|
+
balanceCreditCurrency: {
|
|
45
|
+
type: String,
|
|
46
|
+
enum: [ 'dollar', 'inr', 'singaporedollar', 'euro', 'aed' ],
|
|
47
|
+
},
|
|
48
|
+
}, {
|
|
49
|
+
strict: true,
|
|
50
|
+
versionKey: false,
|
|
51
|
+
timestamps: true,
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
|
|
55
55
|
export default mongoose.model('transaction', transactionSchema);
|