Group
Extension

Smartcat-Client/lib/Smartcat/Client/Object/ProjectModel.pm


=begin comment

Smartcat Integration API

No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)

OpenAPI spec version: v1

Generated by: https://github.com/swagger-api/swagger-codegen.git

=end comment

=cut

#
# NOTE: This class is auto generated by the swagger code generator program.
# Do not edit the class manually.
# Ref: https://github.com/swagger-api/swagger-codegen
#
package Smartcat::Client::Object::ProjectModel;

require 5.6.0;
use strict;
use warnings;
use utf8;
use JSON qw(decode_json);
use Data::Dumper;
use Module::Runtime qw(use_module);
use Log::Any qw($log);
use Date::Parse;
use DateTime;

use Smartcat::Client::Object::DocumentModel;
use Smartcat::Client::Object::ProjectWorkflowStageModel;

use base ( "Class::Accessor", "Class::Data::Inheritable" );

#
#
#
# NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually.
# REF: https://github.com/swagger-api/swagger-codegen
#

=begin comment

Smartcat Integration API

No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)

OpenAPI spec version: v1

Generated by: https://github.com/swagger-api/swagger-codegen.git

=end comment

=cut

#
# NOTE: This class is auto generated by the swagger code generator program.
# Do not edit the class manually.
# Ref: https://github.com/swagger-api/swagger-codegen
#
__PACKAGE__->mk_classdata( 'attribute_map'        => {} );
__PACKAGE__->mk_classdata( 'swagger_types'        => {} );
__PACKAGE__->mk_classdata( 'method_documentation' => {} );
__PACKAGE__->mk_classdata( 'class_documentation'  => {} );

# new object
sub new {
    my ( $class, %args ) = @_;

    my $self = bless {}, $class;

    foreach my $attribute ( keys %{ $class->attribute_map } ) {
        my $args_key = $class->attribute_map->{$attribute};
        $self->$attribute( $args{$args_key} );
    }

    return $self;
}

# return perl hash
sub to_hash {
    return decode_json( JSON->new->convert_blessed->encode(shift) );
}

# used by JSON for serialization
sub TO_JSON {
    my $self  = shift;
    my $_data = {};
    foreach my $_key ( keys %{ $self->attribute_map } ) {
        if ( defined $self->{$_key} ) {
            $_data->{ $self->attribute_map->{$_key} } = $self->{$_key};
        }
    }
    return $_data;
}

