package domain

type Branch struct {
	ID              int64
	Name            string
	Location        string
	WalletID        int64
	BranchManagerID int64
	CompanyID       int64
	IsSuspended     bool
	IsSelfOwned     bool
}

type BranchDetail struct {
	ID                 int64
	Name               string
	Location           string
	WalletID           int64
	Balance            Currency
	BranchManagerID    int64
	CompanyID          int64
	IsSuspended        bool
	IsSelfOwned        bool
	ManagerName        string
	ManagerPhoneNumber string
}

type SupportedOperation struct {
	ID          int64
	Name        string
	Description string
}

type BranchOperation struct {
	ID                   int64
	OperationName        string
	OperationDescription string
}

type CreateBranch struct {
	Name            string
	Location        string
	WalletID        int64
	BranchManagerID int64
	CompanyID       int64
	IsSelfOwned     bool
}

type UpdateBranch struct {
	ID              int64
	Name            *string
	Location        *string
	BranchManagerID *int64
	CompanyID       *int64
	IsSelfOwned     *bool
	IsActive     *bool
}

type CreateSupportedOperation struct {
	Name        string
	Description string
}
type CreateBranchOperation struct {
	BranchID    int64
	OperationID int64
}
