package structs

import "time"

type Organization struct {
	Id              string `gorm:"primaryKey;type:varchar(36)"`
	Subdomain       string `gorm:"type:varchar(255)"`
	OwnerUserId     string `gorm:"type:varchar(36)"`
	CompanyName     string `gorm:"type:varchar(255)"`
	PrimaryColor    string `gorm:"type:varchar(6)"`
	LogoUrl         string `gorm:"type:varchar(255)"`
	BannerUrl       string `gorm:"type:varchar(255)"`
	SignUpScreenUrl string `gorm:"type:varchar(255)"`
	CreatedAt       time.Time
	UpdatedAt       time.Time
}

// swagger:model CreateOrganizationRequest
type CreateOrganizationRequest struct {
	Email    string
	Password string
}

// swagger:model CreateOrganizationResponse
type CreateOrganizationResponse struct {
	OrganizationSubdomain string
	Session               string
}

// swagger:model GetOrganizationSettingsResponse
type GetOrganizationSettingsResponse struct {
	Subdomain    string
	CompanyName  string
	PrimaryColor string
	LogoUrl      string
	BannerUrl    string
}

// swagger:model UpdateOrganizationSettingsRequest
type UpdateOrganizationSettingsRequest struct {
	CompanyName  string
	PrimaryColor string
}

// swagger:model UpdateOrganizationFileParam
type UpdateOrganizationFileParam struct {
	Type string
}

// swagger:model IsSubdomainAvailableResponse
type IsSubdomainAvailableResponse struct {
	Available bool
}

// swagger:model SubdomainParam
type SubdomainParam struct {
	Subdomain string
}
