48 lines
1.7 KiB
Go
Executable file
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"`
|
|
}
|