1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package syncer
- import (
- "encoding/json"
- "time"
- )
- const (
- SYNC_ACTION_INSERT = "Insert"
- SYNC_ACTION_UPDATE = "Update"
- SYNC_ACTION_DELETE = "Delete"
- // ClientPriceUpdate
- TYPE_CLIENT_PRICE_UPDATE = "ClientPriceUpdate"
- )
- type Model struct {
- ID uint64 `json:"id" gorm:"primary_key"`
- Type string `json:"type" gorm:"not null"`
- CreatedAt time.Time `json:"create_at"`
- UpdatedAt time.Time `json:"update_at"`
- }
- func (m Model) GetId() uint64 {
- return m.ID
- }
- func (m Model) GetType() string {
- return m.Type
- }
- type SyncLog struct {
- Model
- DataType string `json:"data_type"` // data type
- Data string `json:"data" sql:"type:varchar(5000)"` // data in json string
- Action string `json:"action"` // [Insert,Update,Delete]
- Synced bool `json:"synced"`
- }
- // Client data
- type ClientPriceUpdate struct {
- Model
- CompanyId uint64 `json:"company_id"` // only used by FOS
- StationId uint64 `json:"station_id"` // only used by FOS
- PriceUpdateId uint64 `json:"price_update_id"`
- GradeId uint64 `json:"grade_id"`
- GradeText string `json:"grade_text"`
- GradePrice uint64 `json:"grade_price"`
- NewGradePrice uint64 `json:"new_grade_price"`
- RecCreatedAt string `json:"rec_create_at"`
- RecUpdatedAt string `json:"rec_update_at"`
- }
- // Custom unmarshal for date time of the record
- func (s *ClientPriceUpdate) UnmarshalJSON(data []byte) error {
- var aux ClientPriceUpdate
- if err := json.Unmarshal(data, &aux); err != nil {
- return err
- }
- createdAt, e := time.Parse("2006-01-02 15:04:05.999999999-07:00", aux.RecCreatedAt)
- if e != nil {
- return e
- }
- updatedAt, e := time.Parse("2006-01-02 15:04:05.999999999-07:00", aux.RecUpdatedAt)
- if e != nil {
- return e
- }
- s.CreatedAt = createdAt
- s.UpdatedAt = updatedAt
- return nil
- }
|