mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-17 12:42:15 +01:00
Compare commits
1 Commits
feature/bi
...
3fd632fbdc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3fd632fbdc |
@@ -80,10 +80,6 @@ class PermissionStore
|
|||||||
'invoices:update',
|
'invoices:update',
|
||||||
'invoices:download',
|
'invoices:download',
|
||||||
'invoices:delete',
|
'invoices:delete',
|
||||||
'invoice-recipients:view',
|
|
||||||
'invoice-recipients:create',
|
|
||||||
'invoice-recipients:update',
|
|
||||||
'invoice-recipients:delete',
|
|
||||||
'invoice-settings:view',
|
'invoice-settings:view',
|
||||||
'invoice-settings:update',
|
'invoice-settings:update',
|
||||||
],
|
],
|
||||||
@@ -151,10 +147,6 @@ class PermissionStore
|
|||||||
'invoices:update',
|
'invoices:update',
|
||||||
'invoices:download',
|
'invoices:download',
|
||||||
'invoices:delete',
|
'invoices:delete',
|
||||||
'invoice-recipients:view',
|
|
||||||
'invoice-recipients:create',
|
|
||||||
'invoice-recipients:update',
|
|
||||||
'invoice-recipients:delete',
|
|
||||||
'invoice-settings:view',
|
'invoice-settings:view',
|
||||||
'invoice-settings:update',
|
'invoice-settings:update',
|
||||||
],
|
],
|
||||||
@@ -211,10 +203,6 @@ class PermissionStore
|
|||||||
'invoices:update',
|
'invoices:update',
|
||||||
'invoices:download',
|
'invoices:download',
|
||||||
'invoices:delete',
|
'invoices:delete',
|
||||||
'invoice-recipients:view',
|
|
||||||
'invoice-recipients:create',
|
|
||||||
'invoice-recipients:update',
|
|
||||||
'invoice-recipients:delete',
|
|
||||||
'invoice-settings:view',
|
'invoice-settings:view',
|
||||||
'invoice-settings:update',
|
'invoice-settings:update',
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -9,9 +9,9 @@
|
|||||||
"ext-zip": "*",
|
"ext-zip": "*",
|
||||||
"brick/money": "^0.10.0",
|
"brick/money": "^0.10.0",
|
||||||
"datomatic/laravel-enum-helper": "^2.0.0",
|
"datomatic/laravel-enum-helper": "^2.0.0",
|
||||||
"dedoc/scramble": "^0.12.2",
|
"dedoc/scramble": "^0.13.35",
|
||||||
"filament/filament": "^3.2",
|
"filament/filament": "^3.2",
|
||||||
"flowframe/laravel-trend": "^0.4.0",
|
"flowframe/laravel-trend": "^0.5.0",
|
||||||
"gotenberg/gotenberg-php": "^2.8",
|
"gotenberg/gotenberg-php": "^2.8",
|
||||||
"guzzlehttp/guzzle": "^7.2",
|
"guzzlehttp/guzzle": "^7.2",
|
||||||
"inertiajs/inertia-laravel": "^2.0.3",
|
"inertiajs/inertia-laravel": "^2.0.3",
|
||||||
|
|||||||
886
composer.lock
generated
886
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"Billing": {
|
"Billing": {
|
||||||
"repository": "solidtime-io/extension-billing",
|
"repository": "solidtime-io/extension-billing",
|
||||||
"ref": "v0.0.4"
|
"ref": "v0.0.3"
|
||||||
},
|
},
|
||||||
"Services": {
|
"Services": {
|
||||||
"repository": "solidtime-io/extension-services",
|
"repository": "solidtime-io/extension-services",
|
||||||
@@ -9,6 +9,6 @@
|
|||||||
},
|
},
|
||||||
"Invoicing": {
|
"Invoicing": {
|
||||||
"repository": "solidtime-io/extension-invoicing",
|
"repository": "solidtime-io/extension-invoicing",
|
||||||
"ref": "feature/recipients"
|
"ref": "v0.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,8 +117,6 @@ export type DetailedInvoiceResponse = ZodiosResponseByAlias<SolidTimeApi, 'getIn
|
|||||||
export type DetailedInvoice = DetailedInvoiceResponse['data'];
|
export type DetailedInvoice = DetailedInvoiceResponse['data'];
|
||||||
|
|
||||||
export type InvoiceIndexEntry = ZodiosResponseByAlias<SolidTimeApi, 'getInvoices'>['data'][0];
|
export type InvoiceIndexEntry = ZodiosResponseByAlias<SolidTimeApi, 'getInvoices'>['data'][0];
|
||||||
export type InvoiceRecipient = ZodiosResponseByAlias<SolidTimeApi, 'getInvoiceRecipients'>['data'][0];
|
|
||||||
export type InvoiceRecipientBody = ZodiosBodyByAlias<SolidTimeApi, 'createInvoiceRecipient'>;
|
|
||||||
|
|
||||||
export type UpdateInvoiceSettings = ZodiosBodyByAlias<SolidTimeApi, 'updateInvoiceSettings'>;
|
export type UpdateInvoiceSettings = ZodiosBodyByAlias<SolidTimeApi, 'updateInvoiceSettings'>;
|
||||||
|
|
||||||
|
|||||||
@@ -45,54 +45,14 @@ const InvitationResource = z
|
|||||||
const InvitationStoreRequest = z
|
const InvitationStoreRequest = z
|
||||||
.object({ email: z.string().email(), role: z.enum(['admin', 'manager', 'employee']) })
|
.object({ email: z.string().email(), role: z.enum(['admin', 'manager', 'employee']) })
|
||||||
.passthrough();
|
.passthrough();
|
||||||
const InvoiceRecipientResource = z
|
|
||||||
.object({
|
|
||||||
id: z.string(),
|
|
||||||
organization_id: z.string(),
|
|
||||||
name: z.string(),
|
|
||||||
vatin: z.union([z.string(), z.null()]),
|
|
||||||
address_line_1: z.union([z.string(), z.null()]),
|
|
||||||
address_line_2: z.union([z.string(), z.null()]),
|
|
||||||
address_line_3: z.union([z.string(), z.null()]),
|
|
||||||
address_post_code: z.union([z.string(), z.null()]),
|
|
||||||
address_city: z.union([z.string(), z.null()]),
|
|
||||||
address_country: z.union([z.string(), z.null()]),
|
|
||||||
phone: z.union([z.string(), z.null()]),
|
|
||||||
email: z.union([z.string(), z.null()]),
|
|
||||||
is_archived: z.boolean(),
|
|
||||||
archived_at: z.union([z.string(), z.null()]),
|
|
||||||
invoices_count: z.number().int(),
|
|
||||||
has_non_draft_invoices: z.boolean(),
|
|
||||||
created_at: z.union([z.string(), z.null()]),
|
|
||||||
updated_at: z.union([z.string(), z.null()]),
|
|
||||||
})
|
|
||||||
.passthrough();
|
|
||||||
const InvoiceRecipientCollection = z.array(InvoiceRecipientResource);
|
|
||||||
const InvoiceRecipientRequest = z
|
|
||||||
.object({
|
|
||||||
name: z.string(),
|
|
||||||
vatin: z.union([z.string(), z.null()]).optional(),
|
|
||||||
address_line_1: z.union([z.string(), z.null()]).optional(),
|
|
||||||
address_line_2: z.union([z.string(), z.null()]).optional(),
|
|
||||||
address_line_3: z.union([z.string(), z.null()]).optional(),
|
|
||||||
address_post_code: z.union([z.string(), z.null()]).optional(),
|
|
||||||
address_city: z.union([z.string(), z.null()]).optional(),
|
|
||||||
address_country: z.union([z.string(), z.null()]).optional(),
|
|
||||||
phone: z.union([z.string(), z.null()]).optional(),
|
|
||||||
email: z.union([z.string(), z.null()]).optional(),
|
|
||||||
is_archived: z.boolean().optional(),
|
|
||||||
})
|
|
||||||
.passthrough();
|
|
||||||
const InvoiceResource = z
|
const InvoiceResource = z
|
||||||
.object({
|
.object({
|
||||||
id: z.string(),
|
id: z.string(),
|
||||||
organization_id: z.string(),
|
organization_id: z.string(),
|
||||||
invoice_recipient_id: z.string(),
|
|
||||||
reference: z.string(),
|
reference: z.string(),
|
||||||
seller_name: z.string(),
|
seller_name: z.string(),
|
||||||
recipient: z.string(),
|
buyer_name: z.string(),
|
||||||
status: z.string(),
|
status: z.string(),
|
||||||
status_label: z.string(),
|
|
||||||
date: z.string(),
|
date: z.string(),
|
||||||
due_at: z.string(),
|
due_at: z.string(),
|
||||||
paid_date: z.string(),
|
paid_date: z.string(),
|
||||||
@@ -116,7 +76,16 @@ const InvoiceStoreRequest = z
|
|||||||
seller_address_country: z.union([z.string(), z.null()]).optional(),
|
seller_address_country: z.union([z.string(), z.null()]).optional(),
|
||||||
seller_phone: z.union([z.string(), z.null()]).optional(),
|
seller_phone: z.union([z.string(), z.null()]).optional(),
|
||||||
seller_email: z.union([z.string(), z.null()]).optional(),
|
seller_email: z.union([z.string(), z.null()]).optional(),
|
||||||
invoice_recipient_id: z.string(),
|
buyer_name: z.string(),
|
||||||
|
buyer_vatin: z.union([z.string(), z.null()]).optional(),
|
||||||
|
buyer_address_line_1: z.union([z.string(), z.null()]).optional(),
|
||||||
|
buyer_address_line_2: z.union([z.string(), z.null()]).optional(),
|
||||||
|
buyer_address_line_3: z.union([z.string(), z.null()]).optional(),
|
||||||
|
buyer_address_post_code: z.union([z.string(), z.null()]).optional(),
|
||||||
|
buyer_address_city: z.union([z.string(), z.null()]).optional(),
|
||||||
|
buyer_address_country: z.union([z.string(), z.null()]).optional(),
|
||||||
|
buyer_phone: z.union([z.string(), z.null()]).optional(),
|
||||||
|
buyer_email: z.union([z.string(), z.null()]).optional(),
|
||||||
date: z.string(),
|
date: z.string(),
|
||||||
billing_period_start: z.union([z.string(), z.null()]).optional(),
|
billing_period_start: z.union([z.string(), z.null()]).optional(),
|
||||||
billing_period_end: z.union([z.string(), z.null()]).optional(),
|
billing_period_end: z.union([z.string(), z.null()]).optional(),
|
||||||
@@ -161,7 +130,6 @@ const DetailedInvoiceResource = z
|
|||||||
.object({
|
.object({
|
||||||
id: z.string(),
|
id: z.string(),
|
||||||
organization_id: z.string(),
|
organization_id: z.string(),
|
||||||
invoice_recipient_id: z.string(),
|
|
||||||
reference: z.string(),
|
reference: z.string(),
|
||||||
seller_name: z.string(),
|
seller_name: z.string(),
|
||||||
seller_vatin: z.string(),
|
seller_vatin: z.string(),
|
||||||
@@ -173,7 +141,16 @@ const DetailedInvoiceResource = z
|
|||||||
seller_address_country: z.string(),
|
seller_address_country: z.string(),
|
||||||
seller_phone: z.string(),
|
seller_phone: z.string(),
|
||||||
seller_email: z.string(),
|
seller_email: z.string(),
|
||||||
recipient: InvoiceRecipientResource,
|
buyer_name: z.string(),
|
||||||
|
buyer_vatin: z.string(),
|
||||||
|
buyer_address_line_1: z.string(),
|
||||||
|
buyer_address_line_2: z.string(),
|
||||||
|
buyer_address_line_3: z.string(),
|
||||||
|
buyer_address_post_code: z.string(),
|
||||||
|
buyer_address_city: z.string(),
|
||||||
|
buyer_address_country: z.string(),
|
||||||
|
buyer_phone: z.string(),
|
||||||
|
buyer_email: z.string(),
|
||||||
paid_date: z.string(),
|
paid_date: z.string(),
|
||||||
due_at: z.string(),
|
due_at: z.string(),
|
||||||
discount_type: z.string(),
|
discount_type: z.string(),
|
||||||
@@ -194,7 +171,7 @@ const DetailedInvoiceResource = z
|
|||||||
entries: z.array(InvoiceEntryResource),
|
entries: z.array(InvoiceEntryResource),
|
||||||
})
|
})
|
||||||
.passthrough();
|
.passthrough();
|
||||||
const InvoiceStatus = z.enum(['draft', 'sent', 'paid', 'cancelled']);
|
const InvoiceStatus = z.enum(['draft', 'sent', 'cancelled']);
|
||||||
const InvoiceUpdateRequest = z
|
const InvoiceUpdateRequest = z
|
||||||
.object({
|
.object({
|
||||||
status: InvoiceStatus,
|
status: InvoiceStatus,
|
||||||
@@ -210,7 +187,16 @@ const InvoiceUpdateRequest = z
|
|||||||
seller_address_country: z.union([z.string(), z.null()]),
|
seller_address_country: z.union([z.string(), z.null()]),
|
||||||
seller_phone: z.union([z.string(), z.null()]),
|
seller_phone: z.union([z.string(), z.null()]),
|
||||||
seller_email: z.union([z.string(), z.null()]),
|
seller_email: z.union([z.string(), z.null()]),
|
||||||
invoice_recipient_id: z.string(),
|
buyer_name: z.string(),
|
||||||
|
buyer_vatin: z.union([z.string(), z.null()]),
|
||||||
|
buyer_address_line_1: z.union([z.string(), z.null()]),
|
||||||
|
buyer_address_line_2: z.union([z.string(), z.null()]),
|
||||||
|
buyer_address_line_3: z.union([z.string(), z.null()]),
|
||||||
|
buyer_address_post_code: z.union([z.string(), z.null()]),
|
||||||
|
buyer_address_city: z.union([z.string(), z.null()]),
|
||||||
|
buyer_address_country: z.union([z.string(), z.null()]),
|
||||||
|
buyer_phone: z.union([z.string(), z.null()]),
|
||||||
|
buyer_email: z.union([z.string(), z.null()]),
|
||||||
date: z.string(),
|
date: z.string(),
|
||||||
billing_period_start: z.union([z.string(), z.null()]),
|
billing_period_start: z.union([z.string(), z.null()]),
|
||||||
billing_period_end: z.union([z.string(), z.null()]),
|
billing_period_end: z.union([z.string(), z.null()]),
|
||||||
@@ -1899,125 +1885,6 @@ const endpoints = makeApi([
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
method: 'get',
|
|
||||||
path: '/v1/organizations/:organization/invoice-recipients',
|
|
||||||
alias: 'getInvoiceRecipients',
|
|
||||||
requestFormat: 'json',
|
|
||||||
parameters: [
|
|
||||||
{
|
|
||||||
name: 'organization',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
response: z.object({ data: InvoiceRecipientCollection }).passthrough(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
method: 'post',
|
|
||||||
path: '/v1/organizations/:organization/invoice-recipients',
|
|
||||||
alias: 'createInvoiceRecipient',
|
|
||||||
requestFormat: 'json',
|
|
||||||
parameters: [
|
|
||||||
{
|
|
||||||
name: 'body',
|
|
||||||
type: 'Body',
|
|
||||||
schema: InvoiceRecipientRequest,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'organization',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
response: z.object({ data: InvoiceRecipientResource }).passthrough(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
method: 'get',
|
|
||||||
path: '/v1/organizations/:organization/invoice-recipients/:invoiceRecipient',
|
|
||||||
alias: 'getInvoiceRecipient',
|
|
||||||
requestFormat: 'json',
|
|
||||||
parameters: [
|
|
||||||
{
|
|
||||||
name: 'organization',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'invoiceRecipient',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
response: z.object({ data: InvoiceRecipientResource }).passthrough(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
method: 'put',
|
|
||||||
path: '/v1/organizations/:organization/invoice-recipients/:invoiceRecipient',
|
|
||||||
alias: 'updateInvoiceRecipient',
|
|
||||||
requestFormat: 'json',
|
|
||||||
parameters: [
|
|
||||||
{
|
|
||||||
name: 'body',
|
|
||||||
type: 'Body',
|
|
||||||
schema: InvoiceRecipientRequest,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'organization',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'invoiceRecipient',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
response: z.object({ data: InvoiceRecipientResource }).passthrough(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
method: 'post',
|
|
||||||
path: '/v1/organizations/:organization/invoice-recipients/:invoiceRecipient/duplicate',
|
|
||||||
alias: 'duplicateInvoiceRecipient',
|
|
||||||
requestFormat: 'json',
|
|
||||||
parameters: [
|
|
||||||
{
|
|
||||||
name: 'body',
|
|
||||||
type: 'Body',
|
|
||||||
schema: InvoiceRecipientRequest,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'organization',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'invoiceRecipient',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
response: z.object({ data: InvoiceRecipientResource }).passthrough(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
method: 'delete',
|
|
||||||
path: '/v1/organizations/:organization/invoice-recipients/:invoiceRecipient',
|
|
||||||
alias: 'deleteInvoiceRecipient',
|
|
||||||
requestFormat: 'json',
|
|
||||||
parameters: [
|
|
||||||
{
|
|
||||||
name: 'organization',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'invoiceRecipient',
|
|
||||||
type: 'Path',
|
|
||||||
schema: z.string(),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
response: z.void(),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
method: 'get',
|
method: 'get',
|
||||||
path: '/v1/organizations/:organization/invoices',
|
path: '/v1/organizations/:organization/invoices',
|
||||||
@@ -2034,11 +1901,6 @@ const endpoints = makeApi([
|
|||||||
type: 'Query',
|
type: 'Query',
|
||||||
schema: z.number().int().gte(1).lte(2147483647).optional(),
|
schema: z.number().int().gte(1).lte(2147483647).optional(),
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: 'status',
|
|
||||||
type: 'Query',
|
|
||||||
schema: InvoiceStatus.optional(),
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
response: z.object({ data: InvoiceCollection }).passthrough(),
|
response: z.object({ data: InvoiceCollection }).passthrough(),
|
||||||
errors: [
|
errors: [
|
||||||
|
|||||||
Reference in New Issue
Block a user