208 lines
3.5 KiB
Dart
208 lines
3.5 KiB
Dart
import 'package:krow/core/application/clients/api/gql.dart';
|
|
|
|
const String _shiftFields = '''
|
|
id
|
|
status
|
|
status_updated_at
|
|
start_at
|
|
end_at
|
|
clock_in
|
|
clock_out
|
|
break_in
|
|
break_out
|
|
...position
|
|
cancel_reason {
|
|
type
|
|
reason
|
|
details
|
|
}
|
|
rating {
|
|
id
|
|
rating
|
|
}
|
|
''';
|
|
|
|
const String getShiftsQuery = '''
|
|
$_positionFragment
|
|
|
|
query GetShifts (\$status: EventShiftPositionStaffStatusInput!, \$first: Int!, \$after: String) {
|
|
staff_shifts(status: \$status, first: \$first, after: \$after) {
|
|
pageInfo {
|
|
hasNextPage
|
|
}
|
|
edges {
|
|
node {
|
|
$_shiftFields
|
|
}
|
|
cursor
|
|
}
|
|
}
|
|
}
|
|
|
|
''';
|
|
|
|
const String staffNoBreakShifts = '''
|
|
$_positionFragment
|
|
|
|
query staffNoBreakShifts (\$first: Int!) {
|
|
staff_no_break_shifts(first: \$first) {
|
|
pageInfo{
|
|
}
|
|
edges {
|
|
|
|
node {
|
|
$_shiftFields
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
''';
|
|
|
|
const String getShiftPositionQuery = '''
|
|
$_positionFragment
|
|
query GetShiftPosition (\$id: ID!) {
|
|
staff_shift(id: \$id) {
|
|
$_shiftFields
|
|
}
|
|
}
|
|
''';
|
|
|
|
const String acceptShiftMutation = '''
|
|
$_positionFragment
|
|
|
|
mutation AcceptShift(\$id: ID!) {
|
|
accept_shift(position_id: \$id) {
|
|
$_shiftFields
|
|
}
|
|
}
|
|
''';
|
|
|
|
const String trackStaffClockin = '''
|
|
mutation TrackStaffClockin(\$id: ID!) {
|
|
track_staff_clockin(position_staff_id: \$id) {
|
|
|
|
}
|
|
}
|
|
''';
|
|
|
|
const String completeShiftMutation = '''
|
|
mutation CompleteShift(\$id: ID!, \$break_in: DateTime, \$break_out: DateTime) {
|
|
track_staff_clockout(position_staff_id: \$id, break_in: \$break_in, break_out: \$break_out) {
|
|
}
|
|
}
|
|
''';
|
|
|
|
const String trackStaffBreak = '''
|
|
mutation trackStaffBreak(\$id: ID!, \$break_in: DateTime!, \$break_out: DateTime!) {
|
|
track_staff_break(position_staff_id: \$id, break_in: \$break_in, break_out: \$break_out) {
|
|
}
|
|
}
|
|
''';
|
|
|
|
const String submitNoBreakStaffShiftMutation = '''
|
|
mutation SubmitNoBreakStaffShift(\$id: ID!, \$reason: NoBreakShiftPenaltyLogReason, \$details: String) {
|
|
submit_no_break_staff_shift(position_staff_id: \$id, reason: \$reason, details: \$details) {
|
|
}
|
|
}
|
|
''';
|
|
|
|
const String cancelStaffShiftMutation = '''
|
|
|
|
mutation cancelStaffShiftMutation(\$position_id: ID!, \$reason: CancelShiftPenaltyLogReason, \$details: String) {
|
|
cancel_staff_shift(position_staff_id: \$position_id, reason: \$reason, details: \$details) {
|
|
}
|
|
}
|
|
''';
|
|
|
|
const String declineStaffShiftMutation = '''
|
|
mutation DeclineStaffShift(\$position_id: ID!,\$reason: DeclineShiftPenaltyLogReason, \$details: String) {
|
|
decline_shift(position_id: \$position_id, reason: \$reason, details: \$details) {
|
|
}
|
|
}
|
|
''';
|
|
|
|
const _positionFragment = '''
|
|
$skillFragment
|
|
|
|
fragment position on EventShiftPositionStaff {
|
|
position {
|
|
id
|
|
start_time
|
|
end_time
|
|
rate
|
|
break
|
|
...shift
|
|
...business_skill
|
|
}
|
|
}
|
|
|
|
fragment shift on EventShiftPosition {
|
|
shift {
|
|
id
|
|
name
|
|
address
|
|
...FullAddress
|
|
...contacts
|
|
event {
|
|
id
|
|
date
|
|
name
|
|
...business
|
|
additional_info
|
|
tags{
|
|
id
|
|
name
|
|
slug
|
|
}
|
|
addons{
|
|
name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fragment business_skill on EventShiftPosition {
|
|
business_skill {
|
|
skill {
|
|
...SkillFragment
|
|
}
|
|
}
|
|
}
|
|
|
|
fragment business on Event {
|
|
business {
|
|
name
|
|
avatar
|
|
}
|
|
}
|
|
|
|
fragment contacts on EventShift {
|
|
contacts {
|
|
id
|
|
first_name
|
|
last_name
|
|
avatar
|
|
title
|
|
auth_info {
|
|
email
|
|
phone
|
|
}
|
|
}
|
|
}
|
|
|
|
fragment FullAddress on EventShift {
|
|
full_address {
|
|
street_number
|
|
zip_code
|
|
latitude
|
|
longitude
|
|
formatted_address
|
|
street
|
|
region
|
|
city
|
|
country
|
|
}
|
|
}
|
|
''';
|