added stock details screen and api integration
This commit is contained in:
335
lib/model/StockDetailsModel/stock_details_model.dart
Normal file
335
lib/model/StockDetailsModel/stock_details_model.dart
Normal file
@@ -0,0 +1,335 @@
|
||||
class StockDetailsModel {
|
||||
String? status;
|
||||
int? statusCode;
|
||||
String? message;
|
||||
Data? data;
|
||||
|
||||
StockDetailsModel({this.status, this.statusCode, this.message, this.data});
|
||||
|
||||
StockDetailsModel.fromJson(Map<String, dynamic> json) {
|
||||
status = json['status'];
|
||||
statusCode = json['status_code'];
|
||||
message = json['message'];
|
||||
data = json['data'] != null ? Data.fromJson(json['data']) : null;
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['status'] = status;
|
||||
data['status_code'] = statusCode;
|
||||
data['message'] = message;
|
||||
if (this.data != null) {
|
||||
data['data'] = this.data!.toJson();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class Data {
|
||||
StockInfo? stockData;
|
||||
OptionChain? optionChain;
|
||||
CandleStick? candleStick;
|
||||
|
||||
Data({this.stockData, this.optionChain, this.candleStick});
|
||||
|
||||
Data.fromJson(Map<String, dynamic> json) {
|
||||
stockData = json['stock_data'] != null
|
||||
? StockInfo.fromJson(json['stock_data'])
|
||||
: null;
|
||||
optionChain = json['option_chain'] != null
|
||||
? OptionChain.fromJson(json['option_chain'])
|
||||
: null;
|
||||
candleStick = json['candle_stick'] != null
|
||||
? CandleStick.fromJson(json['candle_stick'])
|
||||
: null;
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
if (stockData != null) {
|
||||
data['stock_data'] = stockData!.toJson();
|
||||
}
|
||||
if (optionChain != null) {
|
||||
data['option_chain'] = optionChain!.toJson();
|
||||
}
|
||||
if (candleStick != null) {
|
||||
data['candle_stick'] = candleStick!.toJson();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class StockInfo {
|
||||
Ohlc? ohlc;
|
||||
String? timestamp;
|
||||
String? instrumentToken;
|
||||
String? symbol;
|
||||
double? lastPrice;
|
||||
int? volume;
|
||||
double? averagePrice;
|
||||
int? oi;
|
||||
double? netChange;
|
||||
int? totalBuyQuantity;
|
||||
int? totalSellQuantity;
|
||||
double? lowerCircuitLimit;
|
||||
double? upperCircuitLimit;
|
||||
String? lastTradeTime;
|
||||
int? oiDayHigh;
|
||||
int? oiDayLow;
|
||||
|
||||
StockInfo(
|
||||
{this.ohlc,
|
||||
this.timestamp,
|
||||
this.instrumentToken,
|
||||
this.symbol,
|
||||
this.lastPrice,
|
||||
this.volume,
|
||||
this.averagePrice,
|
||||
this.oi,
|
||||
this.netChange,
|
||||
this.totalBuyQuantity,
|
||||
this.totalSellQuantity,
|
||||
this.lowerCircuitLimit,
|
||||
this.upperCircuitLimit,
|
||||
this.lastTradeTime,
|
||||
this.oiDayHigh,
|
||||
this.oiDayLow});
|
||||
|
||||
StockInfo.fromJson(Map<String, dynamic> json) {
|
||||
ohlc = json['ohlc'] != null ? Ohlc.fromJson(json['ohlc']) : null;
|
||||
timestamp = json['timestamp'];
|
||||
instrumentToken = json['instrument_token'];
|
||||
symbol = json['symbol'];
|
||||
lastPrice = json['last_price'];
|
||||
volume = json['volume'];
|
||||
averagePrice = json['average_price'];
|
||||
oi = json['oi'];
|
||||
netChange = json['net_change'];
|
||||
totalBuyQuantity = json['total_buy_quantity'];
|
||||
totalSellQuantity = json['total_sell_quantity'];
|
||||
lowerCircuitLimit = json['lower_circuit_limit'];
|
||||
upperCircuitLimit = json['upper_circuit_limit'];
|
||||
lastTradeTime = json['last_trade_time'];
|
||||
oiDayHigh = json['oi_day_high'];
|
||||
oiDayLow = json['oi_day_low'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
if (ohlc != null) {
|
||||
data['ohlc'] = ohlc!.toJson();
|
||||
}
|
||||
data['timestamp'] = timestamp;
|
||||
data['instrument_token'] = instrumentToken;
|
||||
data['symbol'] = symbol;
|
||||
data['last_price'] = lastPrice;
|
||||
data['volume'] = volume;
|
||||
data['average_price'] = averagePrice;
|
||||
data['oi'] = oi;
|
||||
data['net_change'] = netChange;
|
||||
data['total_buy_quantity'] = totalBuyQuantity;
|
||||
data['total_sell_quantity'] = totalSellQuantity;
|
||||
data['lower_circuit_limit'] = lowerCircuitLimit;
|
||||
data['upper_circuit_limit'] = upperCircuitLimit;
|
||||
data['last_trade_time'] = lastTradeTime;
|
||||
data['oi_day_high'] = oiDayHigh;
|
||||
data['oi_day_low'] = oiDayLow;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class Ohlc {
|
||||
double? open;
|
||||
double? high;
|
||||
double? low;
|
||||
double? close;
|
||||
|
||||
Ohlc({this.open, this.high, this.low, this.close});
|
||||
|
||||
Ohlc.fromJson(Map<String, dynamic> json) {
|
||||
open = json['open'].toDouble();
|
||||
high = json['high'].toDouble();
|
||||
low = json['low'];
|
||||
close = json['close'].toDouble();
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['open'] = open;
|
||||
data['high'] = high;
|
||||
data['low'] = low;
|
||||
data['close'] = close;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class OptionChain {
|
||||
String? status;
|
||||
List<Data2>? data2;
|
||||
|
||||
OptionChain({this.status, this.data2});
|
||||
|
||||
OptionChain.fromJson(Map<String, dynamic> json) {
|
||||
status = json['status'];
|
||||
if (json['data2'] != null) {
|
||||
data2 = <Data2>[];
|
||||
json['data2'].forEach((v) {
|
||||
data2!.add(Data2.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['status'] = status;
|
||||
if (data2 != null) {
|
||||
data['data2'] = data2!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class Data2 {
|
||||
String? name;
|
||||
String? segment;
|
||||
String? exchange;
|
||||
String? expiry;
|
||||
bool? weekly;
|
||||
String? instrumentKey;
|
||||
String? exchangeToken;
|
||||
String? tradingSymbol;
|
||||
int? tickSize;
|
||||
int? lotSize;
|
||||
String? instrumentType;
|
||||
int? freezeQuantity;
|
||||
String? underlyingKey;
|
||||
String? underlyingType;
|
||||
String? underlyingSymbol;
|
||||
int? strikePrice;
|
||||
int? minimumLot;
|
||||
|
||||
Data2(
|
||||
{this.name,
|
||||
this.segment,
|
||||
this.exchange,
|
||||
this.expiry,
|
||||
this.weekly,
|
||||
this.instrumentKey,
|
||||
this.exchangeToken,
|
||||
this.tradingSymbol,
|
||||
this.tickSize,
|
||||
this.lotSize,
|
||||
this.instrumentType,
|
||||
this.freezeQuantity,
|
||||
this.underlyingKey,
|
||||
this.underlyingType,
|
||||
this.underlyingSymbol,
|
||||
this.strikePrice,
|
||||
this.minimumLot});
|
||||
|
||||
Data2.fromJson(Map<String, dynamic> json) {
|
||||
name = json['name'];
|
||||
segment = json['segment'];
|
||||
exchange = json['exchange'];
|
||||
expiry = json['expiry'];
|
||||
weekly = json['weekly'];
|
||||
instrumentKey = json['instrument_key'];
|
||||
exchangeToken = json['exchange_token'];
|
||||
tradingSymbol = json['trading_symbol'];
|
||||
tickSize = json['tick_size'];
|
||||
lotSize = json['lot_size'];
|
||||
instrumentType = json['instrument_type'];
|
||||
freezeQuantity = json['freeze_quantity'];
|
||||
underlyingKey = json['underlying_key'];
|
||||
underlyingType = json['underlying_type'];
|
||||
underlyingSymbol = json['underlying_symbol'];
|
||||
strikePrice = json['strike_price'];
|
||||
minimumLot = json['minimum_lot'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['name'] = name;
|
||||
data['segment'] = segment;
|
||||
data['exchange'] = exchange;
|
||||
data['expiry'] = expiry;
|
||||
data['weekly'] = weekly;
|
||||
data['instrument_key'] = instrumentKey;
|
||||
data['exchange_token'] = exchangeToken;
|
||||
data['trading_symbol'] = tradingSymbol;
|
||||
data['tick_size'] = tickSize;
|
||||
data['lot_size'] = lotSize;
|
||||
data['instrument_type'] = instrumentType;
|
||||
data['freeze_quantity'] = freezeQuantity;
|
||||
data['underlying_key'] = underlyingKey;
|
||||
data['underlying_type'] = underlyingType;
|
||||
data['underlying_symbol'] = underlyingSymbol;
|
||||
data['strike_price'] = strikePrice;
|
||||
data['minimum_lot'] = minimumLot;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class CandleStick {
|
||||
List<Candles>? candles;
|
||||
|
||||
CandleStick({this.candles});
|
||||
|
||||
CandleStick.fromJson(Map<String, dynamic> json) {
|
||||
if (json['candles'] != null) {
|
||||
candles = <Candles>[];
|
||||
json['candles'].forEach((v) {
|
||||
candles!.add(Candles.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
if (candles != null) {
|
||||
data['candles'] = candles!.map((v) => v.toJson()).toList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class Candles {
|
||||
String? timestamp;
|
||||
double? open;
|
||||
double? high;
|
||||
double? low;
|
||||
double? close;
|
||||
int? volume;
|
||||
int? openInterest;
|
||||
|
||||
Candles(
|
||||
{this.timestamp,
|
||||
this.open,
|
||||
this.high,
|
||||
this.low,
|
||||
this.close,
|
||||
this.volume,
|
||||
this.openInterest});
|
||||
|
||||
Candles.fromJson(Map<String, dynamic> json) {
|
||||
timestamp = json['timestamp'];
|
||||
open = json['open'];
|
||||
high = json['high'];
|
||||
low = json['low'];
|
||||
close = json['close'];
|
||||
volume = json['volume'];
|
||||
openInterest = json['open_interest'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = <String, dynamic>{};
|
||||
data['timestamp'] = timestamp;
|
||||
data['open'] = open;
|
||||
data['high'] = high;
|
||||
data['low'] = low;
|
||||
data['close'] = close;
|
||||
data['volume'] = volume;
|
||||
data['open_interest'] = openInterest;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user