Browse Source

feat(model):增加关联关系

Yin Bin 3 months ago
parent
commit
24540441e4

+ 22 - 22
.phpstorm.meta.php

@@ -193,8 +193,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -407,8 +407,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -621,8 +621,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -835,8 +835,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -1049,8 +1049,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -1263,8 +1263,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -1477,8 +1477,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -1691,8 +1691,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -1905,8 +1905,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -2119,8 +2119,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,
@@ -2333,8 +2333,8 @@ namespace PHPSTORM_META {
             'events' => \Illuminate\Events\Dispatcher::class,
             'files' => \Illuminate\Filesystem\Filesystem::class,
             'filesystem' => \Illuminate\Filesystem\FilesystemManager::class,
-            'filesystem.cloud' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
-            'filesystem.disk' => \Illuminate\Filesystem\LocalFilesystemAdapter::class,
+            'filesystem.cloud' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
+            'filesystem.disk' => \Illuminate\Filesystem\AwsS3V3Adapter::class,
             'hash' => \Illuminate\Hashing\HashManager::class,
             'hash.driver' => \Illuminate\Hashing\BcryptHasher::class,
             'log' => \Illuminate\Log\LogManager::class,

+ 86 - 100
_ide_helper.php

@@ -14993,7 +14993,7 @@ namespace Illuminate\Support\Facades {
          * Get a filesystem instance.
          *
          * @param string|null $name
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function drive($name = null)
         {
@@ -15004,7 +15004,7 @@ namespace Illuminate\Support\Facades {
          * Get a filesystem instance.
          *
          * @param string|null $name
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function disk($name = null)
         {
@@ -15025,7 +15025,7 @@ namespace Illuminate\Support\Facades {
          * Build an on-demand disk.
          *
          * @param string|array $config
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function build($config)
         {
@@ -15037,7 +15037,7 @@ namespace Illuminate\Support\Facades {
          *
          * @param array $config
          * @param string $name
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function createLocalDriver($config, $name = 'local')
         {
@@ -15048,7 +15048,7 @@ namespace Illuminate\Support\Facades {
          * Create an instance of the ftp driver.
          *
          * @param array $config
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function createFtpDriver($config)
         {
@@ -15059,7 +15059,7 @@ namespace Illuminate\Support\Facades {
          * Create an instance of the sftp driver.
          *
          * @param array $config
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function createSftpDriver($config)
         {
@@ -15081,7 +15081,7 @@ namespace Illuminate\Support\Facades {
          * Create a scoped driver.
          *
          * @param array $config
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function createScopedDriver($config)
         {
@@ -15164,6 +15164,18 @@ namespace Illuminate\Support\Facades {
         {
                         /** @var \Illuminate\Filesystem\FilesystemManager $instance */
                         return $instance->setApplication($app);
+        }
+                    /**
+         * Get the URL for the file at the given path.
+         *
+         * @param string $path
+         * @return string 
+         * @throws \RuntimeException
+         * @static 
+         */        public static function url($path)
+        {
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
+                        return $instance->url($path);
         }
                     /**
          * Determine if temporary URLs can be generated.
@@ -15172,7 +15184,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function providesTemporaryUrls()
         {
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->providesTemporaryUrls();
         }
                     /**
@@ -15185,64 +15197,64 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function temporaryUrl($path, $expiration, $options = [])
         {
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->temporaryUrl($path, $expiration, $options);
         }
                     /**
-         * Specify the name of the disk the adapter is managing.
+         * Get a temporary upload URL for the file at the given path.
          *
-         * @param string $disk
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @param string $path
+         * @param \DateTimeInterface $expiration
+         * @param array $options
+         * @return array 
          * @static 
-         */        public static function diskName($disk)
+         */        public static function temporaryUploadUrl($path, $expiration, $options = [])
         {
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
-                        return $instance->diskName($disk);
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
+                        return $instance->temporaryUploadUrl($path, $expiration, $options);
         }
                     /**
-         * Indiate that signed URLs should serve the corresponding files.
+         * Get the underlying S3 client.
          *
-         * @param bool $serve
-         * @param \Closure|null $urlGeneratorResolver
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Aws\S3\S3Client 
          * @static 
-         */        public static function shouldServeSignedUrls($serve = true, $urlGeneratorResolver = null)
+         */        public static function getClient()
         {
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
-                        return $instance->shouldServeSignedUrls($serve, $urlGeneratorResolver);
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
+                        return $instance->getClient();
         }
                     /**
          * Assert that the given file or directory exists.
          *
          * @param string|array $path
          * @param string|null $content
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function assertExists($path, $content = null)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->assertExists($path, $content);
         }
                     /**
          * Assert that the given file or directory does not exist.
          *
          * @param string|array $path
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function assertMissing($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->assertMissing($path);
         }
                     /**
          * Assert that the given directory is empty.
          *
          * @param string $path
-         * @return \Illuminate\Filesystem\LocalFilesystemAdapter 
+         * @return \Illuminate\Filesystem\AwsS3V3Adapter 
          * @static 
          */        public static function assertDirectoryEmpty($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->assertDirectoryEmpty($path);
         }
                     /**
@@ -15253,7 +15265,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function exists($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->exists($path);
         }
                     /**
@@ -15264,7 +15276,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function missing($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->missing($path);
         }
                     /**
@@ -15275,7 +15287,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function fileExists($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->fileExists($path);
         }
                     /**
@@ -15286,7 +15298,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function fileMissing($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->fileMissing($path);
         }
                     /**
@@ -15297,7 +15309,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function directoryExists($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->directoryExists($path);
         }
                     /**
@@ -15308,7 +15320,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function directoryMissing($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->directoryMissing($path);
         }
                     /**
@@ -15319,7 +15331,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function path($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->path($path);
         }
                     /**
@@ -15330,7 +15342,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function get($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->get($path);
         }
                     /**
@@ -15342,7 +15354,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function json($path, $flags = 0)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->json($path, $flags);
         }
                     /**
@@ -15356,7 +15368,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function response($path, $name = null, $headers = [], $disposition = 'inline')
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->response($path, $name, $headers, $disposition);
         }
                     /**
@@ -15370,7 +15382,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function serve($request, $path, $name = null, $headers = [])
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->serve($request, $path, $name, $headers);
         }
                     /**
@@ -15383,7 +15395,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function download($path, $name = null, $headers = [])
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->download($path, $name, $headers);
         }
                     /**
@@ -15396,7 +15408,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function put($path, $contents, $options = [])
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->put($path, $contents, $options);
         }
                     /**
@@ -15409,7 +15421,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function putFile($path, $file = null, $options = [])
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->putFile($path, $file, $options);
         }
                     /**
@@ -15423,7 +15435,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function putFileAs($path, $file, $name = null, $options = [])
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->putFileAs($path, $file, $name, $options);
         }
                     /**
@@ -15434,7 +15446,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function getVisibility($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->getVisibility($path);
         }
                     /**
@@ -15446,7 +15458,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function setVisibility($path, $visibility)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->setVisibility($path, $visibility);
         }
                     /**
@@ -15460,7 +15472,7 @@ namespace Illuminate\Support\Facades {
          */        public static function prepend($path, $data, $separator = '
 ')
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->prepend($path, $data, $separator);
         }
                     /**
@@ -15474,7 +15486,7 @@ namespace Illuminate\Support\Facades {
          */        public static function append($path, $data, $separator = '
 ')
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->append($path, $data, $separator);
         }
                     /**
@@ -15485,7 +15497,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function delete($paths)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->delete($paths);
         }
                     /**
@@ -15497,7 +15509,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function copy($from, $to)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->copy($from, $to);
         }
                     /**
@@ -15509,7 +15521,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function move($from, $to)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->move($from, $to);
         }
                     /**
@@ -15520,7 +15532,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function size($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->size($path);
         }
                     /**
@@ -15531,7 +15543,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function checksum($path, $options = [])
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->checksum($path, $options);
         }
                     /**
@@ -15542,7 +15554,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function mimeType($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->mimeType($path);
         }
                     /**
@@ -15553,7 +15565,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function lastModified($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->lastModified($path);
         }
                     /**
@@ -15564,7 +15576,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function readStream($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->readStream($path);
         }
                     /**
@@ -15577,34 +15589,8 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function writeStream($path, $resource, $options = [])
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->writeStream($path, $resource, $options);
-        }
-                    /**
-         * Get the URL for the file at the given path.
-         *
-         * @param string $path
-         * @return string 
-         * @throws \RuntimeException
-         * @static 
-         */        public static function url($path)
-        {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
-                        return $instance->url($path);
-        }
-                    /**
-         * Get a temporary upload URL for the file at the given path.
-         *
-         * @param string $path
-         * @param \DateTimeInterface $expiration
-         * @param array $options
-         * @return array 
-         * @throws \RuntimeException
-         * @static 
-         */        public static function temporaryUploadUrl($path, $expiration, $options = [])
-        {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
-                        return $instance->temporaryUploadUrl($path, $expiration, $options);
         }
                     /**
          * Get an array of all files in a directory.
@@ -15615,7 +15601,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function files($directory = null, $recursive = false)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->files($directory, $recursive);
         }
                     /**
@@ -15626,7 +15612,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function allFiles($directory = null)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->allFiles($directory);
         }
                     /**
@@ -15638,7 +15624,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function directories($directory = null, $recursive = false)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->directories($directory, $recursive);
         }
                     /**
@@ -15649,7 +15635,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function allDirectories($directory = null)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->allDirectories($directory);
         }
                     /**
@@ -15660,7 +15646,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function makeDirectory($path)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->makeDirectory($path);
         }
                     /**
@@ -15671,7 +15657,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function deleteDirectory($directory)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->deleteDirectory($directory);
         }
                     /**
@@ -15681,7 +15667,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function getDriver()
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->getDriver();
         }
                     /**
@@ -15691,7 +15677,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function getAdapter()
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->getAdapter();
         }
                     /**
@@ -15701,7 +15687,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function getConfig()
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->getConfig();
         }
                     /**
@@ -15712,7 +15698,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function serveUsing($callback)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         $instance->serveUsing($callback);
         }
                     /**
@@ -15723,7 +15709,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function buildTemporaryUrlsUsing($callback)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         $instance->buildTemporaryUrlsUsing($callback);
         }
                     /**
@@ -15738,7 +15724,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function when($value = null, $callback = null, $default = null)
         {
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->when($value, $callback, $default);
         }
                     /**
@@ -15753,7 +15739,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function unless($value = null, $callback = null, $default = null)
         {
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->unless($value, $callback, $default);
         }
                     /**
@@ -15766,7 +15752,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function macro($name, $macro)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        \Illuminate\Filesystem\LocalFilesystemAdapter::macro($name, $macro);
+                        \Illuminate\Filesystem\AwsS3V3Adapter::macro($name, $macro);
         }
                     /**
          * Mix another object into the class.
@@ -15778,7 +15764,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function mixin($mixin, $replace = true)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        \Illuminate\Filesystem\LocalFilesystemAdapter::mixin($mixin, $replace);
+                        \Illuminate\Filesystem\AwsS3V3Adapter::mixin($mixin, $replace);
         }
                     /**
          * Checks if macro is registered.
@@ -15788,7 +15774,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function hasMacro($name)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        return \Illuminate\Filesystem\LocalFilesystemAdapter::hasMacro($name);
+                        return \Illuminate\Filesystem\AwsS3V3Adapter::hasMacro($name);
         }
                     /**
          * Flush the existing macros.
@@ -15797,7 +15783,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function flushMacros()
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        \Illuminate\Filesystem\LocalFilesystemAdapter::flushMacros();
+                        \Illuminate\Filesystem\AwsS3V3Adapter::flushMacros();
         }
                     /**
          * Dynamically handle calls to the class.
@@ -15809,7 +15795,7 @@ namespace Illuminate\Support\Facades {
          * @static 
          */        public static function macroCall($method, $parameters)
         {            //Method inherited from \Illuminate\Filesystem\FilesystemAdapter         
-                        /** @var \Illuminate\Filesystem\LocalFilesystemAdapter $instance */
+                        /** @var \Illuminate\Filesystem\AwsS3V3Adapter $instance */
                         return $instance->macroCall($method, $parameters);
         }
             }

+ 268 - 81
_ide_helper_models.php

@@ -21,7 +21,7 @@ namespace App\Models{
  * @property int|null $real_auth_record_id 代理商实名认证记录编号
  * @property int|null $qual_record_id 代理商资质认证记录编号
  * @property string|null $area_code 代理区域
- * @property string $state 状态
+ * @property int $state 状态
  * @property \Illuminate\Support\Carbon|null $created_at 创建时间
  * @property \Illuminate\Support\Carbon|null $updated_at 更新时间
  * @property \Illuminate\Support\Carbon|null $deleted_at 删除时间
@@ -71,7 +71,7 @@ namespace App\Models{
  * @property string|null $auditor 审核人
  * @property string|null $audit_time 审核时间
  * @property string|null $audit_remark 审核回执
- * @property string $state 状态
+ * @property int $state 状态
  * @property \Illuminate\Support\Carbon|null $created_at 创建时间
  * @property \Illuminate\Support\Carbon|null $updated_at 更新时间
  * @property \Illuminate\Support\Carbon|null $deleted_at 删除时间
@@ -112,7 +112,7 @@ namespace App\Models{
  * @property string $price 项目金额
  * @property int $duration 服务时长(分钟)
  * @property int $distance 接单距离(米)
- * @property string $state 状态(enable:启用 disable:禁用)
+ * @property int $state
  * @property \Illuminate\Support\Carbon|null $created_at 创建时间
  * @property \Illuminate\Support\Carbon|null $updated_at 更新时间
  * @property \Illuminate\Support\Carbon|null $deleted_at 删除时间
@@ -145,7 +145,7 @@ namespace App\Models{
  * @property int $id 主键
  * @property int $agent_id 代理商ID
  * @property int $cate_id 项目分类ID
- * @property string $state 状态(enable:启用 disable:禁用)
+ * @property int $state 状态(1:启用 0:禁用)
  * @property \Illuminate\Support\Carbon|null $created_at 创建时间
  * @property \Illuminate\Support\Carbon|null $updated_at 更新时间
  * @property \Illuminate\Support\Carbon|null $deleted_at 删除时间
@@ -197,7 +197,7 @@ namespace App\Models{
  * @property string|null $auditor 审核人
  * @property string|null $audit_time 审核时间
  * @property string|null $audit_remark 审核回执
- * @property string $state 状态
+ * @property int $state 状态
  * @property \Illuminate\Support\Carbon|null $created_at 创建时间
  * @property \Illuminate\Support\Carbon|null $updated_at 更新时间
  * @property \Illuminate\Support\Carbon|null $deleted_at 删除时间
@@ -226,6 +226,76 @@ namespace App\Models{
 	class AgentRealAuthRecord extends \Eloquent {}
 }
 
+namespace App\Models{
+/**
+ * 
+ *
+ * @property int $id
+ * @property string $name 标签名称
+ * @property string $code 标签代码
+ * @property int $weight 权重
+ * @property string|null $description 描述
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property \Illuminate\Support\Carbon|null $deleted_at
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag onlyTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag query()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag whereCode($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag whereDeletedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag whereDescription($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag whereName($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag whereUpdatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag whereWeight($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag withTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachCommentTag withoutTrashed()
+ */
+	class CoachCommentTag extends \Eloquent {}
+}
+
+namespace App\Models{
+/**
+ * 技师投流订单
+ *
+ * @property int $id
+ * @property int $coach_id 技师ID
+ * @property string|null $order_no 订单交易号
+ * @property int $position_type 投放位置 1:轮播图 2:弹屏 3:推荐和附近
+ * @property int $time_slot 时间段 1:上午 2:下午 3:晚上
+ * @property int $days 投放天数
+ * @property string $amount 支付金额
+ * @property string|null $start_time 开始时间
+ * @property string|null $end_time 结束时间
+ * @property int $state 状态 0:待支付 1:投放中 2:已结束
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property \Illuminate\Support\Carbon|null $deleted_at
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder onlyTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder query()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereAmount($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereCoachId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereDays($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereDeletedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereEndTime($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereOrderNo($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder wherePositionType($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereStartTime($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereState($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereTimeSlot($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder whereUpdatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder withTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachFlowOrder withoutTrashed()
+ */
+	class CoachFlowOrder extends \Eloquent {}
+}
+
 namespace App\Models{
 /**
  * 技师信息记录
@@ -247,11 +317,15 @@ namespace App\Models{
  * @property \Illuminate\Support\Carbon|null $created_at
  * @property \Illuminate\Support\Carbon|null $updated_at
  * @property \Illuminate\Support\Carbon|null $deleted_at
+ * @property array|null $portrait_images 形象图片
+ * @property int|null $age 年龄
  * @property-read \App\Models\CoachUser|null $coach
+ * @property-read string $state_text
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord newModelQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord newQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord onlyTrashed()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord query()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereAge($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereAuditRemark($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereAuditTime($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereAuditor($value)
@@ -266,6 +340,7 @@ namespace App\Models{
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereIntroduction($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereMobile($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereNickname($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord wherePortraitImages($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereState($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereUpdatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachInfoRecord whereWorkYears($value)
@@ -316,6 +391,49 @@ namespace App\Models{
 	class CoachLocation extends \Eloquent {}
 }
 
+namespace App\Models{
+/**
+ * 
+ *
+ * @property int $id
+ * @property int $order_id 订单ID
+ * @property int $user_id 用户ID
+ * @property int $coach_id 技师ID
+ * @property int $score 评分 1-5
+ * @property string|null $content 评价内容
+ * @property array|null $images 图片列表
+ * @property bool $is_anonymous 是否匿名 0否 1是
+ * @property int $status 状态 0隐藏 1显示
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property \Illuminate\Support\Carbon|null $deleted_at
+ * @property-read \App\Models\CoachUser|null $coach
+ * @property-read \App\Models\Order|null $order
+ * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CoachCommentTag> $tags
+ * @property-read int|null $tags_count
+ * @property-read \App\Models\MemberUser|null $user
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment onlyTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment query()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereCoachId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereContent($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereDeletedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereImages($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereIsAnonymous($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereOrderId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereScore($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereStatus($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereUpdatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment whereUserId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment withTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachOrderComment withoutTrashed()
+ */
+	class CoachOrderComment extends \Eloquent {}
+}
+
 namespace App\Models{
 /**
  * 技师开通服务项目
@@ -328,7 +446,7 @@ namespace App\Models{
  * @property int $service_distance 服务距离(米)
  * @property string $traffic_fee_type 收取路费(free:免费 one_way:单程 round_trip:双程)
  * @property string $traffic_fee 路费金额
- * @property string $state 状态(enable:启用 disable:禁用)
+ * @property int $state 状态(1:启用 0:禁用)
  * @property \Illuminate\Support\Carbon|null $created_at 创建时间
  * @property \Illuminate\Support\Carbon|null $updated_at 更新时间
  * @property \Illuminate\Support\Carbon|null $deleted_at 删除时间
@@ -374,6 +492,7 @@ namespace App\Models{
  * @property \Illuminate\Support\Carbon|null $updated_at
  * @property \Illuminate\Support\Carbon|null $deleted_at
  * @property-read \App\Models\CoachUser|null $coach
+ * @property-read string $state_text
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachQualRecord newModelQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachQualRecord newQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachQualRecord onlyTrashed()
@@ -454,6 +573,34 @@ namespace App\Models{
 	class CoachRealRecord extends \Eloquent {}
 }
 
+namespace App\Models{
+/**
+ * 技师排班
+ *
+ * @property int $id
+ * @property int $coach_id 技师ID
+ * @property string $time_ranges 时间段JSON
+ * @property int $state 状态:1-启用 2-禁用
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property \Illuminate\Support\Carbon|null $deleted_at
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule onlyTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule query()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule whereCoachId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule whereDeletedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule whereState($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule whereTimeRanges($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule whereUpdatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule withTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachSchedule withoutTrashed()
+ */
+	class CoachSchedule extends \Eloquent {}
+}
+
 namespace App\Models{
 /**
  * 技师评分
@@ -494,7 +641,39 @@ namespace App\Models{
 
 namespace App\Models{
 /**
- * 技师
+ * 
+ *
+ * @property int $id
+ * @property int $coach_id 技师ID
+ * @property numeric $avg_score 平均评分
+ * @property int $comment_count 评价总数
+ * @property int $good_comment_count 好评数(4-5分)
+ * @property int $medium_comment_count 中评数(3分)
+ * @property int $bad_comment_count 差评数(1-2分)
+ * @property array|null $tag_statistics 标签统计 JSON格式
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property-read \App\Models\CoachUser|null $coach
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic query()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereAvgScore($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereBadCommentCount($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereCoachId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereCommentCount($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereGoodCommentCount($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereMediumCommentCount($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereTagStatistics($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachStatistic whereUpdatedAt($value)
+ */
+	class CoachStatistic extends \Eloquent {}
+}
+
+namespace App\Models{
+/**
+ * 技师用户模型
  *
  * @property int $id
  * @property int $user_id 用户编号
@@ -504,7 +683,7 @@ namespace App\Models{
  * @property int|null $shop_id 店铺编号
  * @property int|null $level 技师等级
  * @property int|null $virtual_order 虚拟订单数
- * @property \App\Models\CoachScore|null $score 评分
+ * @property string|null $score 评分
  * @property int $work_status 工作状态
  * @property int $virtual_status 虚拟状态
  * @property int $state 状态
@@ -515,38 +694,35 @@ namespace App\Models{
  * @property string|null $vip_time 开通会员时间
  * @property string|null $invite_code 邀请码
  * @property string|null $qr_code 二维码地址
- * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\OrderComment> $comments
- * @property-read int|null $comments_count
- * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\OrderGrabRecord> $grabRecords
- * @property-read int|null $grab_records_count
+ * @property string|null $formal_photo 正装照片
+ * @property string|null $formal_photo_remark 正装照片备注
+ * @property string|null $formal_photo_updated_at 正装照片更新时间
+ * @property int|null $formal_photo_admin_id 上传正装照片的管理员ID
+ * @property int $newcomer_sort 新人组排序(数字越大越靠前)
+ * @property string|null $newcomer_sort_updated_at 新人组排序更新时间
+ * @property int|null $newcomer_sort_admin_id 设置新人组排序的管理员ID
+ * @property-read string $state_text
  * @property-read \App\Models\CoachInfoRecord|null $info
- * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CoachInfoRecord> $infoRecords
- * @property-read int|null $info_records_count
- * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CoachLocation> $locations
- * @property-read int|null $locations_count
- * @property-read \App\Models\MemberUser|null $member
- * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CoachProject> $projects
- * @property-read int|null $projects_count
- * @property-read \App\Models\CoachQualRecord|null $qual
- * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CoachQualRecord> $qualRecords
- * @property-read int|null $qual_records_count
- * @property-read \App\Models\CoachRealRecord|null $real
- * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CoachRealAuthRecord> $realAuthRecords
- * @property-read int|null $real_auth_records_count
- * @property-read \App\Models\ShopInfo|null $shop
- * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ShopCoachService> $shopOpenService
- * @property-read int|null $shop_open_service_count
+ * @property-read \App\Models\CoachStatistic|null $statistic
+ * @property-read \App\Models\MemberUser|null $user
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser newModelQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser newQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser onlyTrashed()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser query()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereCreatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereDeletedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereFormalPhoto($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereFormalPhotoAdminId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereFormalPhotoRemark($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereFormalPhotoUpdatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereInfoRecordId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereInviteCode($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereIsVip($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereLevel($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereNewcomerSort($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereNewcomerSortAdminId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereNewcomerSortUpdatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereQrCode($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereQualificationRecordId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|CoachUser whereRealAuthRecordId($value)
@@ -605,6 +781,7 @@ namespace App\Models{
  *
  * @property int $id
  * @property int $user_id 用户编号
+ * @property string|null $phone 联系电话
  * @property string $location 定位地址
  * @property string|null $detail 详细地址
  * @property string $province 省
@@ -633,6 +810,7 @@ namespace App\Models{
  * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberAddress whereLatitude($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberAddress whereLocation($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberAddress whereLongitude($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberAddress wherePhone($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberAddress whereProvince($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberAddress whereUpdatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberAddress whereUserId($value)
@@ -642,6 +820,48 @@ namespace App\Models{
 	class MemberAddress extends \Eloquent {}
 }
 
+namespace App\Models{
+/**
+ * 
+ *
+ * @property int $id
+ * @property int $user_id 用户ID
+ * @property int $type 不良行为类型
+ * @property string $title 标题
+ * @property string $description 详细描述
+ * @property array|null $evidence 证据(图片/视频)
+ * @property int|null $related_order_id 关联订单ID
+ * @property int $operator_id 操作人ID
+ * @property string $operator_type 操作人类型
+ * @property \Illuminate\Support\Carbon $occurred_at 发生时间
+ * @property \Illuminate\Support\Carbon|null $created_at
+ * @property \Illuminate\Support\Carbon|null $updated_at
+ * @property \Illuminate\Support\Carbon|null $deleted_at
+ * @property-read \App\Models\Order|null $order
+ * @property-read \App\Models\MemberUser|null $user
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior newModelQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior newQuery()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior onlyTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior query()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereCreatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereDeletedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereDescription($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereEvidence($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereOccurredAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereOperatorId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereOperatorType($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereRelatedOrderId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereTitle($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereType($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereUpdatedAt($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior whereUserId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior withTrashed()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|MemberBadBehavior withoutTrashed()
+ */
+	class MemberBadBehavior extends \Eloquent {}
+}
+
 namespace App\Models{
 /**
  * 用户实名认证记录
@@ -690,9 +910,9 @@ namespace App\Models{
  * 用户社交账号
  *
  * @property int $id
- * @property int $user_id 用户编号
- * @property string $platform 社交平台
- * @property string $social_id 社交账号
+ * @property int|null $user_id 用户编号
+ * @property string|null $platform 社交平台
+ * @property string|null $social_id 社交账号
  * @property string|null $nickname 昵称
  * @property string|null $avatar 头像
  * @property \Illuminate\Support\Carbon|null $created_at
@@ -723,13 +943,13 @@ namespace App\Models{
  * 
  *
  * @property int $id
- * @property string $mobile 手机号
- * @property string $password 密码
+ * @property string|null $mobile 手机号
+ * @property string|null $password 密码
  * @property string|null $nickname 昵称
  * @property string|null $avatar 头像
- * @property string $gender 性别
+ * @property string|null $gender 性别
  * @property string|null $register_area 注册地(行政区划代码)
- * @property int $state 状态
+ * @property int|null $state 状态
  * @property \Illuminate\Support\Carbon|null $created_at
  * @property \Illuminate\Support\Carbon|null $updated_at
  * @property \Illuminate\Support\Carbon|null $deleted_at
@@ -775,7 +995,7 @@ namespace App\Models{
  *
  * @property int $id 订单编号
  * @property int $user_id 用户编号
- * @property int $coach_id 技师编号
+ * @property int|null $coach_id 技师编号
  * @property int $project_id 项目编号
  * @property int|null $channel_id 渠道编号
  * @property int|null $shop_id 店铺编号
@@ -784,7 +1004,7 @@ namespace App\Models{
  * @property string|null $order_no 订单交易编号
  * @property int $type 订单类型
  * @property int $source 订单来源
- * @property string|null $payment_type 支付类型
+ * @property int|null $payment_type 支付类型
  * @property string $project_amount 项目金额
  * @property string|null $traffic_amount 路费金额
  * @property string $total_amount 订单金额
@@ -806,6 +1026,8 @@ namespace App\Models{
  * @property \Illuminate\Support\Carbon|null $created_at 创建时间
  * @property \Illuminate\Support\Carbon|null $updated_at 更新时间
  * @property \Illuminate\Support\Carbon|null $deleted_at 删除时间
+ * @property string|null $service_start_time 服务开始时间
+ * @property string|null $service_end_time 服务结束时间
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order newModelQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order newQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order onlyTrashed()
@@ -832,7 +1054,9 @@ namespace App\Models{
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereProjectAmount($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereProjectId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereRemark($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereServiceEndTime($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereServiceSnapshot($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereServiceStartTime($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereServiceTime($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereShopId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|Order whereSource($value)
@@ -993,9 +1217,12 @@ namespace App\Models{
  * @property int $id
  * @property int $order_id 订单编号
  * @property int $object_id 对象编号
+ * @property int|null $old_coach_id 原技师编号
+ * @property int|null $new_coach_id 新技师编号
  * @property string $object_type 对象类型
  * @property int $state 记录状态
  * @property string|null $remark 备注
+ * @property string|null $change_reason 更换原因
  * @property \Illuminate\Support\Carbon|null $created_at
  * @property \Illuminate\Support\Carbon|null $updated_at
  * @property \Illuminate\Support\Carbon|null $deleted_at
@@ -1004,11 +1231,14 @@ namespace App\Models{
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord newQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord onlyTrashed()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord query()
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereChangeReason($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereCreatedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereDeletedAt($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereId($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereNewCoachId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereObjectId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereObjectType($value)
+ * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereOldCoachId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereOrderId($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereRemark($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|OrderRecord whereState($value)
@@ -1101,54 +1331,10 @@ namespace App\Models{
 /**
  * 临时用户列表
  *
- * @property int $user_id
- * @property string|null $nickname 昵称
- * @property string|null $avatar 头像
- * @property string $contact 手机号
- * @property string|null $last_login_time 最近登录时间
- * @property string|null $invite_code 邀请码
- * @property string|null $qrcode 二维码
- * @property string $user_status 状态
- * @property string|null $user_location 定位地址
- * @property string|null $province 省
- * @property string|null $city 市
- * @property string|null $district 区
- * @property string|null $wallet_balance 可用余额
- * @property int $order_count
- * @property int $violation_count
- * @property string $avg_order_amount
- * @property string|null $level1_inviter 昵称
- * @property string|null $level2_inviter 昵称
- * @property int|null $id
- * @property \Illuminate\Support\Carbon|null $updated_at
- * @property \Illuminate\Support\Carbon|null $created_at
- * @property \Illuminate\Support\Carbon|null $deleted_at
  * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList newModelQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList newQuery()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList onlyTrashed()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList query()
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereAvatar($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereAvgOrderAmount($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereCity($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereContact($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereCreatedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereDeletedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereDistrict($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereId($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereInviteCode($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereLastLoginTime($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereLevel1Inviter($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereLevel2Inviter($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereNickname($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereOrderCount($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereProvince($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereQrcode($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereUpdatedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereUserId($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereUserLocation($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereUserStatus($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereViolationCount($value)
- * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList whereWalletBalance($value)
  * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList withTrashed()
  * @method static \Illuminate\Database\Eloquent\Builder<static>|ReportUserList withoutTrashed()
  */
@@ -1408,6 +1594,7 @@ namespace App\Models{
  * @property \Illuminate\Support\Carbon|null $updated_at
  * @property \Illuminate\Support\Carbon|null $deleted_at
  * @property-read \App\Models\ShopAuthRecord|null $auth
+ * @property-read \App\Models\ShopAuthRecord|null $authRecord
  * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\ShopAuthRecord> $authRecords
  * @property-read int|null $auth_records_count
  * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CoachUser> $coaches

+ 9 - 0
app/Models/AgentInfo.php

@@ -76,4 +76,13 @@ class AgentInfo extends Model
     {
         return $this->hasMany('App\Models\AgentRealAuthRecord', 'agent_id', 'id');
     }
+
+    /**
+     * @Author FelixYin
+     * @description 代理商项目设置
+     */
+    public function projectConfig()
+    {
+        return $this->hasOne('App\Models\AgentProjectConfig', 'agent_id', 'id');
+    }
 }

+ 0 - 1
app/Models/CoachInfoRecord.php

@@ -43,7 +43,6 @@ class CoachInfoRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 信息记录所属技师
      */
     public function coach()

+ 0 - 1
app/Models/CoachProject.php

@@ -18,7 +18,6 @@ class CoachProject extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 技师开通项目所属服务项目
      */
     public function basicInfo()

+ 3 - 2
app/Models/CoachQualRecord.php

@@ -24,10 +24,11 @@ class CoachQualRecord extends Model
     protected string $stateEnumClass = TechnicianAuthStatus::class;
 
     /**
-     * 资质认证记录所属技师
+     * @Author FelixYin
+     * @description 资质记录所属技师
      */
     public function coach()
     {
-        return $this->belongsTo(CoachUser::class, 'coach_id');
+        return $this->belongsTo('App\Models\CoachUser', 'coach_id');
     }
 }

+ 120 - 2
app/Models/CoachUser.php

@@ -24,11 +24,12 @@ class CoachUser extends Model
     protected string $stateEnumClass = TechnicianStatus::class;
 
     /**
-     * 获取技师的基本信息
+     * @Author FelixYin
+     * @description 技师关联信息
      */
     public function info()
     {
-        return $this->belongsTo(CoachInfoRecord::class, 'info_record_id');
+        return $this->hasOne('App\Models\CoachInfoRecord', 'id', 'info_record_id');
     }
 
     /**
@@ -46,4 +47,121 @@ class CoachUser extends Model
     {
         return $this->hasOne(CoachStatistic::class, 'coach_id');
     }
+
+    /**
+     * @Author FelixYin
+     * @description 技师所属会员
+     */
+    public function member()
+    {
+        return $this->belongsTo('App\Models\MemberUser', 'user_id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 基本信息认证记录
+     */
+    public function infoRecords()
+    {
+        return $this->hasMany('App\Models\CoachInfoRecord', 'coach_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联资质信息
+     */
+    public function qual()
+    {
+        return $this->hasOne('App\Models\CoachQualRecord', 'id', 'qualification_record_id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联评分
+     */
+    public function score()
+    {
+        return $this->hasOne('App\Models\CoachScore', 'coach_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联定位
+     */
+    public function locations()
+    {
+        return $this->hasMany('App\Models\CoachLocation', 'coach_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联订单
+     */
+    public function orders()
+    {
+        return $this->hasMany('App\Models\Order', 'coach_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联抢单记录
+     */
+    public function grabRecords()
+    {
+        return $this->hasMany('App\Models\OrderGrabRecord', 'coach_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联评论
+     */
+    public function comments()
+    {
+        return $this->hasMany('App\Models\OrderComment', 'coach_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联钱包
+     */
+    public function wallet()
+    {
+        return $this->MORPH_ONE('App\Models\Wallet', 'undefined');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师所属店铺
+     */
+    public function shop()
+    {
+        return $this->belongsTo('App\Models\ShopInfo', 'shop_id', 'shop_id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联店铺开通服务
+     */
+    public function shopOpenService()
+    {
+        return $this->hasMany('App\Models\ShopCoachService', 'coach_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师关联实名信息
+     */
+    public function real()
+    {
+        return $this->hasOne('App\Models\CoachRealAuthRecord', 'id', 'real_auth_record_id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 技师开通项目
+     */
+    public function projects()
+    {
+        return $this->hasMany('App\Models\CoachProject', 'coach_id', 'id');
+    }
 }

+ 0 - 1
app/Models/MemberAddress.php

@@ -18,7 +18,6 @@ class MemberAddress extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 地址所属会员
      */
     public function member()

+ 89 - 6
app/Models/MemberUser.php

@@ -46,18 +46,101 @@ class MemberUser extends Authenticatable
     }
 
     /**
-     * 获取用户的所有地址
+     * @Author FelixYin
+     * @description 用户关联地址
      */
-    public function addresses(): HasMany
+    public function addresses()
     {
-        return $this->hasMany(MemberAddress::class, 'user_id', 'id');
+        return $this->hasMany('App\Models\MemberAddress', 'user_id', 'id');
     }
 
     /**
-     * 获取用户的所有订单
+     * @Author FelixYin
+     * @description 用户关联订单
      */
-    public function orders(): HasMany
+    public function orders()
     {
-        return $this->hasMany(Order::class, 'user_id', 'id');
+        return $this->hasMany('App\Models\Order', 'user_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 用户关联社交账户
+     */
+    public function socialAccounts()
+    {
+        return $this->hasMany('App\Models\MemberSocialAccount', 'user_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 用户关联技师身份
+     */
+    public function coach()
+    {
+        return $this->hasOne('App\Models\CoachUser', 'user_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 用户关联评论
+     */
+    public function comments()
+    {
+        return $this->hasMany('App\Models\OrderComment', 'user_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 用户关联钱包
+     */
+    public function wallet()
+    {
+        return $this->MORPH_ONE('App\Models\Wallet', 'undefined', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 用户关联店铺身份
+     */
+    public function shop()
+    {
+        return $this->hasOne('App\Models\ShopInfo', 'user_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 用户关联代理商身份
+     */
+    public function agent()
+    {
+        return $this->hasOne('App\Models\AgentInfo', 'user_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 会员所属行政区划
+     */
+    public function region()
+    {
+        return $this->belongsTo('App\Models\SysRegion', 'register_area');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 用户邀请人
+     */
+    public function Inviter()
+    {
+        return $this->hasOne('App\Models\MarketDistTeam', 'user_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 用户关联团队
+     */
+    public function teams()
+    {
+        return $this->MORPH_MANY('App\Models\MarketDistTeam', 'undefined', 'id');
     }
 }

+ 63 - 0
app/Models/Order.php

@@ -15,4 +15,67 @@ class Order extends Model
     protected $table = 'order';
 
     protected $guarded = [];
+
+    /**
+     * @Author FelixYin
+     * @description 订单异常记录
+     */
+    public function excRecords()
+    {
+        return $this->hasMany('App\Models\OrderExcRecord', 'order_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 订单所属会员
+     */
+    public function member()
+    {
+        return $this->belongsTo('App\Models\MemberUser', 'user_id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 订单所属技师
+     */
+    public function coach()
+    {
+        return $this->belongsTo('App\Models\CoachUser', 'coach_id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 订单关联记录
+     */
+    public function records()
+    {
+        return $this->hasMany('App\Models\OrderRecord', 'order_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 订单关联分销记录
+     */
+    public function distRecords()
+    {
+        return $this->hasMany('App\Models\OrderDistRecord', 'order_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 订单关联抢单记录
+     */
+    public function grabRecords()
+    {
+        return $this->hasMany('App\Models\OrderGrabRecord', 'order_id', 'id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 订单评论
+     */
+    public function comment()
+    {
+        return $this->hasOne('App\Models\OrderComment', 'order_id', 'id');
+    }
 }

+ 9 - 0
app/Models/OrderComment.php

@@ -40,4 +40,13 @@ class OrderComment extends Model
     {
         return $this->belongsTo('App\Models\CoachUser', 'coach_id');
     }
+
+    /**
+     * @Author FelixYin
+     * @description 评论所属订单
+     */
+    public function basicOrder()
+    {
+        return $this->belongsTo('App\Models\Order', 'order_id');
+    }
 }

+ 9 - 0
app/Models/OrderDistRecord.php

@@ -22,4 +22,13 @@ class OrderDistRecord extends Model
     {
         return $this->belongsTo('App\Models\Order', 'order_id');
     }
+
+    /**
+     * @Author FelixYin
+     * @description 分销记录所属订单
+     */
+    public function basicOrder()
+    {
+        return $this->belongsTo('App\Models\Order', 'order_id');
+    }
 }

+ 9 - 0
app/Models/OrderExcRecord.php

@@ -22,4 +22,13 @@ class OrderExcRecord extends Model
     {
         return $this->belongsTo('App\Models\Order', 'order_id');
     }
+
+    /**
+     * @Author FelixYin
+     * @description 异常所属订单
+     */
+    public function basicOrder()
+    {
+        return $this->belongsTo('App\Models\Order', 'order_id');
+    }
 }

+ 9 - 1
app/Models/OrderGrabRecord.php

@@ -28,11 +28,19 @@ class OrderGrabRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 抢单记录所属技师
      */
     public function coach()
     {
         return $this->belongsTo('App\Models\CoachUser', 'coach_id');
     }
+
+    /**
+     * @Author FelixYin
+     * @description 抢单记录所属订单
+     */
+    public function basicOrder()
+    {
+        return $this->belongsTo('App\Models\Order', 'order_id');
+    }
 }

+ 9 - 0
app/Models/OrderRecord.php

@@ -25,4 +25,13 @@ class OrderRecord extends Model
     {
         return $this->belongsTo('App\Models\Order', 'order_id');
     }
+
+    /**
+     * @Author FelixYin
+     * @description 记录所属订单
+     */
+    public function basicOrder()
+    {
+        return $this->belongsTo('App\Models\Order', 'order_id');
+    }
 }

+ 18 - 0
app/Models/Project.php

@@ -15,4 +15,22 @@ class Project extends Model
     protected $table = 'project';
 
     protected $guarded = [];
+
+    /**
+     * @Author FelixYin
+     * @description 项目服务所属分类
+     */
+    public function cate()
+    {
+        return $this->belongsTo('App\Models\ProjectCate', 'cate_id');
+    }
+
+    /**
+     * @Author FelixYin
+     * @description 项目服务关联店铺服务
+     */
+    public function shopServices()
+    {
+        return $this->hasMany('App\Models\ShopService', 'service_id', 'id');
+    }
 }

+ 0 - 1
app/Models/ProjectCate.php

@@ -16,7 +16,6 @@ class ProjectCate extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 项目分类关联服务
      */
     public function projects()

+ 0 - 1
app/Models/ShopAuthRecord.php

@@ -16,7 +16,6 @@ class ShopAuthRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 认证记录所属店铺
      */
     public function shop()

+ 0 - 5
app/Models/ShopInfo.php

@@ -16,7 +16,6 @@ class ShopInfo extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 店铺所属会员
      */
     public function member()
@@ -26,7 +25,6 @@ class ShopInfo extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 店铺关联认证信息
      */
     public function auth()
@@ -36,7 +34,6 @@ class ShopInfo extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 店铺关联技师
      */
     public function coaches()
@@ -46,7 +43,6 @@ class ShopInfo extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 店铺关联服务
      */
     public function services()
@@ -56,7 +52,6 @@ class ShopInfo extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 店铺关联认证记录
      */
     public function authRecords()

+ 9 - 0
app/Models/Wallet.php

@@ -44,4 +44,13 @@ class Wallet extends Model
     {
         return $this->belongsTo('App\Models\MemberUser', 'owner_id');
     }
+
+    /**
+     * @Author FelixYin
+     * @description 钱包关联退款记录
+     */
+    public function refundRecords()
+    {
+        return $this->hasMany('App\Models\WalletRefundRecord', 'wallet_id', 'id');
+    }
 }

+ 0 - 2
app/Models/WalletPaymentRecord.php

@@ -18,7 +18,6 @@ class WalletPaymentRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 支付记录所属交易
      */
     public function trans()
@@ -28,7 +27,6 @@ class WalletPaymentRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 支付记录所属钱包
      */
     public function wallet()

+ 0 - 2
app/Models/WalletRefundRecord.php

@@ -18,7 +18,6 @@ class WalletRefundRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 退款记录所属钱包
      */
     public function wallet()
@@ -28,7 +27,6 @@ class WalletRefundRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 退款记录所属交易
      */
     public function trans()

+ 0 - 4
app/Models/WalletTransRecord.php

@@ -18,7 +18,6 @@ class WalletTransRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 交易记录所属钱包
      */
     public function wallet()
@@ -28,7 +27,6 @@ class WalletTransRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 钱包交易关联提现记录
      */
     public function withdraw()
@@ -38,7 +36,6 @@ class WalletTransRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 交易关联支付记录
      */
     public function paymentRecords()
@@ -48,7 +45,6 @@ class WalletTransRecord extends Model
 
     /**
      * @Author FelixYin
-     *
      * @description 交易关联退款记录
      */
     public function refundRecords()

File diff suppressed because it is too large
+ 209 - 464
doc/系统设计/数据库设计/物理模型/xiaoding_test.md


Some files were not shown because too many files changed in this diff