# from Perl hashref
sub from_hash {
    my ( $self, $hash ) = @_;

    # loop through attributes and use swagger_types to deserialize the data
    while ( my ( $_key, $_type ) = each %{ $self->swagger_types } ) {
        my $_json_attribute = $self->attribute_map->{$_key};
        if ( $_type =~ /^array\[/i ) {    # array
            my $_subclass = substr( $_type, 6, -1 );
            my @_array = ();
            foreach my $_element ( @{ $hash->{$_json_attribute} } ) {
                push @_array, $self->_deserialize( $_subclass, $_element );
            }
            $self->{$_key} = \@_array;
        }
        elsif ( exists $hash->{$_json_attribute} )
        {                                 #hash(model), primitive, datetime
            $self->{$_key} =
              $self->_deserialize( $_type, $hash->{$_json_attribute} );
        }
        else {
            $log->debugf( "Warning: %s (%s) does not exist in input hash\n",
                $_key, $_json_attribute );
        }
    }

    return $self;
}

# deserialize non-array data
sub _deserialize {
    my ( $self, $type, $data ) = @_;
    $log->debugf( "deserializing %s with %s", Dumper($data), $type );

    if ( $type eq 'DateTime' ) {
        return DateTime->from_epoch( epoch => str2time($data) );
    }
    elsif ( grep( /^$type$/, ( 'int', 'double', 'string', 'boolean' ) ) ) {
        return $data;
    }
    else {    # hash(model)
        my $_instance = eval "Smartcat::Client::Object::$type->new()";
        return $_instance->from_hash($data);
    }
}

__PACKAGE__->class_documentation(
    {
        description => '',
        class       => 'ProjectModel',
        required    => [],               # TODO
    }
);

__PACKAGE__->method_documentation(
    {
        'id' => {
            datatype    => 'string',
            base_name   => 'id',
            description => '',
            format      => '',
            read_only   => '',
        },
        'name' => {
            datatype    => 'string',
            base_name   => 'name',
            description => '',
            format      => '',
            read_only   => '',
        },
        'description' => {
            datatype    => 'string',
            base_name   => 'description',
            description => '',
            format      => '',
            read_only   => '',
        },
        'deadline' => {
            datatype    => 'DateTime',
            base_name   => 'deadline',
            description => '',
            format      => '',
            read_only   => '',
        },
        'creation_date' => {
            datatype    => 'DateTime',
            base_name   => 'creationDate',
            description => '',
            format      => '',
            read_only   => '',
        },
        'created_by_user_id' => {
            datatype    => 'string',
            base_name   => 'createdByUserId',
            description => '',
            format      => '',
            read_only   => '',
        },
        'modification_date' => {
            datatype    => 'DateTime',
            base_name   => 'modificationDate',
            description => '',
            format      => '',
            read_only   => '',
        },
        'source_language' => {
            datatype    => 'string',
            base_name   => 'sourceLanguage',
            description => '',
            format      => '',
            read_only   => '',
        },
        'target_languages' => {
            datatype    => 'ARRAY[string]',
            base_name   => 'targetLanguages',
            description => '',
            format      => '',
            read_only   => '',
        },
        'status' => {
            datatype    => 'string',
            base_name   => 'status',
            description => '',
            format      => '',
            read_only   => '',
        },
        'status_modification_date' => {
            datatype    => 'DateTime',
            base_name   => 'statusModificationDate',
            description => '',
            format      => '',
            read_only   => '',
        },
        'domain_id' => {
            datatype    => 'int',
            base_name   => 'domainId',
            description => '',
            format      => '',
            read_only   => '',
        },
        'client_id' => {
            datatype    => 'string',
            base_name   => 'clientId',
            description => '',
            format      => '',
            read_only   => '',
        },
        'vendor_account_id' => {
            datatype    => 'string',
            base_name   => 'vendorAccountId',
            description => '',
            format      => '',
            read_only   => '',
        },
        'workflow_stages' => {
            datatype    => 'ARRAY[ProjectWorkflowStageModel]',
            base_name   => 'workflowStages',
            description => '',
            format      => '',
            read_only   => '',
        },
        'documents' => {
            datatype    => 'ARRAY[DocumentModel]',
            base_name   => 'documents',
            description => '',
            format      => '',
            read_only   => '',
        },
        'external_tag' => {
            datatype    => 'string',
            base_name   => 'externalTag',
            description => '',
            format      => '',
            read_only   => '',
        },
    }
);

__PACKAGE__->swagger_types(
    {
        'id'                       => 'string',
        'name'                     => 'string',
        'description'              => 'string',
        'deadline'                 => 'DateTime',
        'creation_date'            => 'DateTime',
        'created_by_user_id'       => 'string',
        'modification_date'        => 'DateTime',
        'source_language'          => 'string',
        'target_languages'         => 'ARRAY[string]',
        'status'                   => 'string',
        'status_modification_date' => 'DateTime',
        'domain_id'                => 'int',
        'client_id'                => 'string',
        'vendor_account_id'        => 'string',
        'workflow_stages'          => 'ARRAY[ProjectWorkflowStageModel]',
        'documents'                => 'ARRAY[DocumentModel]',
        'external_tag'             => 'string'
    }
);

__PACKAGE__->attribute_map(
    {
        'id'                       => 'id',
        'name'                     => 'name',
        'description'              => 'description',
        'deadline'                 => 'deadline',
        'creation_date'            => 'creationDate',
        'created_by_user_id'       => 'createdByUserId',
        'modification_date'        => 'modificationDate',
        'source_language'          => 'sourceLanguage',
        'target_languages'         => 'targetLanguages',
        'status'                   => 'status',
        'status_modification_date' => 'statusModificationDate',
        'domain_id'                => 'domainId',
        'client_id'                => 'clientId',
        'vendor_account_id'        => 'vendorAccountId',
        'workflow_stages'          => 'workflowStages',
        'documents'                => 'documents',
        'external_tag'             => 'externalTag'
    }
);

__PACKAGE__->mk_accessors( keys %{ __PACKAGE__->attribute_map } );

1;


Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.