src/AppBundle/MainBundle/Entity/User.php line 1601

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: apple
  5.  * Date: 30/10/18
  6.  * Time: 11:35 AM
  7.  */
  8. namespace App\AppBundle\MainBundle\Entity;
  9. use App\AppBundle\MainBundle\Constants\SpotStatus;
  10. use Doctrine\Common\Collections\ArrayCollection;
  11. use Doctrine\Common\Collections\Criteria;
  12. use Doctrine\ORM\Mapping as ORM;
  13. use Symfony\Component\Validator\Constraints as Assert;
  14. use JsonSerializable;
  15. /**
  16.  * AddOns
  17.  *
  18.  * @ORM\Entity(repositoryClass="App\AppBundle\MainBundle\Repository\UserRepository")
  19.  * @ORM\Table(name="user")
  20.  * @ORM\HasLifecycleCallbacks()
  21.  */
  22. class User implements JsonSerializable
  23. {
  24.     /**
  25.      * @ORM\Column(type="integer")
  26.      * @ORM\Id
  27.      * @ORM\GeneratedValue(strategy="AUTO")
  28.      */
  29.     private $id;
  30.     /**
  31.      * @var User_Stripe_Details
  32.      * @ORM\OneToOne(targetEntity="User_Stripe_Details", mappedBy="user")
  33.      */
  34.     private $user_stripe_details;
  35.     /**
  36.      * @ORM\Column(type="string", nullable=false)
  37.      * @Assert\NotBlank()
  38.      */
  39.     private $first_name;
  40.     /**
  41.      * @ORM\Column(type="string", nullable=false)
  42.      * @Assert\NotBlank()
  43.      */
  44.     private $last_name;
  45.     /**
  46.      * @ORM\Column(type="string", nullable=false)
  47.      * @Assert\NotBlank()
  48.      */
  49.     private $email;
  50.     /**
  51.      * @ORM\Column(type="string", nullable=false)
  52.      */
  53.     private $mobile;
  54.     /**
  55.      * @ORM\Column(type="string", nullable=true)
  56.      */
  57.     private $password;
  58.     /**
  59.      * @ORM\Column(type="integer", nullable=false)
  60.      * @Assert\NotBlank()
  61.      */
  62.     private $login_type 0;//0 - Default, 1 - Facebook, 2 - Google, 3 - Apple
  63.     /**
  64.      * @ORM\Column(type="integer", nullable=false)
  65.      * @Assert\NotBlank()
  66.      */
  67.     private $pu_login_process_steps 0;//0-Select Roles, 1 - Profile Screen, 2 - Add Vehicle, 3 - Add Payment Methods, 4 - Parking User Home
  68.     /**
  69.      * @ORM\Column(type="boolean", nullable=false)
  70.      * @Assert\NotBlank()
  71.      */
  72.     private $is_mobile_verified false;
  73.     /**
  74.      * @ORM\Column(type="integer", nullable=false)
  75.      * @Assert\NotBlank()
  76.      */
  77.     private $active_user_role 1;//0 - Not Yet Set, 1 - Park User, 2 - Park Supplier
  78.     /**
  79.      * @var \DateTime
  80.      * @ORM\Column(type="date", nullable=true)
  81.      */
  82.     private $dob;
  83.     /**
  84.      * @ORM\Column(type="string", nullable=true)
  85.      */
  86.     private $gender;
  87.     /**
  88.      * @ORM\Column(type="boolean", nullable=false)
  89.      */
  90.     private $is_profile_complete false;
  91.     /**
  92.      * @var string
  93.      * @ORM\Column(type="string", nullable=true)
  94.      */
  95.     private $password_change_date;
  96.     /**
  97.      * @ORM\Column(type="string", nullable=true)
  98.      */
  99.     private $reset_code;
  100.     /**
  101.      * @ORM\Column(type="string", nullable=true)
  102.      */
  103.     private $reset_code_start_timestamp;
  104.     /**
  105.      * @ORM\Column(type="string", nullable=true)
  106.      */
  107.     private $reset_password_token;
  108.     /**
  109.      * @ORM\Column(type="string", nullable=true)
  110.      */
  111.     private $country_code;
  112.     /**
  113.      * @ORM\Column(type="string", nullable=true)
  114.      */
  115.     private $profile_pic_url;
  116.     /**
  117.      * @ORM\Column(type="string", nullable=true)
  118.      */
  119.     private $social_profile_id;
  120.     /**
  121.      * @ORM\Column(type="string", nullable=true)
  122.      */
  123.     private $social_media_profile_pic_url;
  124.     /**
  125.      * @ORM\Column(type="string", nullable=false)
  126.      */
  127.     private $invite_code;
  128.     /**
  129.      * @ORM\Column(type="boolean", nullable=true, options={"default" : 1})
  130.      */
  131.     private $is_new_user;
  132.     /**
  133.      * @ORM\Column(type="boolean", nullable=true, options={"default" : 1})
  134.      */
  135.     private $is_active;
  136.     /**
  137.      * One user has many tokens. This is the inverse side.
  138.      * @ORM\OneToMany(targetEntity="Token", mappedBy="user")
  139.      */
  140.     private $tokens;
  141.     /**
  142.      * @var WP_TimeZone
  143.      * @ORM\ManyToOne(targetEntity="WP_TimeZone")
  144.      * @ORM\JoinColumn(name="timezone_id", referencedColumnName="id")
  145.      */
  146.     private $timezone;
  147.     /**
  148.      * @var WP_Time_Format
  149.      * @ORM\ManyToOne(targetEntity="WP_Time_Format")
  150.      * @ORM\JoinColumn(name="time_format_id", referencedColumnName="id")
  151.      */
  152.     private $time_format;
  153.     /**
  154.      * @var WP_Date_Format
  155.      * @ORM\ManyToOne(targetEntity="WP_Date_Format")
  156.      * @ORM\JoinColumn(name="date_format_id", referencedColumnName="id")
  157.      */
  158.     private $date_format;
  159.     /**
  160.      * @var WP_Currency
  161.      * @ORM\ManyToOne(targetEntity="WP_Currency")
  162.      * @ORM\JoinColumn(name="currency_id", referencedColumnName="id")
  163.      */
  164.     private $currency;
  165.     /**
  166.      * @var WP_Language
  167.      * @ORM\ManyToOne(targetEntity="WP_Language")
  168.      * @ORM\JoinColumn(name="language_id", referencedColumnName="id")
  169.      */
  170.     private $language;
  171.     /**
  172.      * @ORM\OneToOne(targetEntity="PU_ManageNotifications", mappedBy="user")
  173.      */
  174.     private $manage_notifications;
  175.     /**
  176.      * One user has many tokens. This is the inverse side.
  177.      * @ORM\OneToMany(targetEntity="PU_Vehicles", mappedBy="user")
  178.      */
  179.     private $vehicles;
  180.     /**
  181.      * @ORM\OneToMany(targetEntity="PS_Add_Spot", mappedBy="user")
  182.      */
  183.     private $add_spot;
  184.     /**
  185.      * One user has many tokens. This is the inverse side.
  186.      * @ORM\OneToMany(targetEntity="PU_Fav_Spots", mappedBy="user")
  187.      */
  188.     private $fav_spot;
  189.     /**
  190.      * One user has many tokens. This is the inverse side.
  191.      * @ORM\OneToMany(targetEntity="Orders", mappedBy="user")
  192.      */
  193.     private $orders;
  194.     /**
  195.      * One user has many tokens. This is the inverse side.
  196.      * @ORM\OneToMany(targetEntity="Supplier_To_User_Ratings", mappedBy="user")
  197.      */
  198.     private $supplier_to_user_ratings;
  199.     /**
  200.      * One user has many tokens. This is the inverse side.
  201.      * @ORM\OneToMany(targetEntity="User_Spot_Reviews", mappedBy="user")
  202.      */
  203.     private $user_spot_reviews;
  204.     /**
  205.      * @var \DateTime
  206.      * @ORM\Column(type="datetime", nullable=false)
  207.      */
  208.     private $last_active_date;
  209.     /**
  210.      * @var \DateTime
  211.      * @ORM\Column(type="datetime", nullable=false)
  212.      */
  213.     private $user_register_date;
  214.     /**
  215.      * @var WP_Distance
  216.      * @ORM\ManyToOne(targetEntity="WP_Distance")
  217.      * @ORM\JoinColumn(name="distance_id", referencedColumnName="id")
  218.      */
  219.     private $distance;
  220.     /**
  221.      * @ORM\Column(type="boolean", nullable=false, options={"default" : 0})
  222.      */
  223.     private $is_unsubscribed_to_email false;
  224.     private $is_seeker;
  225.     private $is_provider;
  226.     /**
  227.      * @ORM\Column(type="integer", nullable=true)
  228.      */
  229.     private $deactivate_status;//0 - Active, 1 - User Deactivate, 2 - Admin Deactivate, 3 - Reported By User To Deactivate
  230.     /**
  231.      * @var \DateTime
  232.      * @ORM\Column(type="datetime", nullable=true)
  233.      */
  234.     private $deactivate_user_date;
  235.     /**
  236.      * @ORM\Column(type="datetime", nullable=true)
  237.      */
  238.     private $activate_user_date;
  239.     /**
  240.      * @ORM\Column(type="string", nullable=true)
  241.      */
  242.     private $deactivate_reason;
  243.     /**
  244.      * @ORM\Column(type="string", nullable=true)
  245.      */
  246.     private $activate_reason;
  247.     /**
  248.      * @ORM\Column(type="string", nullable=true)
  249.      */
  250.     private $stripeCustomerId;
  251. //so - spot owner
  252.     /**
  253.      * @ORM\Column(type="decimal", precision=10, scale=2)
  254.      */
  255.     private $so_commission_rate_hourly 0;
  256.     /**
  257.      * @ORM\Column(type="decimal", precision=10, scale=2)
  258.      */
  259.     private $so_commission_rate_flexible 0;
  260.     /**
  261.      * @ORM\Column(type="decimal", precision=10, scale=2)
  262.      */
  263.     private $so_commission_rate_monthly 0;
  264.     /**
  265.      * @ORM\Column(type="decimal", precision=10, scale=2)
  266.      */
  267.     private $so_service_fee 0;
  268.     /**
  269.      * @ORM\Column(type="integer")
  270.      */
  271.     private $so_service_fee_type 0;
  272. //    /**
  273. //     * @ORM\Column(type="decimal", precision=10, scale=2)
  274. //     */
  275. //    private $so_min_service_fee = 0;
  276. //
  277. //
  278. //    /**
  279. //     * @ORM\Column(type="decimal", precision=10, scale=2)
  280. //     */
  281. //    private $so_max_service_fee = 0;
  282.     /**
  283.      * @var \DateTime
  284.      * @ORM\Column(type="date", nullable=true)
  285.      */
  286.     private $next_auto_payout_date;
  287.     /**
  288.      * @ORM\Column(type="integer", nullable=true)
  289.      */
  290.     private $auto_payout_days 0;
  291.     /**
  292.      * @ORM\Column(type="string", nullable=true)
  293.      */
  294.     private $address_line_one;
  295.     /**
  296.      * @ORM\Column(type="string", nullable=true)
  297.      */
  298.     private $address_line_two;
  299.     /**
  300.      * @ORM\Column(type="string", nullable=true)
  301.      */
  302.     private $postal_code;
  303.     /**
  304.      * @ORM\Column(type="string", nullable=true)
  305.      */
  306.     private $city;
  307.     /**
  308.      * @ORM\Column(type="string", nullable=true)
  309.      */
  310.     private $state;
  311.     /**
  312.      * @ORM\Column(type="string", nullable=true)
  313.      */
  314.     private $country;
  315.     /**
  316.      * @ORM\Column(type="boolean", nullable=false)
  317.      */
  318.     private $is_user_consumed_referral false;
  319.     /**
  320.      * @return mixed
  321.      */
  322.     public function getId()
  323.     {
  324.         return $this->id;
  325.     }
  326.     /**
  327.      * @return User_Stripe_Details
  328.      */
  329.     public function getUserStripeDetails()
  330.     {
  331.         return $this->user_stripe_details;
  332.     }
  333.     /**
  334.      * @param User_Stripe_Details $user_stripe_details
  335.      */
  336.     public function setUserStripeDetails(User_Stripe_Details $user_stripe_details)
  337.     {
  338.         $this->user_stripe_details $user_stripe_details;
  339.     }
  340.     /**
  341.      * @param mixed $id
  342.      */
  343.     public function setId($id)
  344.     {
  345.         $this->id $id;
  346.     }
  347.     /**
  348.      * @return mixed
  349.      */
  350.     public function getFirstName()
  351.     {
  352.         return $this->first_name;
  353.     }
  354.     /**
  355.      * @param mixed $first_name
  356.      */
  357.     public function setFirstName($first_name)
  358.     {
  359.         $this->first_name $first_name;
  360.     }
  361.     /**
  362.      * @return mixed
  363.      */
  364.     public function getLastName()
  365.     {
  366.         return $this->last_name;
  367.     }
  368.     /**
  369.      * @param mixed $last_name
  370.      */
  371.     public function setLastName($last_name)
  372.     {
  373.         $this->last_name $last_name;
  374.     }
  375.     /**
  376.      * @return mixed
  377.      */
  378.     public function getEmail()
  379.     {
  380.         return $this->email;
  381.     }
  382.     /**
  383.      * @param mixed $email
  384.      */
  385.     public function setEmail($email)
  386.     {
  387.         $this->email $email;
  388.     }
  389.     /**
  390.      * @return mixed
  391.      */
  392.     public function getMobile()
  393.     {
  394.         return $this->mobile;
  395.     }
  396.     /**
  397.      * @param mixed $mobile
  398.      */
  399.     public function setMobile($mobile)
  400.     {
  401.         $this->mobile $mobile;
  402.     }
  403.     /**
  404.      * @return mixed
  405.      */
  406.     public function getPassword()
  407.     {
  408.         return $this->password;
  409.     }
  410.     /**
  411.      * @param mixed $password
  412.      */
  413.     public function setPassword($password)
  414.     {
  415.         $this->password $password;
  416.     }
  417.     /**
  418.      * @return mixed
  419.      */
  420.     public function getLoginType()
  421.     {
  422.         return $this->login_type;
  423.     }
  424.     /**
  425.      * @param mixed $login_type
  426.      */
  427.     public function setLoginType($login_type)
  428.     {
  429.         $this->login_type $login_type;
  430.     }
  431.     /**
  432.      * @return mixed
  433.      */
  434.     public function getisMobileVerified()
  435.     {
  436.         return $this->is_mobile_verified;
  437.     }
  438.     /**
  439.      * @param mixed $is_mobile_verified
  440.      */
  441.     public function setIsMobileVerified($is_mobile_verified)
  442.     {
  443.         $this->is_mobile_verified $is_mobile_verified;
  444.     }
  445.     /**
  446.      * @return mixed
  447.      */
  448.     public function getActiveUserRole()
  449.     {
  450.         return $this->active_user_role;
  451.     }
  452.     /**
  453.      * @param mixed $active_user_role
  454.      */
  455.     public function setActiveUserRole($active_user_role)
  456.     {
  457.         $this->active_user_role $active_user_role;
  458.     }
  459.     /**
  460.      * @return mixed
  461.      */
  462.     public function getDob()
  463.     {
  464.         return $this->dob;
  465.     }
  466.     /**
  467.      * @param mixed $dob
  468.      */
  469.     public function setDob($dob)
  470.     {
  471.         $this->dob $dob;
  472.     }
  473.     /**
  474.      * @return mixed
  475.      */
  476.     public function getGender()
  477.     {
  478.         return $this->gender;
  479.     }
  480.     /**
  481.      * @param mixed $gender
  482.      */
  483.     public function setGender($gender)
  484.     {
  485.         $this->gender $gender;
  486.     }
  487.     /**
  488.      * @return mixed
  489.      */
  490.     public function getisProfileComplete()
  491.     {
  492.         return $this->is_profile_complete;
  493.     }
  494.     /**
  495.      * @param mixed $is_profile_complete
  496.      */
  497.     public function setIsProfileComplete($is_profile_complete)
  498.     {
  499.         $this->is_profile_complete $is_profile_complete;
  500.     }
  501.     /**
  502.      * @return mixed
  503.      */
  504.     public function getPasswordChangeDate()
  505.     {
  506.         return $this->password_change_date;
  507.     }
  508.     /**
  509.      * @param mixed $password_change_date
  510.      */
  511.     public function setPasswordChangeDate($password_change_date)
  512.     {
  513.         $this->password_change_date $password_change_date;
  514.     }
  515.     /**
  516.      * @return mixed
  517.      */
  518.     public function getResetCode()
  519.     {
  520.         return $this->reset_code;
  521.     }
  522.     /**
  523.      * @param mixed $reset_code
  524.      */
  525.     public function setResetCode($reset_code)
  526.     {
  527.         $this->reset_code $reset_code;
  528.     }
  529.     /**
  530.      * @return mixed
  531.      */
  532.     public function getResetCodeStartTimestamp()
  533.     {
  534.         return $this->reset_code_start_timestamp;
  535.     }
  536.     /**
  537.      * @param mixed $reset_code_start_timestamp
  538.      */
  539.     public function setResetCodeStartTimestamp($reset_code_start_timestamp)
  540.     {
  541.         $this->reset_code_start_timestamp $reset_code_start_timestamp;
  542.     }
  543.     /**
  544.      * @return mixed
  545.      */
  546.     public function getResetPasswordToken()
  547.     {
  548.         return $this->reset_password_token;
  549.     }
  550.     /**
  551.      * @param mixed $reset_password_token
  552.      */
  553.     public function setResetPasswordToken($reset_password_token)
  554.     {
  555.         $this->reset_password_token $reset_password_token;
  556.     }
  557.     /**
  558.      * @return mixed
  559.      */
  560.     public function getCountryCode()
  561.     {
  562.         return $this->country_code;
  563.     }
  564.     /**
  565.      * @param mixed $country_code
  566.      */
  567.     public function setCountryCode($country_code)
  568.     {
  569.         $this->country_code $country_code;
  570.     }
  571.     /**
  572.      * @return mixed
  573.      */
  574.     public function getProfilePicUrl()
  575.     {
  576.         return $this->profile_pic_url;
  577.     }
  578.     /**
  579.      * @param mixed $profile_pic_url
  580.      */
  581.     public function setProfilePicUrl($profile_pic_url)
  582.     {
  583.         $this->profile_pic_url $profile_pic_url;
  584.     }
  585.     /**
  586.      * @return mixed
  587.      */
  588.     public function getSocialProfileId()
  589.     {
  590.         return $this->social_profile_id;
  591.     }
  592.     /**
  593.      * @param mixed $social_profile_id
  594.      */
  595.     public function setSocialProfileId($social_profile_id)
  596.     {
  597.         $this->social_profile_id $social_profile_id;
  598.     }
  599.     /**
  600.      * @return mixed
  601.      */
  602.     public function getSocialMediaProfilePicUrl()
  603.     {
  604.         return $this->social_media_profile_pic_url;
  605.     }
  606.     /**
  607.      * @param mixed $social_media_profile_pic_url
  608.      */
  609.     public function setSocialMediaProfilePicUrl($social_media_profile_pic_url)
  610.     {
  611.         $this->social_media_profile_pic_url $social_media_profile_pic_url;
  612.     }
  613.     /**
  614.      * @return mixed
  615.      */
  616.     public function getPuLoginProcessSteps()
  617.     {
  618.         return $this->pu_login_process_steps;
  619.     }
  620.     /**
  621.      * @param mixed $pu_login_process_steps
  622.      */
  623.     public function setPuLoginProcessSteps($pu_login_process_steps)
  624.     {
  625.         $this->pu_login_process_steps $pu_login_process_steps;
  626.     }
  627.     /**
  628.      * @return WP_TimeZone
  629.      */
  630.     public function getTimezone()
  631.     {
  632.         return $this->timezone;
  633.     }
  634.     /**
  635.      * @param mixed $timezone
  636.      */
  637.     public function setTimezone($timezone)
  638.     {
  639.         $this->timezone $timezone;
  640.     }
  641.     /**
  642.      * @return WP_Time_Format
  643.      */
  644.     public function getTimeFormat()
  645.     {
  646.         return $this->time_format;
  647.     }
  648.     /**
  649.      * @param mixed $time_format
  650.      */
  651.     public function setTimeFormat($time_format)
  652.     {
  653.         $this->time_format $time_format;
  654.     }
  655.     /**
  656.      * @return WP_Date_Format
  657.      */
  658.     public function getDateFormat()
  659.     {
  660.         return $this->date_format;
  661.     }
  662.     /**
  663.      * @param mixed $date_format
  664.      */
  665.     public function setDateFormat($date_format)
  666.     {
  667.         $this->date_format $date_format;
  668.     }
  669.     /**
  670.      * @return WP_Currency
  671.      */
  672.     public function getCurrency()
  673.     {
  674.         return $this->currency;
  675.     }
  676.     /**
  677.      * @param mixed $currency
  678.      */
  679.     public function setCurrency($currency)
  680.     {
  681.         $this->currency $currency;
  682.     }
  683.     /**
  684.      * @return mixed
  685.      */
  686.     public function getIsNewUser()
  687.     {
  688.         return $this->is_new_user;
  689.     }
  690.     /**
  691.      * @param mixed $is_new_user
  692.      */
  693.     public function setIsNewUser($is_new_user)
  694.     {
  695.         $this->is_new_user $is_new_user;
  696.     }
  697.     /**
  698.      * @return mixed
  699.      */
  700.     public function getIsActive()
  701.     {
  702.         return $this->is_active;
  703.     }
  704.     /**
  705.      * @param mixed $is_active
  706.      */
  707.     public function setIsActive($is_active)
  708.     {
  709.         $this->is_active $is_active;
  710.     }
  711.     /**
  712.      * @return WP_Language
  713.      */
  714.     public function getLanguage()
  715.     {
  716.         return $this->language;
  717.     }
  718.     /**
  719.      * @param mixed $language
  720.      */
  721.     public function setLanguage($language)
  722.     {
  723.         $this->language $language;
  724.     }
  725.     /**
  726.      * @return mixed
  727.      */
  728.     public function getManageNotifications()
  729.     {
  730.         return $this->manage_notifications;
  731.     }
  732.     /**
  733.      * @param mixed $manage_notifications
  734.      */
  735.     public function setManageNotifications($manage_notifications)
  736.     {
  737.         $this->manage_notifications $manage_notifications;
  738.     }
  739.     /**
  740.      * @return mixed
  741.      */
  742.     public function getInviteCode()
  743.     {
  744.         return $this->invite_code;
  745.     }
  746.     /**
  747.      * @param mixed $invite_code
  748.      */
  749.     public function setInviteCode($invite_code)
  750.     {
  751.         $this->invite_code $invite_code;
  752.     }
  753.     /**
  754.      * @return mixed
  755.      */
  756.     public function getUserSpotReviews()
  757.     {
  758.         return $this->user_spot_reviews;
  759.     }
  760.     /**
  761.      * @param mixed $user_spot_reviews
  762.      */
  763.     public function setUserSpotReviews($user_spot_reviews)
  764.     {
  765.         $this->user_spot_reviews $user_spot_reviews;
  766.     }
  767.     /**
  768.      * @return mixed
  769.      */
  770.     public function getSupplierToUserRatings()
  771.     {
  772.         return $this->supplier_to_user_ratings;
  773.     }
  774.     /**
  775.      * @param mixed $supplier_to_user_ratings
  776.      */
  777.     public function setSupplierToUserRatings($supplier_to_user_ratings)
  778.     {
  779.         $this->supplier_to_user_ratings $supplier_to_user_ratings;
  780.     }
  781.     /**
  782.      * @return mixed
  783.      */
  784.     public function getOrders()
  785.     {
  786.         return $this->orders;
  787.     }
  788.     /**
  789.      * @param mixed $orders
  790.      */
  791.     public function setOrders($orders)
  792.     {
  793.         $this->orders $orders;
  794.     }
  795.     /**
  796.      * @return mixed
  797.      */
  798.     public function getFavSpot()
  799.     {
  800.         return $this->fav_spot;
  801.     }
  802.     /**
  803.      * @param mixed $fav_spot
  804.      */
  805.     public function setFavSpot($fav_spot)
  806.     {
  807.         $this->fav_spot $fav_spot;
  808.     }
  809.     /**
  810.      * @return mixed
  811.      */
  812.     public function getAddSpot()
  813.     {
  814.         return $this->add_spot;
  815.     }
  816.     /**
  817.      * @param mixed $add_spot
  818.      */
  819.     public function setAddSpot($add_spot)
  820.     {
  821.         $this->add_spot $add_spot;
  822.     }
  823.     /**
  824.      * @return mixed
  825.      */
  826.     public function getVehicles()
  827.     {
  828.         return $this->vehicles;
  829.     }
  830.     /**
  831.      * @param mixed $vehicles
  832.      */
  833.     public function setVehicles($vehicles)
  834.     {
  835.         $this->vehicles $vehicles;
  836.     }
  837.     /**
  838.      * @return mixed
  839.      */
  840.     public function getTokens()
  841.     {
  842.         return $this->tokens;
  843.     }
  844.     /**
  845.      * @param mixed $tokens
  846.      */
  847.     public function setTokens($tokens)
  848.     {
  849.         $this->tokens $tokens;
  850.     }
  851.     /**
  852.      * @return \DateTime
  853.      */
  854.     public function getLastActiveDate()
  855.     {
  856.         return $this->last_active_date;
  857.     }
  858.     /**
  859.      * @param mixed $last_active_date
  860.      */
  861.     public function setLastActiveDate($last_active_date)
  862.     {
  863.         $this->last_active_date $last_active_date;
  864.     }
  865.     /**
  866.      * @return mixed
  867.      */
  868.     public function getUserRegisterDate()
  869.     {
  870.         return $this->user_register_date;
  871.     }
  872.     /**
  873.      * @param mixed $user_register_date
  874.      */
  875.     public function setUserRegisterDate($user_register_date)
  876.     {
  877.         $this->user_register_date $user_register_date;
  878.     }
  879.     /**
  880.      * @return mixed
  881.      */
  882.     public function getIsSeeker()
  883.     {
  884.         return $this->is_seeker;
  885.     }
  886.     /**
  887.      * @param mixed $is_seeker
  888.      */
  889.     public function setIsSeeker($is_seeker)
  890.     {
  891.         $this->is_seeker $is_seeker;
  892.     }
  893.     /**
  894.      * @return mixed
  895.      */
  896.     public function getIsProvider()
  897.     {
  898.         return $this->is_provider;
  899.     }
  900.     /**
  901.      * @param mixed $is_provider
  902.      */
  903.     public function setIsProvider($is_provider)
  904.     {
  905.         $this->is_provider $is_provider;
  906.     }
  907.     /**
  908.      * @return WP_Distance
  909.      */
  910.     public function getDistance()
  911.     {
  912.         return $this->distance;
  913.     }
  914.     /**
  915.      * @param mixed $distance
  916.      */
  917.     public function setDistance($distance)
  918.     {
  919.         $this->distance $distance;
  920.     }
  921.     /**
  922.      * @return mixed
  923.      */
  924.     public function getDeactivateStatus()
  925.     {
  926.         return $this->deactivate_status;
  927.     }
  928.     /**
  929.      * @param mixed $deactivate_status
  930.      */
  931.     public function setDeactivateStatus($deactivate_status)
  932.     {
  933.         $this->deactivate_status $deactivate_status;
  934.     }
  935.     /**
  936.      * @return \DateTime
  937.      */
  938.     public function getDeactivateUserDate()
  939.     {
  940.         return $this->deactivate_user_date;
  941.     }
  942.     /**
  943.      * @param mixed $deactivate_user_date
  944.      */
  945.     public function setDeactivateUserDate($deactivate_user_date)
  946.     {
  947.         $this->deactivate_user_date $deactivate_user_date;
  948.     }
  949.     /**
  950.      * @return mixed
  951.      */
  952.     public function getActivateUserDate()
  953.     {
  954.         return $this->activate_user_date;
  955.     }
  956.     /**
  957.      * @param mixed $activate_user_date
  958.      */
  959.     public function setActivateUserDate($activate_user_date)
  960.     {
  961.         $this->activate_user_date $activate_user_date;
  962.     }
  963.     /**
  964.      * @return mixed
  965.      */
  966.     public function getDeactivateReason()
  967.     {
  968.         return $this->deactivate_reason;
  969.     }
  970.     /**
  971.      * @param mixed $deactivate_reason
  972.      */
  973.     public function setDeactivateReason($deactivate_reason)
  974.     {
  975.         $this->deactivate_reason $deactivate_reason;
  976.     }
  977.     /**
  978.      * @return mixed
  979.      */
  980.     public function getActivateReason()
  981.     {
  982.         return $this->activate_reason;
  983.     }
  984.     /**
  985.      * @param mixed $activate_reason
  986.      */
  987.     public function setActivateReason($activate_reason)
  988.     {
  989.         $this->activate_reason $activate_reason;
  990.     }
  991.     /**
  992.      * @return mixed
  993.      */
  994.     public function getStripeCustomerId()
  995.     {
  996.         return $this->stripeCustomerId;
  997.     }
  998.     /**
  999.      * @param mixed $stripeCustomerId
  1000.      */
  1001.     public function setStripeCustomerId($stripeCustomerId)
  1002.     {
  1003.         $this->stripeCustomerId $stripeCustomerId;
  1004.     }
  1005.     /**
  1006.      * @return mixed
  1007.      */
  1008.     public function getSoCommissionRateHourly()
  1009.     {
  1010.         return $this->so_commission_rate_hourly;
  1011.     }
  1012.     /**
  1013.      * @param mixed $so_commission_rate_hourly
  1014.      */
  1015.     public function setSoCommissionRateHourly($so_commission_rate_hourly)
  1016.     {
  1017.         $this->so_commission_rate_hourly $so_commission_rate_hourly;
  1018.     }
  1019.     /**
  1020.      * @return mixed
  1021.      */
  1022.     public function getSoCommissionRateFlexible()
  1023.     {
  1024.         return $this->so_commission_rate_flexible;
  1025.     }
  1026.     /**
  1027.      * @param mixed $so_commission_rate_flexible
  1028.      */
  1029.     public function setSoCommissionRateFlexible($so_commission_rate_flexible)
  1030.     {
  1031.         $this->so_commission_rate_flexible $so_commission_rate_flexible;
  1032.     }
  1033.     /**
  1034.      * @return mixed
  1035.      */
  1036.     public function getSoCommissionRateMonthly()
  1037.     {
  1038.         return $this->so_commission_rate_monthly;
  1039.     }
  1040.     /**
  1041.      * @param mixed $so_commission_rate_monthly
  1042.      */
  1043.     public function setSoCommissionRateMonthly($so_commission_rate_monthly)
  1044.     {
  1045.         $this->so_commission_rate_monthly $so_commission_rate_monthly;
  1046.     }
  1047.     /**
  1048.      * @return mixed
  1049.      */
  1050.     public function getSoServiceFee()
  1051.     {
  1052.         return $this->so_service_fee;
  1053.     }
  1054.     /**
  1055.      * @param mixed $so_service_fee
  1056.      */
  1057.     public function setSoServiceFee($so_service_fee)
  1058.     {
  1059.         $this->so_service_fee $so_service_fee;
  1060.     }
  1061.     /**
  1062.      * @return mixed
  1063.      */
  1064.     public function getSoServiceFeeType()
  1065.     {
  1066.         return $this->so_service_fee_type;
  1067.     }
  1068.     /**
  1069.      * @param mixed $so_service_fee_type
  1070.      */
  1071.     public function setSoServiceFeeType($so_service_fee_type)
  1072.     {
  1073.         $this->so_service_fee_type $so_service_fee_type;
  1074.     }
  1075.     /**
  1076.      * @return \DateTime
  1077.      */
  1078.     public function getNextAutoPayoutDate()
  1079.     {
  1080.         return $this->next_auto_payout_date;
  1081.     }
  1082.     /**
  1083.      * @param mixed $next_auto_payout_date
  1084.      */
  1085.     public function setNextAutoPayoutDate($next_auto_payout_date)
  1086.     {
  1087.         $this->next_auto_payout_date $next_auto_payout_date;
  1088.     }
  1089.     /**
  1090.      * @return mixed
  1091.      */
  1092.     public function getAutoPayoutDays()
  1093.     {
  1094.         return $this->auto_payout_days;
  1095.     }
  1096.     /**
  1097.      * @param mixed $auto_payout_days
  1098.      */
  1099.     public function setAutoPayoutDays($auto_payout_days)
  1100.     {
  1101.         $this->auto_payout_days $auto_payout_days;
  1102.     }
  1103.     /**
  1104.      * @return mixed
  1105.      */
  1106.     public function getAddressLineOne()
  1107.     {
  1108.         return $this->address_line_one;
  1109.     }
  1110.     /**
  1111.      * @param mixed $address_line_one
  1112.      */
  1113.     public function setAddressLineOne($address_line_one)
  1114.     {
  1115.         $this->address_line_one $address_line_one;
  1116.     }
  1117.     /**
  1118.      * @return mixed
  1119.      */
  1120.     public function getAddressLineTwo()
  1121.     {
  1122.         return $this->address_line_two;
  1123.     }
  1124.     /**
  1125.      * @param mixed $address_line_two
  1126.      */
  1127.     public function setAddressLineTwo($address_line_two)
  1128.     {
  1129.         $this->address_line_two $address_line_two;
  1130.     }
  1131.     /**
  1132.      * @return mixed
  1133.      */
  1134.     public function getPostalCode()
  1135.     {
  1136.         return $this->postal_code;
  1137.     }
  1138.     /**
  1139.      * @param mixed $postal_code
  1140.      */
  1141.     public function setPostalCode($postal_code)
  1142.     {
  1143.         $this->postal_code $postal_code;
  1144.     }
  1145.     /**
  1146.      * @return mixed
  1147.      */
  1148.     public function getCity()
  1149.     {
  1150.         return $this->city;
  1151.     }
  1152.     /**
  1153.      * @param mixed $city
  1154.      */
  1155.     public function setCity($city)
  1156.     {
  1157.         $this->city $city;
  1158.     }
  1159.     /**
  1160.      * @return mixed
  1161.      */
  1162.     public function getState()
  1163.     {
  1164.         return $this->state;
  1165.     }
  1166.     /**
  1167.      * @param mixed $state
  1168.      */
  1169.     public function setState($state)
  1170.     {
  1171.         $this->state $state;
  1172.     }
  1173.     /**
  1174.      * @return mixed
  1175.      */
  1176.     public function getCountry()
  1177.     {
  1178.         return $this->country;
  1179.     }
  1180.     /**
  1181.      * @param mixed $country
  1182.      */
  1183.     public function setCountry($country)
  1184.     {
  1185.         $this->country $country;
  1186.     }
  1187.     /**
  1188.      * @return mixed
  1189.      */
  1190.     public function getIsUserConsumedReferral()
  1191.     {
  1192.         return $this->is_user_consumed_referral;
  1193.     }
  1194.     /**
  1195.      * @param mixed $is_user_consumed_referral
  1196.      */
  1197.     public function setIsUserConsumedReferral($is_user_consumed_referral)
  1198.     {
  1199.         $this->is_user_consumed_referral $is_user_consumed_referral;
  1200.     }
  1201.     /**
  1202.      * @return ArrayCollection
  1203.      */
  1204.     public function getActiveSpots() {
  1205.         $criteria Criteria::create();
  1206.         $criteria->where(Criteria::expr()->eq('is_active'true))
  1207.             ->andWhere(Criteria::expr()->eq('is_saved'true));
  1208.         return $this->add_spot->matching($criteria);
  1209.     }
  1210.     /**
  1211.      * @return int
  1212.      */
  1213.     public function getIncompleteSpotsCount() {
  1214.         $criteria Criteria::create();
  1215.         $criteria->where(Criteria::expr()->eq('is_active'true))
  1216.             ->andWhere(Criteria::expr()->eq('is_saved'false))
  1217.             ->andWhere(Criteria::expr()->eq('spot_status'SpotStatus::Incomplete));
  1218.         return $this->add_spot->matching($criteria)->count();
  1219.     }
  1220.     /**
  1221.      * @return int
  1222.      */
  1223.     public function getCompleteSpotsCount() {
  1224.         $criteria Criteria::create();
  1225.         $criteria->where(Criteria::expr()->eq('is_active'true))
  1226.             ->andWhere(Criteria::expr()->eq('is_saved'true));
  1227.         return $this->add_spot->matching($criteria)->count();
  1228.     }
  1229.     /**
  1230.      * @return int
  1231.      */
  1232.     public function getVerifiedSpotsCount() {
  1233.         $criteria Criteria::create();
  1234.         $criteria->where(Criteria::expr()->eq('is_active'true))
  1235.             ->andWhere(Criteria::expr()->eq('is_verified'true))
  1236.             ->andWhere(Criteria::expr()->eq('is_saved'true));
  1237.         return $this->add_spot->matching($criteria)->count();
  1238.     }
  1239.     /**
  1240.      * @return int
  1241.      */
  1242.     public function getCompletedNotVerifiedSpotsCount() {
  1243.         $criteria Criteria::create();
  1244.         $criteria->where(Criteria::expr()->eq('is_active'true))
  1245.             ->andWhere(Criteria::expr()->eq('is_verified'false))
  1246.             ->andWhere(Criteria::expr()->eq('is_saved'true));
  1247.         return $this->add_spot->matching($criteria)->count();
  1248.     }
  1249.     /**
  1250.      * @return int
  1251.      */
  1252.     public function getTotalSpotsCount() {
  1253.         $criteria Criteria::create();
  1254.         $criteria->where(Criteria::expr()->eq('is_active'true));
  1255.         return $this->add_spot->matching($criteria)->count();
  1256.     }
  1257.     //not_created - Not Created, incomplete - Incomplete, active - Active
  1258.     public function getStripeAccountStatus() {
  1259.         if ($this->getUserStripeDetails() instanceof User_Stripe_Details) {
  1260.             if ($this->getUserStripeDetails()->getIsStripeIntegrationCompleted()) {
  1261.                 return 'active';
  1262.             }
  1263.             if ($this->getUserStripeDetails()->getIsStripeIntegrationStarted()) {
  1264.                 return 'incomplete';
  1265.             }
  1266.             return 'incomplete';
  1267.         }
  1268.         return 'not_created';
  1269.     }
  1270.     public function jsonSerialize()
  1271.     {
  1272.         return array(
  1273.             'id' => $this->id,
  1274.             'country_code' => $this->country_code,
  1275.             'currency' => $this->currency->getId(),
  1276.             'active_user_role' => $this->active_user_role,
  1277.             'date_format' => $this->date_format->getId(),
  1278.             'dob' => $this->dob != NULL $this->dob->format('Y-m-d') : "",
  1279.             'email' => $this->email,
  1280.             'first_name' => $this->first_name,
  1281.             'gender' => $this->gender,
  1282.             'is_mobile_verified' => $this->is_mobile_verified,
  1283.             'is_profile_complete' => $this->is_profile_complete,
  1284.             'language' => $this->language->getId(),
  1285.             'last_name' => $this->last_name,
  1286.             'login_type' => $this->login_type,
  1287.             'mobile' => $this->mobile,
  1288.             'profile_pic_url' => $this->profile_pic_url,
  1289.             'pu_login_process_steps' => $this->pu_login_process_steps,
  1290.             'time_format' => $this->time_format->getId(),
  1291.             'timezone' => $this->timezone->getId(),
  1292.             'invite_code' => $this->invite_code,
  1293.             'last_active_date' => $this->last_active_date != NULL $this->last_active_date->format('Y-m-d H:i:s') : "",
  1294.             'user_register_date' => $this->user_register_date != NULL $this->user_register_date->format('Y-m-d H:i:s') : "",
  1295.             'password_change_date' => $this->password_change_date,
  1296.             'is_seeker' => $this->is_seeker,
  1297.             'is_provider' => $this->is_provider,
  1298.             'is_active' => $this->is_active,
  1299.             'distance_id' => $this->distance->getId(),
  1300.             'stripeCustomerId' => $this->stripeCustomerId,
  1301.             'so_commission_rate_hourly' => $this->so_commission_rate_hourly,
  1302.             'so_commission_rate_flexible' => $this->so_commission_rate_flexible,
  1303.             'so_commission_rate_monthly' => $this->so_commission_rate_monthly,
  1304.             'so_service_fee' => $this->so_service_fee,
  1305.             'so_service_fee_type' => $this->so_service_fee_type,
  1306.             'auto_payout_days' => $this->auto_payout_days,
  1307.             'next_auto_payout_date' => $this->next_auto_payout_date != NULL $this->next_auto_payout_date->format('Y-m-d') : "",
  1308.             'address_line_one' => $this->address_line_one,
  1309.             'address_line_two' => $this->address_line_two,
  1310.             'postal_code' => $this->postal_code,
  1311.             'stripe_account_status' => $this->getStripeAccountStatus(),
  1312.             'city' => $this->city,
  1313.             'state' => $this->state,
  1314.             'country' => $this->country,
  1315.             'is_user_consumed_referral' => $this->is_user_consumed_referral,
  1316.         );
  1317.     }
  1318. //    public function __construct() {
  1319. //        // we set up "created"+"modified"
  1320. //        $this->setCreatedAt(round(microtime(true) * 1000));
  1321. //    }
  1322.     /**
  1323.      * @var string $created
  1324.      *
  1325.      * @ORM\Column(name="created_at", type="string", nullable=false)
  1326.      */
  1327.     protected $createdAt;
  1328.     /**
  1329.      * @var string $updated
  1330.      *
  1331.      * @ORM\Column(name="updated_at", type="string", nullable=false)
  1332.      */
  1333.     protected $updatedAt;
  1334.     public function getCreatedAt()
  1335.     {
  1336.         return $this->createdAt;
  1337.     }
  1338.     public function setCreatedAt($createdAt)
  1339.     {
  1340.         $this->createdAt $createdAt;
  1341.         return $this;
  1342.     }
  1343.     public function getUpdatedAt()
  1344.     {
  1345.         return $this->updatedAt;
  1346.     }
  1347.     public function setUpdatedAt($updatedAt)
  1348.     {
  1349.         $this->updatedAt $updatedAt;
  1350.         return $this;
  1351.     }
  1352.     /**
  1353.      * @ORM\PrePersist
  1354.      * @ORM\PreUpdate
  1355.      */
  1356.     public function updatedTimestamps()
  1357.     {
  1358.         $this->setUpdatedAt(round(microtime(true) * 1000));
  1359.         if ($this->getCreatedAt() === null) {
  1360.             $this->setCreatedAt(round(microtime(true) * 1000));
  1361.         }
  1362.     }
  1363.     /**
  1364.      * @return bool
  1365.      */
  1366.     public function isIsUnsubscribedToEmail()
  1367.     {
  1368.         return $this->is_unsubscribed_to_email;
  1369.     }
  1370.     /**
  1371.      * @param bool $is_unsubscribed_to_email
  1372.      */
  1373.     public function setIsUnsubscribedToEmail($is_unsubscribed_to_email)
  1374.     {
  1375.         $this->is_unsubscribed_to_email $is_unsubscribed_to_email;
  1376.     }
  1377.     public function __construct() {
  1378.         $this->tokens = new ArrayCollection();
  1379.         $this->vehicles = new ArrayCollection();
  1380.         $this->add_spot = new ArrayCollection();
  1381.         $this->fav_spot = new ArrayCollection();
  1382.         $this->orders = new ArrayCollection();
  1383.         $this->supplier_to_user_ratings = new ArrayCollection();
  1384.         $this->user_spot_reviews = new ArrayCollection();
  1385.         $this->setCreatedAt(round(microtime(true) * 1000));
  1386.     }
  1387. }