db

package
v0.0.0-...-7f4fd67 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetNullInt64Value

func GetNullInt64Value(ni sql.NullInt64) (int64, error)

Function to get the value of sql.NullInt64

func Int64ToString

func Int64ToString(n int64) string

func NewSqlNullInt64

func NewSqlNullInt64(n int64) sql.NullInt64

func NullInt64ToString

func NullInt64ToString(ni sql.NullInt64) string

func OpenDb

func OpenDb() *sql.DB

Types

type ActiveActivity

type ActiveActivity struct {
	ID        int64           `json:"id"`
	Title     string          `json:"title"`
	StartDate Date            `json:"start_date"`
	EndDate   Date            `json:"end_date"`
	VenueID   int32           `json:"venue_id"`
	HostID    int32           `json:"host_id"`
	Metadata  json.RawMessage `json:"metadata"`
	CreatedAt time.Time       `json:"created_at"`
	UpdatedAt time.Time       `json:"updated_at"`
	DeletedAt sql.NullTime    `json:"deleted_at"`
}

type ActiveActivityDetail

type ActiveActivityDetail struct {
	ID        int64           `json:"id"`
	Title     string          `json:"title"`
	StartDate Date            `json:"start_date"`
	EndDate   Date            `json:"end_date"`
	VenueID   int32           `json:"venue_id"`
	HostID    int32           `json:"host_id"`
	Metadata  json.RawMessage `json:"metadata"`
	CreatedAt time.Time       `json:"created_at"`
	UpdatedAt time.Time       `json:"updated_at"`
	DeletedAt sql.NullTime    `json:"deleted_at"`
	Venue     string          `json:"venue"`
	Region    string          `json:"region"`
	Host      string          `json:"host"`
}

type ActiveActivityDetailWithCount

type ActiveActivityDetailWithCount struct {
	ActiveActivityDetail
	TotalItems int64
}

type Activity

type Activity struct {
	ID        int64           `json:"id"`
	Title     string          `json:"title"`
	StartDate Date            `json:"start_date"`
	EndDate   Date            `json:"end_date"`
	VenueID   int32           `json:"venue_id"`
	HostID    int32           `json:"host_id"`
	Metadata  json.RawMessage `json:"metadata"`
	CreatedAt time.Time       `json:"created_at"`
	UpdatedAt time.Time       `json:"updated_at"`
	DeletedAt sql.NullTime    `json:"deleted_at"`
}

type ActivityDetail

type ActivityDetail struct {
	ID        int64           `json:"id"`
	Title     string          `json:"title"`
	StartDate Date            `json:"start_date"`
	EndDate   Date            `json:"end_date"`
	VenueID   int32           `json:"venue_id"`
	HostID    int32           `json:"host_id"`
	Metadata  json.RawMessage `json:"metadata"`
	CreatedAt time.Time       `json:"created_at"`
	UpdatedAt time.Time       `json:"updated_at"`
	DeletedAt sql.NullTime    `json:"deleted_at"`
	Venue     string          `json:"venue"`
	Region    string          `json:"region"`
	Host      string          `json:"host"`
}

type Cache

type Cache struct {
	// contains filtered or unexported fields
}

func NewCache

func NewCache(redisClient *redis.Client, dbQueries *Queries) *Cache

NewCache initializes the Cache struct with a Redis client and the sqlc queries.

func (*Cache) GetActivityByID

func (c *Cache) GetActivityByID(ctx context.Context, id int64) (ActiveActivityDetail, error)

GetActivityByID uses the generic cacheFetch to handle caching logic.

func (*Cache) InvalidateActivityCache

func (c *Cache) InvalidateActivityCache(ctx context.Context, id int64) error

InvalidateActivityCache invalidates the cache for a given activity ID (e.g., after an update).

type CreateActivityParams

type CreateActivityParams struct {
	Title     string          `json:"title"`
	StartDate Date            `json:"start_date"`
	EndDate   Date            `json:"end_date"`
	VenueID   int32           `json:"venue_id"`
	HostID    int32           `json:"host_id"`
	Metadata  json.RawMessage `json:"metadata"`
}

