diff --git a/dataconnect/connector/dataconnect.yaml b/dataconnect/connector/dataconnect.yaml new file mode 100644 index 00000000..881c9248 --- /dev/null +++ b/dataconnect/connector/dataconnect.yaml @@ -0,0 +1,13 @@ +specVersion: "v1" +serviceId: "krow-workforce" +location: "us-central1" +schema: + source: "./schema" + datasource: + postgresql: + database: "fdcdb" + cloudSql: + instanceId: "krow-workforce-fdc" + # schemaValidation: "STRICT" # STRICT mode makes Postgres schema match Data Connect exactly. + # schemaValidation: "COMPATIBLE" # COMPATIBLE mode makes Postgres schema compatible with Data Connect. +connectorDirs: ["./example"] diff --git a/dataconnect/dataconnect.yaml b/dataconnect/dataconnect.yaml index 881c9248..42790982 100644 --- a/dataconnect/dataconnect.yaml +++ b/dataconnect/dataconnect.yaml @@ -10,4 +10,4 @@ schema: instanceId: "krow-workforce-fdc" # schemaValidation: "STRICT" # STRICT mode makes Postgres schema match Data Connect exactly. # schemaValidation: "COMPATIBLE" # COMPATIBLE mode makes Postgres schema compatible with Data Connect. -connectorDirs: ["./example"] +connectorDirs: ["./connector"] diff --git a/dataconnect/schema/schema.gql b/dataconnect/example/schema.gql similarity index 100% rename from dataconnect/schema/schema.gql rename to dataconnect/example/schema.gql diff --git a/dataconnect/schema/event.gql b/dataconnect/schema/event.gql new file mode 100644 index 00000000..bcb3cdc2 --- /dev/null +++ b/dataconnect/schema/event.gql @@ -0,0 +1,74 @@ +scalar UUID +scalar Timestamp +scalar JSON + +enum EventStatus { + DRAFT + ACTIVE + PENDING + ASSIGNED + CONFIRMED + COMPLETED + CANCELED +} + +enum RecurrenceType { + SINGLE + DATE_RANGE + SCATTER +} + +type Event @table(name: "events") { + + id: UUID! @default(expr: "uuidV4()") + eventName: String! + isRecurring: Boolean! + recurrenceType: RecurrenceType + businessId: UUID! + vendorId: UUID + status: EventStatus! + date: Timestamp! + shifts: JSON @col(dataType: "jsonb") + total: Float + requested: Int + assignedStaff: JSON @col(dataType: "jsonb") + createdDate: Timestamp @default(expr: "now()") + updatedDate: Timestamp @updatedAt + createdBy: String + +} + +input CreateEventInput { + eventName: String! + isRecurring: Boolean! + recurrenceType: RecurrenceType + businessId: UUID! + vendorId: UUID + status: EventStatus! + date: Timestamp! + shifts: JSON + total: Float + requested: Int + assignedStaff: JSON +} + +query listEvents @auth(level: USER) { + events { + id + eventName + status + date + isRecurring + recurrenceType + businessId + vendorId + total + requested + } +} + +mutation createEvent($input: CreateEventInput!) @auth(level: USER) { + event_insert(data: $input) { + id + } +}