feat: implement VM snapshot management, enhance client resource loading, and refactor deployment workflow for production

This commit is contained in:
pbao9
2026-05-11 11:09:55 +07:00
parent 8aef607e1f
commit 96778e7bed
51 changed files with 2536 additions and 1249 deletions
+59 -209
View File
@@ -119,282 +119,132 @@ class RepositoryProvider extends ServiceProvider
public function register()
{
//Addon
$this->app->bind(
AddonRepositoryInterface::class,
AddonCachedRepository::class
);
$this->app->singleton(AddonRepositoryInterface::class, AddonCachedRepository::class);
//Banned
$this->app->bind(
BannedRepositoryInterface::class,
BannedCachedRepository::class
);
$this->app->singleton(BannedRepositoryInterface::class, BannedCachedRepository::class);
//Customer
$this->app->bind(
CustomerRepositoryInterface::class,
CustomerCachedRepository::class
);
$this->app->singleton(CustomerRepositoryInterface::class, CustomerCachedRepository::class);
//Customer
$this->app->bind(
CustomerRepositoryInterface::class,
CustomerCachedRepository::class
);
$this->app->singleton(CustomerCachedRepository::class);
//Customer Log
$this->app->bind(
CustomerLogRepositoryInterface::class,
CustomerLogCachedRepository::class
);
$this->app->singleton(CustomerLogRepositoryInterface::class, CustomerLogCachedRepository::class);
//Discount
$this->app->bind(
DiscountRepositoryInterface::class,
DiscountCachedRepository::class
);
$this->app->singleton(DiscountRepositoryInterface::class, DiscountCachedRepository::class);
//Domain
$this->app->bind(
DomainRepositoryInterface::class,
DomainCachedRepository::class
);
$this->app->singleton(DomainRepositoryInterface::class, DomainCachedRepository::class);
//Domain Type
$this->app->bind(
DomainTypeRepositoryInterface::class,
DomainTypeCachedRepository::class
);
$this->app->singleton(DomainTypeRepositoryInterface::class, DomainTypeCachedRepository::class);
//File
$this->app->bind(
FileRepositoryInterface::class,
FileCachedRepository::class
);
$this->app->singleton(FileRepositoryInterface::class, FileCachedRepository::class);
//Group
$this->app->bind(
GroupRepositoryInterface::class,
GroupCachedRepository::class
);
$this->app->singleton(GroupRepositoryInterface::class, GroupCachedRepository::class);
//Hosting
$this->app->bind(
HostingRepositoryInterface::class,
HostingCachedRepository::class
);
$this->app->singleton(HostingRepositoryInterface::class, HostingCachedRepository::class);
//Invoice
$this->app->bind(
InvoiceRepositoryInterface::class,
InvoiceCachedRepository::class
);
$this->app->singleton(InvoiceRepositoryInterface::class, InvoiceCachedRepository::class);
//Invoice Attachment
$this->app->bind(
InvoiceAttachmentRepositoryInterface::class,
InvoiceAttachmentRepository::class
);
$this->app->singleton(InvoiceAttachmentRepositoryInterface::class, InvoiceAttachmentRepository::class);
//Invoice Item
$this->app->bind(
InvoiceItemRepositoryInterface::class,
InvoiceItemCachedRepository::class
);
$this->app->singleton(InvoiceItemRepositoryInterface::class, InvoiceItemCachedRepository::class);
//Log
$this->app->bind(
LogRepositoryInterface::class,
LogCachedRepository::class
);
$this->app->singleton(LogRepositoryInterface::class, LogCachedRepository::class);
//Mail
$this->app->bind(
MailRepositoryInterface::class,
MailCachedRepository::class
);
$this->app->singleton(MailRepositoryInterface::class, MailCachedRepository::class);
//Note
$this->app->bind(
NoteRepositoryInterface::class,
NoteCachedRepository::class
);
$this->app->singleton(NoteRepositoryInterface::class, NoteCachedRepository::class);
//Order
$this->app->bind(
OrderRepositoryInterface::class,
OrderCachedRepository::class
);
$this->app->singleton(OrderRepositoryInterface::class, OrderCachedRepository::class);
//Os
$this->app->bind(
OsRepositoryInterface::class,
OsCachedRepository::class
);
$this->app->singleton(OsRepositoryInterface::class, OsCachedRepository::class);
// Os Group
$this->app->bind(
OsGroupRepositoryInterface::class,
OsGroupCachedRepository::class
);
$this->app->singleton(OsGroupRepositoryInterface::class, OsGroupCachedRepository::class);
// Payment
$this->app->bind(
PaymentReppositoryInterface::class,
PaymentCachedReppository::class
);
$this->app->singleton(PaymentReppositoryInterface::class, PaymentCachedReppository::class);
// Menu
$this->app->bind(
MenuRepositoryInterface::class,
MenuCachedRepository::class
);
$this->app->singleton(MenuRepositoryInterface::class, MenuCachedRepository::class);
//Post
$this->app->bind(
PostRepositoryInterface::class,
PostCachedRepository::class
);
$this->app->singleton(PostRepositoryInterface::class, PostCachedRepository::class);
//Setting
$this->app->bind(
SettingRepositoryInterface::class,
SettingCachedRepository::class
);
$this->app->singleton(SettingRepositoryInterface::class, SettingCachedRepository::class);
//Staff
$this->app->bind(
StaffRepositoryInterface::class,
StaffRepository::class
);
$this->app->singleton(StaffRepositoryInterface::class, StaffRepository::class);
//Template
$this->app->bind(
TemplateRepositoryInterface::class,
TemplateCachedRepository::class
);
$this->app->singleton(TemplateRepositoryInterface::class, TemplateCachedRepository::class);
//Ticket
$this->app->bind(
TicketRepositoryInterface::class,
TicketCachedRepository::class
);
$this->app->singleton(TicketRepositoryInterface::class, TicketCachedRepository::class);
//Ticket Reply
$this->app->bind(
TicketReplyRepositoryInterface::class,
TicketReplyCachedRepository::class
);
$this->app->singleton(TicketReplyRepositoryInterface::class, TicketReplyCachedRepository::class);
//Transaction
$this->app->bind(
TransactionRepositoryInterface::class,
TransactionCachedRepository::class
);
$this->app->singleton(TransactionRepositoryInterface::class, TransactionCachedRepository::class);
//Service
$this->app->bind(
ServiceRepositoryInterface::class,
ServiceRepository::class
);
$this->app->singleton(ServiceRepositoryInterface::class, ServiceRepository::class);
//Module Datacenter
$this->app->bind(
DatacenterRepositoryInterface::class,
DatacenterCachedRepository::class
);
$this->app->singleton(DatacenterRepositoryInterface::class, DatacenterCachedRepository::class);
//Module Datastore
$this->app->bind(
DatastoreRepositoryInterface::class,
DatastoreCachedRepository::class
);
$this->app->singleton(DatastoreRepositoryInterface::class, DatastoreCachedRepository::class);
// Module DnsServer
$this->app->bind(
DnsServerRepositoryInterface::class,
DnsServerCachedRepository::class
);
$this->app->singleton(DnsServerRepositoryInterface::class, DnsServerCachedRepository::class);
//Module Domain
$this->app->bind(
ModuleDomainRepositoryInterface::class,
ModuleDomainCachedRepository::class
);
$this->app->singleton(ModuleDomainRepositoryInterface::class, ModuleDomainCachedRepository::class);
//Module Folder
$this->app->bind(
FolderRepositoryInterface::class,
FolderCachedRepository::class
);
$this->app->singleton(FolderRepositoryInterface::class, FolderCachedRepository::class);
//Host
$this->app->bind(
HostRepositoryInterface::class,
HostCachedRepository::class
);
$this->app->singleton(HostRepositoryInterface::class, HostCachedRepository::class);
//Hosting
$this->app->bind(
ModuleHostingRepositoryInterface::class,
ModuleHostingCachedRepository::class
);
$this->app->singleton(ModuleHostingRepositoryInterface::class, ModuleHostingCachedRepository::class);
//Hosting Server
$this->app->bind(
HostingServerRepositoryInterface::class,
HostingServerCachedRepository::class
);
$this->app->singleton(HostingServerRepositoryInterface::class, HostingServerCachedRepository::class);
//IpAddress
$this->app->bind(
IpAddressRepositoryInterface::class,
IpAddressCachedRepository::class
);
$this->app->singleton(IpAddressRepositoryInterface::class, IpAddressCachedRepository::class);
//Network
$this->app->bind(
NetworkRepositoryInterface::class,
NetworkCachedRepository::class
);
$this->app->singleton(NetworkRepositoryInterface::class, NetworkCachedRepository::class);
//Snapshot
$this->app->bind(
SnapshotRepositoryInterface::class,
SnapshotCachedRepository::class
);
$this->app->singleton(SnapshotRepositoryInterface::class, SnapshotCachedRepository::class);
//Snapshot Limit
$this->app->bind(
SnapshotLimitRepositoryInterface::class,
SnapshotLimitCachedRepository::class
);
$this->app->singleton(SnapshotLimitRepositoryInterface::class, SnapshotLimitCachedRepository::class);
//vmware
$this->app->bind(
VmwareRepositoryInterface::class,
VmwareCachedRepository::class
);
$this->app->singleton(VmwareRepositoryInterface::class, VmwareCachedRepository::class);
//User
$this->app->bind(
UserRepositoryInterface::class,
UserCachedRepository::class
);
$this->app->singleton(UserRepositoryInterface::class, UserCachedRepository::class);
//vCenter
$this->app->bind(
vCenterRepositoryInterface::class,
vCenterCachedRepository::class
);
$this->app->singleton(vCenterRepositoryInterface::class, vCenterCachedRepository::class);
//vps
$this->app->bind(
VPSRepositoryInterface::class,
VPSCachedRepository::class
);
$this->app->singleton(VPSRepositoryInterface::class, VPSCachedRepository::class);
//Module IP Pool
$this->app->bind(
IPPoolRepositoryInterface::class,
IPPoolCachedRepository::class
);
$this->app->singleton(IPPoolRepositoryInterface::class, IPPoolCachedRepository::class);
//Module VirtualMachine
$this->app->bind(
VirtualMachineRepositoryInterface::class,
VirtualMachineRepository::class
);
$this->app->singleton(VirtualMachineRepositoryInterface::class, VirtualMachineRepository::class);
// Product
$this->app->bind(
ProductRepositoryInterface::class,
ProductRepository::class
);
$this->app->singleton(ProductRepositoryInterface::class, ProductRepository::class);
// Product Category
$this->app->bind(
ProductCategoryRepositoryInterface::class,
ProductCategoryRepository::class
);
$this->app->singleton(ProductCategoryRepositoryInterface::class, ProductCategoryRepository::class);
// Client API
$this->app->bind(
$this->app->singleton(
\App\Repositories\Api\Client\ClientRepositoryInterface::class,
\App\Repositories\Api\Client\ClientRepository::class
\App\Repositories\Api\Client\ClientRepository::class,
);
// Service API
$this->app->bind(
$this->app->singleton(
\App\Repositories\Api\Service\ServiceRepositoryInterface::class,
\App\Repositories\Api\Service\ServiceRepository::class
\App\Repositories\Api\Service\ServiceRepository::class,
);
// Service Client API
$this->app->bind(
$this->app->singleton(
\App\Repositories\Api\ServiceClient\ServiceClientRepositoryInterface::class,
\App\Repositories\Api\ServiceClient\ServiceClientRepository::class
\App\Repositories\Api\ServiceClient\ServiceClientRepository::class,
);
// DNS Manager
$this->app->bind(DnsManagerServerRepositoryInterface::class, DnsManagerServerRepository::class);
$this->app->bind(DnsDomainRepositoryInterface::class, DnsDomainRepository::class);
$this->app->bind(DnsRecordRepositoryInterface::class, DnsRecordRepository::class);
$this->app->singleton(DnsManagerServerRepositoryInterface::class, DnsManagerServerRepository::class);
$this->app->singleton(DnsDomainRepositoryInterface::class, DnsDomainRepository::class);
$this->app->singleton(DnsRecordRepositoryInterface::class, DnsRecordRepository::class);
}
/**