type CreateOfficeParams

type CreateOfficeParams struct {
	Name     *string         `json:"name"`
	Metadata json.RawMessage `json:"metadata"`
}

type CreatePersonnelParams

type CreatePersonnelParams struct {
	Lastname   string          `json:"lastname"`
	Firstname  string          `json:"firstname"`
	Mi         sql.NullString  `json:"mi"`
	PositionID int16           `json:"position_id"`
	OfficeID   sql.NullInt16   `json:"office_id"`
	Metadata   json.RawMessage `json:"metadata"`
}

type CreatePositionParams

type CreatePositionParams struct {
	Title    *string         `json:"title"`
	Metadata json.RawMessage `json:"metadata"`
}

type CreateTravelParams

type CreateTravelParams struct {
	StartDate  Date            `json:"start_date"`
	EndDate    Date            `json:"end_date"`
	Status     int16           `json:"status"`
	Remarks    *string         `json:"remarks"`
	Metadata   json.RawMessage `json:"metadata"`
	ActivityID int32           `json:"activity_id"`
}

type CreateVenueParams

type CreateVenueParams struct {
	Name       string `json:"name"`
	DivisionID int32  `json:"division_id"`
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type Database

type Database struct {
	Db    *sql.DB
	Query *Queries
}

func NewDatabase

func NewDatabase(db *sql.DB, queries *Queries) *Database

type Date

type Date struct {
	Time  time.Time
	Valid bool // Valid is true if the Date is not NULL
}

Date is a custom type for storing Go's time.Time as a PostgreSQL DATE.

func NewDate

func NewDate(t time.Time) Date

NewDate creates a new Date instance with a valid time.

func NullDate

func NullDate() Date

NullDate returns a Date instance with a NULL value.

func (Date) MarshalJSON

func (d Date) MarshalJSON() ([]byte, error)

MarshalJSON implements the json.Marshaler interface for JSON serialization.

func (*Date) Scan

func (d *Date) Scan(value interface{}) error

Scan implements the sql.Scanner interface to read a DATE value from the database.

func (*Date) UnmarshalJSON

func (d *Date) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the json.Unmarshaler interface for JSON deserialization.

func (Date) Value

func (d Date) Value() (driver.Value, error)

Value implements the driver.Valuer interface to write the Date value to the database.

type Division

type Division struct {
	ID       int32  `json:"id"`
	Name     string `json:"name"`
	RegionID int16  `json:"region_id"`
}

type FieldType

type FieldType int
const (
	TextField FieldType = iota + 1
	DateField
)

type FindTravelByActivityTitleRow

type FindTravelByActivityTitleRow struct {
	ID          int64           `json:"id"`
	StartDate   Date            `json:"start_date"`
	EndDate     Date            `json:"end_date"`
	Status      int16           `json:"status"`
	Remarks     *string         `json:"remarks"`
	Metadata    json.RawMessage `json:"metadata"`
	ActivityID  int32           `json:"activity_id"`
	CreatedAt   time.Time       `json:"created_at"`
	UpdatedAt   time.Time       `json:"updated_at"`
	DeletedAt   sql.NullTime    `json:"deleted_at"`
	ID_2        int64           `json:"id_2"`
	Title       string          `json:"title"`
	StartDate_2 Date            `json:"start_date_2"`
	EndDate_2   Date            `json:"end_date_2"`
	VenueID     int32           `json:"venue_id"`
	HostID      int32           `json:"host_id"`
	Metadata_2  json.RawMessage `json:"metadata_2"`
	CreatedAt_2 time.Time       `json:"created_at_2"`
	UpdatedAt_2 time.Time       `json:"updated_at_2"`
	DeletedAt_2 sql.NullTime    `json:"deleted_at_2"`
}

type GetDivisionWithRegionRow

type GetDivisionWithRegionRow struct {
	ID       int32  `json:"id"`
	Name     string `json:"name"`
	RegionID int16  `json:"region_id"`
	Region   string `json:"region"`
}

type GetVenuesRow

type GetVenuesRow struct {
	ID         int32           `json:"id"`
	Name       string          `json:"name"`
	DivisionID int32           `json:"division_id"`
	Metadata   json.RawMessage `json:"metadata"`
	CreatedAt  time.Time       `json:"created_at"`
	UpdatedAt  time.Time       `json:"updated_at"`
	DeletedAt  sql.NullTime    `json:"deleted_at"`
	Division   string          `json:"division"`
	Region     string          `json:"region"`
}

type Host

type Host struct {
	ID        int64           `json:"id"`
	Name      string          `json:"name"`
	Metadata  json.RawMessage `json:"metadata"`
	CreatedAt time.Time       `json:"created_at"`
	UpdatedAt time.Time       `json:"updated_at"`
	DeletedAt sql.NullTime    `json:"deleted_at"`
}

type Office

type Office struct {
	ID        int32           `json:"id"`
	Name      *string         `json:"name"`
	ShortName string          `json:"short_name"`
	Metadata  json.RawMessage `json:"metadata"`
	CreatedAt time.Time       `json:"created_at"`
	UpdatedAt time.Time       `json:"updated_at"`
	DeletedAt sql.NullTime    `json:"deleted_at"`
}

type Personnel

type Personnel struct {
	ID         int32           `json:"id"`
	Lastname   string          `json:"lastname"`
	Firstname  string          `json:"firstname"`
	Mi         sql.NullString  `json:"mi"`
	PositionID int16           `json:"position_id"`
	OfficeID   sql.NullInt16   `json:"office_id"`
	Metadata   json.RawMessage `json:"metadata"`
	CreatedAt  time.Time       `json:"created_at"`
	UpdatedAt  time.Time       `json:"updated_at"`
	DeletedAt  sql.NullTime    `json:"deleted_at"`
}

type Position

type Position struct {
	ID        int32           `json:"id"`
	Title     *string         `json:"title"`
	Metadata  json.RawMessage `json:"metadata"`
	CreatedAt time.Time       `json:"created_at"`
	UpdatedAt time.Time       `json:"updated_at"`
	DeletedAt sql.NullTime    `json:"deleted_at"`
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries

func (*Queries) CountActiveActivities

func (q *Queries) CountActiveActivities(ctx context.Context) (int64, error)

func (*Queries) CountActivities

func (q *Queries) CountActivities(ctx context.Context) (int64, error)

func (*Queries) CreateActivity

func (q *Queries) CreateActivity(ctx context.Context, arg CreateActivityParams) (Activity, error)

func (*Queries) CreateHost

func (q *Queries) CreateHost(ctx context.Context, name string) (Host, error)

func (*Queries) CreateOffice

func (q *Queries) CreateOffice(ctx context.Context, arg CreateOfficeParams) (Office, error)

func (*Queries) CreatePersonnel

func (q *Queries) CreatePersonnel(ctx context.Context, arg CreatePersonnelParams) (Personnel, error)

func (*Queries) CreatePosition

func (q *Queries) CreatePosition(ctx context.Context, arg CreatePositionParams) (Position, error)

func (*Queries) CreateTravel

func (q *Queries) CreateTravel(ctx context.Context, arg CreateTravelParams) (Travel, error)

func (*Queries) CreateVenue

func (q *Queries) CreateVenue(ctx context.Context, arg CreateVenueParams) (Venue, error)

func (*Queries) DeleteActivity

func (q *Queries) DeleteActivity(ctx context.Context, id int64) error

func (*Queries) DeleteHost

func (q *Queries) DeleteHost(ctx context.Context, id int64) error

func (*Queries) DeleteOffice

func (q *Queries) DeleteOffice(ctx context.Context, id int32) error

func (*Queries) DeletePersonnel

func (q *Queries) DeletePersonnel(ctx context.Context, id int32) error

func (*Queries) DeletePosition

func (q *Queries) DeletePosition(ctx context.Context, id int32) error

func (*Queries) DeleteTravel

func (q *Queries) DeleteTravel(ctx context.Context, id int64) error

func (*Queries) FindActiveActivity

func (q *Queries) FindActiveActivity(ctx context.Context, id int64) (int64, error)

func (*Queries) FindActiveActivityDetails

func (q *Queries) FindActiveActivityDetails(ctx context.Context, id int64) (ActiveActivityDetail, error)

func (*Queries) FindActivity

func (q *Queries) FindActivity(ctx context.Context, id int64) (Activity, error)

func (*Queries) FindActivityDetail

func (q *Queries) FindActivityDetail(ctx context.Context, id int64) (ActivityDetail, error)

func (*Queries) FindDivision

func (q *Queries) FindDivision(ctx context.Context, id int32) (Division, error)

func (*Queries) FindDivisionsByRegion

func (q *Queries) FindDivisionsByRegion(ctx context.Context, regionID int16) ([]Division, error)

func (*Queries) FindHost

func (q *Queries) FindHost(ctx context.Context, id int64) (Host, error)

func (*Queries) FindHostsByName

func (q *Queries) FindHostsByName(ctx context.Context) ([]Host, error)

func (*Queries) FindOffice

func (q *Queries) FindOffice(ctx context.Context, id int32) (Office, error)

func (*Queries) FindOfficeByName

func (q *Queries) FindOfficeByName(ctx context.Context) ([]Office, error)

func (*Queries) FindPersonnel

func (q *Queries) FindPersonnel(ctx context.Context, id int32) (Personnel, error)

func (*Queries) FindPersonnelByFirstname

func (q *Queries) FindPersonnelByFirstname(ctx context.Context, firstname string) ([]Personnel, error)

func (*Queries) FindPersonnelByLastname

func (q *Queries) FindPersonnelByLastname(ctx context.Context, lastname string) ([]Personnel, error)

func (*Queries) FindPosition

func (q *Queries) FindPosition(ctx context.Context, id int32) (Position, error)

func (*Queries) FindPositionByTitle

func (q *Queries) FindPositionByTitle(ctx context.Context) ([]Position, error)

func (*Queries) FindTravel

func (q *Queries) FindTravel(ctx context.Context, id int64) (Travel, error)

func (*Queries) FindTravelByActivityId

func (q *Queries) FindTravelByActivityId(ctx context.Context, activityID int32) ([]Travel, error)

func (*Queries) FindTravelByActivityTitle

func (q *Queries) FindTravelByActivityTitle(ctx context.Context, activityID int32) ([]FindTravelByActivityTitleRow, error)

func (*Queries) FindTravelByStartDate

func (q *Queries) FindTravelByStartDate(ctx context.Context, startDate Date) ([]Travel, error)

func (*Queries) GetDivisionOrderedByRegion

func (q *Queries) GetDivisionOrderedByRegion(ctx context.Context) ([]Division, error)

func (*Queries) GetDivisionWithRegion

func (q *Queries) GetDivisionWithRegion(ctx context.Context) ([]GetDivisionWithRegionRow, error)

func (*Queries) GetDivisions

func (q *Queries) GetDivisions(ctx context.Context) ([]Division, error)

func (*Queries) GetHosts

func (q *Queries) GetHosts(ctx context.Context) ([]Host, error)

func (*Queries) GetRegions

func (q *Queries) GetRegions(ctx context.Context) ([]Region, error)

func (*Queries) GetVenues

func (q *Queries) GetVenues(ctx context.Context) ([]GetVenuesRow, error)

func (*Queries) ListActiveActivities

func (q *Queries) ListActiveActivities(ctx context.Context, args request.QueryParams, searchFieldType FieldType) ([]ActiveActivityDetailWithCount, error)

func (*Queries) ListOffice

func (q *Queries) ListOffice(ctx context.Context) ([]Office, error)

func (*Queries) ListPersonnel

func (q *Queries) ListPersonnel(ctx context.Context) ([]Personnel, error)

func (*Queries) ListPosition

func (q *Queries) ListPosition(ctx context.Context) ([]Position, error)

func (*Queries) ListTravels

func (q *Queries) ListTravels(ctx context.Context) ([]Travel, error)

func (*Queries) RestoreActivity

func (q *Queries) RestoreActivity(ctx context.Context, id int64) error

func (*Queries) RestoreOffice

func (q *Queries) RestoreOffice(ctx context.Context, id int32) error

func (*Queries) RestorePersonnel

func (q *Queries) RestorePersonnel(ctx context.Context, id int32) error

func (*Queries) RestorePosition

func (q *Queries) RestorePosition(ctx context.Context, id int32) error

func (*Queries) RestoreTravel

func (q *Queries) RestoreTravel(ctx context.Context, id int64) error

func (*Queries) UpdateActivity

func (q *Queries) UpdateActivity(ctx context.Context, arg UpdateActivityParams) error

func (*Queries) UpdateHost

func (q *Queries) UpdateHost(ctx context.Context, arg UpdateHostParams) error

func (*Queries) UpdateOffice

func (q *Queries) UpdateOffice(ctx context.Context, arg UpdateOfficeParams) error

func (*Queries) UpdatePersonnel

func (q *Queries) UpdatePersonnel(ctx context.Context, arg UpdatePersonnelParams) error

func (*Queries) UpdatePosition

func (q *Queries) UpdatePosition(ctx context.Context, arg UpdatePositionParams) error

func (*Queries) UpdateTravel

func (q *Queries) UpdateTravel(ctx context.Context, arg UpdateTravelParams) error

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

type QueryParams

type QueryParams struct {
	Offset  int64
	Limit   int64
	SortCol string
	SortDir int
	Search  string
}

type Region

type Region struct {
	ID       int16  `json:"id"`
	RegionID int16  `json:"region_id"`
	Name     string `json:"name"`
}

type Travel

type Travel struct {
	ID         int64           `json:"id"`
	StartDate  Date            `json:"start_date"`
	EndDate    Date            `json:"end_date"`
	Status     int16           `json:"status"`
	Remarks    *string         `json:"remarks"`
	Metadata   json.RawMessage `json:"metadata"`
	ActivityID int32           `json:"activity_id"`
	CreatedAt  time.Time       `json:"created_at"`
	UpdatedAt  time.Time       `json:"updated_at"`
	DeletedAt  sql.NullTime    `json:"deleted_at"`
}

type UpdateActivityParams

type UpdateActivityParams struct {
	Title     string          `json:"title"`
	StartDate Date            `json:"start_date"`
	EndDate   Date            `json:"end_date"`
	VenueID   int32           `json:"venue_id"`
	HostID    int32           `json:"host_id"`
	Metadata  json.RawMessage `json:"metadata"`
	ID        int64           `json:"id"`
}

type UpdateHostParams

type UpdateHostParams struct {
	Name string `json:"name"`
	ID   int64  `json:"id"`
}

type UpdateOfficeParams

type UpdateOfficeParams struct {
	Name     *string         `json:"name"`
	Metadata json.RawMessage `json:"metadata"`
	ID       int32           `json:"id"`
}

type UpdatePersonnelParams

type UpdatePersonnelParams struct {
	Lastname   string          `json:"lastname"`
	Firstname  string          `json:"firstname"`
	Mi         sql.NullString  `json:"mi"`
	PositionID int16           `json:"position_id"`
	OfficeID   sql.NullInt16   `json:"office_id"`
	Metadata   json.RawMessage `json:"metadata"`
	ID         int32           `json:"id"`
}

type UpdatePositionParams

type UpdatePositionParams struct {
	Title    *string         `json:"title"`
	Metadata json.RawMessage `json:"metadata"`
	ID       int32           `json:"id"`
}

type UpdateTravelParams

type UpdateTravelParams struct {
	StartDate  Date            `json:"start_date"`
	EndDate    Date            `json:"end_date"`
	Status     int16           `json:"status"`
	Remarks    *string         `json:"remarks"`
	ActivityID int32           `json:"activity_id"`
	Metadata   json.RawMessage `json:"metadata"`
	ID         int64           `json:"id"`
}

type Venue

type Venue struct {
	ID         int32           `json:"id"`
	Name       string          `json:"name"`
	DivisionID int32           `json:"division_id"`
	Metadata   json.RawMessage `json:"metadata"`
	CreatedAt  time.Time       `json:"created_at"`
	UpdatedAt  time.Time       `json:"updated_at"`
	DeletedAt  sql.NullTime    `json:"deleted_at"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL