gohorsejobs/backend/internal/models/company.go

48 lines
1.7 KiB
Go
Executable file

package models
import "time"
// Company represents an employer organization
type Company struct {
ID string `json:"id" db:"id"`
Name string `json:"name" db:"name"`
Slug string `json:"slug" db:"slug"`
Type string `json:"type" db:"type"`
Document *string `json:"document,omitempty" db:"document"` // Houjin Bangou
// Contact
Address *string `json:"address,omitempty" db:"address"`
RegionID *int `json:"regionId,omitempty" db:"region_id"`
CityID *int `json:"cityId,omitempty" db:"city_id"`
Phone *string `json:"phone,omitempty" db:"phone"`
Email *string `json:"email,omitempty" db:"email"`
Website *string `json:"website,omitempty" db:"website"`
// Branding
LogoURL *string `json:"logoUrl,omitempty" db:"logo_url"`
Description *string `json:"description,omitempty" db:"description"`
// Profile
EmployeeCount *string `json:"employeeCount,omitempty" db:"employee_count"` // 1-10, 11-50, etc.
FoundedYear *int `json:"foundedYear,omitempty" db:"founded_year"`
// Status
Active bool `json:"active" db:"active"`
Verified bool `json:"verified" db:"verified"`
// Subscription
StripeCustomerID *string `json:"stripeCustomerId,omitempty" db:"stripe_customer_id"`
SubscriptionPlan *string `json:"subscriptionPlan,omitempty" db:"subscription_plan"`
SubscriptionStatus *string `json:"subscriptionStatus,omitempty" db:"subscription_status"`
// Metadata
CreatedAt time.Time `json:"createdAt" db:"created_at"`
UpdatedAt time.Time `json:"updatedAt" db:"updated_at"`
}
// CompanyWithLocation includes region and city information
type CompanyWithLocation struct {
Company
RegionName *string `json:"regionName,omitempty"`
CityName *string `json:"cityName,omitempty"`
}