array( 'type' => 'string', 'description' => __( 'The venue name.', 'acrossai-abilities-manager' ), ), 'status' => array( 'type' => 'string', 'enum' => array( 'draft', 'pending', 'private', 'publish' ), 'description' => __( 'Post status.', 'acrossai-abilities-manager' ), ), 'address' => array( 'type' => 'string', 'description' => __( 'Street address.', 'acrossai-abilities-manager' ), ), 'city' => array( 'type' => 'string', 'description' => __( 'City.', 'acrossai-abilities-manager' ), ), 'state' => array( 'type' => 'string', 'description' => __( 'State or province.', 'acrossai-abilities-manager' ), ), 'zip' => array( 'type' => 'string', 'description' => __( 'Postal code.', 'acrossai-abilities-manager' ), ), 'country' => array( 'type' => 'string', 'description' => __( 'Country.', 'acrossai-abilities-manager' ), ), 'phone' => array( 'type' => 'string', 'description' => __( 'Phone number.', 'acrossai-abilities-manager' ), ), 'website' => array( 'type' => 'string', 'description' => __( 'Website URL.', 'acrossai-abilities-manager' ), ), ); } protected function required_input(): array { return array( 'title' ); } protected function output_properties(): array { return array( 'venue' => array( 'type' => 'object' ), ); } protected function annotations(): array { return array( 'readonly' => false, 'destructive' => false, 'idempotent' => false, ); } protected function run( array $input ) { $args = array(); foreach ( array( 'title' => 'venue', 'status' => 'status', 'address' => 'address', 'city' => 'city', 'state' => 'state', 'zip' => 'zip', 'country' => 'country', 'phone' => 'phone', 'website' => 'website' ) as $in => $alias ) { if ( array_key_exists( $in, $input ) ) { $args[ $alias ] = $input[ $in ]; } } if ( ! isset( $args['status'] ) ) { $args['status'] = 'draft'; } $created = Event_Repository::create( 'venue', $args ); if ( is_wp_error( $created ) ) { return $created; } return array( 'venue' => Event_Repository::describe_linked( (int) $created->ID, 'venue' ), 'message' => sprintf( /* translators: 1: name, 2: ID */ __( 'Created "%1$s" as venue %2$d.', 'acrossai-abilities-manager' ), get_the_title( (int) $created->ID ), (int) $created->ID ), ); } }