new invoice entity for dataConnect

This commit is contained in:
José Salazar
2025-11-25 14:10:51 -05:00
parent 864350b62b
commit 174845eb24
3 changed files with 127 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
mutation CreateInvoice(
$invoiceNumber: String!,
$amount: Float!,
$status: InvoiceStatus!,
$issueDate: Timestamp!,
$dueDate: Timestamp!,
$disputedItems: String,
$isAutoGenerated: Boolean
) @auth(level: USER) {
invoice_insert(
data: {
invoiceNumber: $invoiceNumber
amount: $amount
status: $status
issueDate: $issueDate
dueDate: $dueDate
disputedItems: $disputedItems
isAutoGenerated: $isAutoGenerated
}
)
}
mutation UpdateInvoice(
$id: UUID!,
$invoiceNumber: String,
$amount: Float,
$status: InvoiceStatus,
$issueDate: Timestamp,
$dueDate: Timestamp,
$disputedItems: String,
$isAutoGenerated: Boolean
) @auth(level: USER) {
invoice_update(
id: $id,
data: {
invoiceNumber: $invoiceNumber
amount: $amount
status: $status
issueDate: $issueDate
dueDate: $dueDate
disputedItems: $disputedItems
isAutoGenerated: $isAutoGenerated
}
)
}
mutation DeleteInvoice(
$id: UUID!
) @auth(level: USER) {
invoice_delete(id: $id)
}

View File

@@ -0,0 +1,50 @@
query listInvoice @auth(level: USER) {
invoices {
id
invoiceNumber
amount
status
issueDate
dueDate
isAutoGenerated
}
}
query getInvoiceById(
$id: UUID!
) @auth(level: USER) {
invoice(id: $id) {
id
invoiceNumber
amount
status
issueDate
dueDate
disputedItems
isAutoGenerated
}
}
query filterInvoices(
$invoiceNumber: String,
$status: InvoiceStatus,
$isAutoGenerated: Boolean,
$amount: Float
) @auth(level: USER) {
invoices(
where: {
invoiceNumber: { eq: $invoiceNumber }
status: { eq: $status }
isAutoGenerated: { eq: $isAutoGenerated }
amount: { eq: $amount }
}
) {
id
invoiceNumber
amount
status
issueDate
dueDate
isAutoGenerated
}
}

View File

@@ -0,0 +1,26 @@
enum InvoiceStatus {
DRAFT
PENDING_REVIEW
APPROVED
DISPUTED
UNDER_REVIEW
RESOLVED
OVERDUE
PAID
RECONCILED
CANCELLED
}
type Invoice @table(name: "invoices") {
id: UUID! @default(expr: "uuidV4()")
invoiceNumber: String!
amount: Float!
status: InvoiceStatus!
issueDate: Timestamp!
dueDate: Timestamp!
disputedItems: String
isAutoGenerated: Boolean @default(expr: "false") # is_auto_generated
createdDate: Timestamp @default(expr: "request.time")
updatedDate: Timestamp @default(expr: "request.time")
createdBy: String @default(expr: "auth.uid")
}