Refactor customer domain by removing obsolete files and updating main application structure
- Deleted customer domain files including entities, services, handlers, and forms to streamline the codebase. - Removed customer-related routes and service initializations from the main application. - Updated Swagger documentation to reflect the removal of customer endpoints and definitions. - Cleaned up the project structure to enhance maintainability and focus on user management functionality.
This commit is contained in:
@@ -1,134 +0,0 @@
|
||||
package customer
|
||||
|
||||
// Customer Registration DTOs
|
||||
type RegisterCustomerForm struct {
|
||||
FullName string `json:"full_name" valid:"required,length(2|100)"`
|
||||
Username string `json:"username" valid:"required,alphanum,length(3|30)"`
|
||||
Email string `json:"email" valid:"required,email"`
|
||||
Mobile string `json:"mobile" valid:"required,length(10|15)"`
|
||||
Password string `json:"password" valid:"required,length(8|128)"`
|
||||
NationalID *string `json:"national_id,omitempty" valid:"optional,length(5|20)"`
|
||||
Gender *string `json:"gender,omitempty" valid:"optional,in(male|female|other)"`
|
||||
Birthdate *int64 `json:"birthdate,omitempty" valid:"optional,unix_timestamp"`
|
||||
ProfileImage *string `json:"profile_image,omitempty" valid:"optional,url"`
|
||||
CompanyID *string `json:"company_id,omitempty" valid:"optional,uuid"`
|
||||
}
|
||||
|
||||
type UpdateCustomerForm struct {
|
||||
FullName *string `json:"full_name,omitempty" valid:"optional,length(2|100)"`
|
||||
Username *string `json:"username,omitempty" valid:"optional,alphanum,length(3|30)"`
|
||||
Email *string `json:"email,omitempty" valid:"optional,email"`
|
||||
Mobile *string `json:"mobile,omitempty" valid:"optional,length(10|15)"`
|
||||
NationalID *string `json:"national_id,omitempty" valid:"optional,length(5|20)"`
|
||||
Gender *string `json:"gender,omitempty" valid:"optional,in(male|female|other)"`
|
||||
Birthdate *int64 `json:"birthdate,omitempty" valid:"optional,unix_timestamp"`
|
||||
ProfileImage *string `json:"profile_image,omitempty" valid:"optional,url"`
|
||||
Status *string `json:"status,omitempty" valid:"optional,in(active|inactive)"`
|
||||
}
|
||||
|
||||
// Customer Authentication DTOs
|
||||
type LoginForm struct {
|
||||
EmailOrMobile string `json:"email_or_mobile" valid:"required"`
|
||||
Password string `json:"password" valid:"required"`
|
||||
}
|
||||
|
||||
type RefreshTokenForm struct {
|
||||
RefreshToken string `json:"refresh_token" valid:"required"`
|
||||
}
|
||||
|
||||
type ChangePasswordForm struct {
|
||||
OldPassword string `json:"old_password" valid:"required"`
|
||||
NewPassword string `json:"new_password" valid:"required,length(8|128)"`
|
||||
}
|
||||
|
||||
// Device Token DTOs
|
||||
type AddDeviceTokenForm struct {
|
||||
DeviceToken string `json:"device_token" valid:"required,length(32|255)"`
|
||||
DeviceType string `json:"device_type" valid:"required,in(android|ios)"`
|
||||
}
|
||||
|
||||
type RemoveDeviceTokenForm struct {
|
||||
DeviceToken string `json:"device_token" valid:"required"`
|
||||
}
|
||||
|
||||
// Admin DTOs
|
||||
type ListCustomersForm struct {
|
||||
Search *string `query:"search" valid:"optional"`
|
||||
Status *string `query:"status" valid:"optional,in(active|inactive)"`
|
||||
Gender *string `query:"gender" valid:"optional,in(male|female|other)"`
|
||||
CompanyID *string `query:"company_id" valid:"optional,uuid"`
|
||||
Limit *int `query:"limit" valid:"optional,range(1|100)"`
|
||||
Offset *int `query:"offset" valid:"optional,min(0)"`
|
||||
SortBy *string `query:"sort_by" valid:"optional,in(full_name|email|mobile|created_at|last_login_at)"`
|
||||
SortOrder *string `query:"sort_order" valid:"optional,in(asc|desc)"`
|
||||
}
|
||||
|
||||
type UpdateCustomerStatusForm struct {
|
||||
Status string `json:"status" valid:"required,in(active|inactive)"`
|
||||
}
|
||||
|
||||
// Response DTOs
|
||||
type CustomerResponse struct {
|
||||
ID string `json:"id"`
|
||||
FullName string `json:"full_name"`
|
||||
Username string `json:"username"`
|
||||
Email string `json:"email"`
|
||||
Mobile string `json:"mobile"`
|
||||
NationalID *string `json:"national_id,omitempty"`
|
||||
Gender *string `json:"gender,omitempty"`
|
||||
Birthdate *int64 `json:"birthdate,omitempty"`
|
||||
ProfileImage *string `json:"profile_image,omitempty"`
|
||||
Status string `json:"status"`
|
||||
CompanyID *string `json:"company_id,omitempty"`
|
||||
IsVerified bool `json:"is_verified"`
|
||||
DeviceTokens []DeviceToken `json:"device_tokens"`
|
||||
LastLoginAt *int64 `json:"last_login_at,omitempty"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
UpdatedAt int64 `json:"updated_at"`
|
||||
}
|
||||
|
||||
type AuthResponse struct {
|
||||
Customer *CustomerResponse `json:"customer"`
|
||||
AccessToken string `json:"access_token"`
|
||||
RefreshToken string `json:"refresh_token"`
|
||||
ExpiresAt int64 `json:"expires_at"`
|
||||
}
|
||||
|
||||
type DeviceTokenResponse struct {
|
||||
Token string `json:"token"`
|
||||
DeviceType string `json:"device_type"`
|
||||
CreatedAt int64 `json:"created_at"`
|
||||
UpdatedAt int64 `json:"updated_at"`
|
||||
}
|
||||
|
||||
// Helper function to convert Customer to CustomerResponse
|
||||
func (c *Customer) ToResponse() *CustomerResponse {
|
||||
gender := ""
|
||||
if c.Gender != nil {
|
||||
gender = string(*c.Gender)
|
||||
}
|
||||
|
||||
companyID := ""
|
||||
if c.CompanyID != nil {
|
||||
companyID = c.CompanyID.String()
|
||||
}
|
||||
|
||||
return &CustomerResponse{
|
||||
ID: c.ID.String(),
|
||||
FullName: c.FullName,
|
||||
Username: c.Username,
|
||||
Email: c.Email,
|
||||
Mobile: c.Mobile,
|
||||
NationalID: c.NationalID,
|
||||
Gender: &gender,
|
||||
Birthdate: c.Birthdate,
|
||||
ProfileImage: c.ProfileImage,
|
||||
Status: string(c.Status),
|
||||
CompanyID: &companyID,
|
||||
IsVerified: c.IsVerified,
|
||||
DeviceTokens: c.DeviceTokens,
|
||||
LastLoginAt: c.LastLoginAt,
|
||||
CreatedAt: c.CreatedAt,
|
||||
UpdatedAt: c.UpdatedAt,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user