@accounter/server
Version:
Accounter GraphQL server
129 lines (103 loc) • 2.75 kB
text/typescript
import { gql } from 'graphql-modules';
export default gql`
extend type Query {
financialEntity(id: UUID!): FinancialEntity! @requiresAuth
" TODO: This is temporary, should be replaced after auth and financial entities hierarchy is implemented "
allFinancialEntities(page: Int, limit: Int): PaginatedFinancialEntities @requiresAuth
}
" response for paginated Financial Entities "
type PaginatedFinancialEntities {
nodes: [FinancialEntity!]!
pageInfo: PageInfo!
}
" represent a financial entity of any type, including businesses, tax categories, etc. "
interface FinancialEntity {
id: UUID!
ownerId: UUID
name: String!
irsCode: Int
createdAt: DateTime!
updatedAt: DateTime!
isActive: Boolean!
}
extend interface Charge {
" calculated counterparty details for the charge "
counterparty: FinancialEntity
}
extend type CommonCharge {
counterparty: FinancialEntity
}
extend type FinancialCharge {
counterparty: FinancialEntity
}
extend type ConversionCharge {
counterparty: FinancialEntity
}
extend type SalaryCharge {
counterparty: FinancialEntity
}
extend type InternalTransferCharge {
counterparty: FinancialEntity
}
extend type DividendCharge {
counterparty: FinancialEntity
}
extend type BusinessTripCharge {
counterparty: FinancialEntity
}
extend type MonthlyVatCharge {
counterparty: FinancialEntity
}
extend type BankDepositCharge {
counterparty: FinancialEntity
}
extend type ForeignSecuritiesCharge {
counterparty: FinancialEntity
}
extend type CreditcardBankCharge {
counterparty: FinancialEntity
}
extend input UpdateChargeInput {
counterpartyId: UUID
}
extend interface Transaction {
" calculated counterparty details for the charge "
counterparty: FinancialEntity
}
extend type CommonTransaction {
counterparty: FinancialEntity
}
extend type ConversionTransaction {
counterparty: FinancialEntity
}
extend interface FinancialDocument {
creditor: FinancialEntity
debtor: FinancialEntity
}
extend type Invoice {
creditor: FinancialEntity
debtor: FinancialEntity
}
extend type Proforma {
creditor: FinancialEntity
debtor: FinancialEntity
}
extend type Receipt {
creditor: FinancialEntity
debtor: FinancialEntity
}
extend type InvoiceReceipt {
creditor: FinancialEntity
debtor: FinancialEntity
}
extend type CreditInvoice {
creditor: FinancialEntity
debtor: FinancialEntity
}
extend type LedgerRecord {
debitAccount1: FinancialEntity
debitAccount2: FinancialEntity
creditAccount1: FinancialEntity
creditAccount2: FinancialEntity
}
`;